aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2005-10-07 07:15:40 +0000
committerMiles Bader2005-10-07 07:15:40 +0000
commit00e18f33adde1d2f196fdf9cadf11235cc4fcc8f (patch)
tree8c553c9a361da158ba47f3d0ed0429da180d957f
parentba4c328314c2b01e6dcc3807a0666a644c3f3954 (diff)
parent9e1cb4bc96d36af6e8b893d467970a25afead03b (diff)
downloademacs-00e18f33adde1d2f196fdf9cadf11235cc4fcc8f.tar.gz
emacs-00e18f33adde1d2f196fdf9cadf11235cc4fcc8f.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-88
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 569-579) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 129-132) - Update from CVS - Merge from emacs--cvs-trunk--0
-rw-r--r--ChangeLog6
-rw-r--r--admin/ChangeLog4
-rw-r--r--admin/FOR-RELEASE4
-rw-r--r--admin/admin.el31
-rwxr-xr-xconfigure98
-rw-r--r--configure.in24
-rw-r--r--etc/ChangeLog47
-rw-r--r--etc/NEWS9
-rw-r--r--etc/TODO2
-rw-r--r--etc/images/README5
-rw-r--r--etc/images/execute.pbm (renamed from lisp/toolbar/execute.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/execute.xpm (renamed from lisp/toolbar/execute.xpm)0
-rw-r--r--etc/images/ezimage/bits.xpm20
-rw-r--r--etc/images/ezimage/bitsbang.xpm21
-rw-r--r--etc/images/ezimage/box-minus.xpm22
-rw-r--r--etc/images/ezimage/box-plus.xpm22
-rw-r--r--etc/images/ezimage/box.xpm22
-rw-r--r--etc/images/ezimage/checkmark.xpm20
-rw-r--r--etc/images/ezimage/dir-minus.xpm23
-rw-r--r--etc/images/ezimage/dir-plus.xpm23
-rw-r--r--etc/images/ezimage/dir.xpm23
-rw-r--r--etc/images/ezimage/doc-minus.xpm23
-rw-r--r--etc/images/ezimage/doc-plus.xpm23
-rw-r--r--etc/images/ezimage/doc.xpm23
-rw-r--r--etc/images/ezimage/info.xpm22
-rw-r--r--etc/images/ezimage/key.xpm23
-rw-r--r--etc/images/ezimage/label.xpm22
-rw-r--r--etc/images/ezimage/lock.xpm23
-rw-r--r--etc/images/ezimage/mail.xpm22
-rw-r--r--etc/images/ezimage/page-minus.xpm23
-rw-r--r--etc/images/ezimage/page-plus.xpm23
-rw-r--r--etc/images/ezimage/page.xpm23
-rw-r--r--etc/images/ezimage/tag-gt.xpm22
-rw-r--r--etc/images/ezimage/tag-minus.xpm22
-rw-r--r--etc/images/ezimage/tag-plus.xpm22
-rw-r--r--etc/images/ezimage/tag-type.xpm22
-rw-r--r--etc/images/ezimage/tag-v.xpm22
-rw-r--r--etc/images/ezimage/tag.xpm22
-rw-r--r--etc/images/ezimage/unlock.xpm23
-rw-r--r--etc/images/highlight.pbm (renamed from lisp/toolbar/highlight.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/highlight.xpm (renamed from lisp/toolbar/highlight.xpm)0
-rw-r--r--etc/images/mail/alias.pbm (renamed from lisp/toolbar/alias.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/mail/alias.xpm (renamed from lisp/toolbar/alias.xpm)0
-rw-r--r--etc/images/mail/refile.pbm (renamed from lisp/toolbar/refile.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/mail/refile.xpm (renamed from lisp/toolbar/refile.xpm)0
-rw-r--r--etc/images/mail/repack.pbm (renamed from lisp/toolbar/repack.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/mail/repack.xpm (renamed from lisp/toolbar/repack.xpm)0
-rw-r--r--etc/images/mail/reply-all.pbm (renamed from lisp/toolbar/reply-all.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/mail/reply-all.xpm (renamed from lisp/toolbar/reply-all.xpm)0
-rw-r--r--etc/images/mail/reply-from.pbm (renamed from lisp/toolbar/reply-from.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/mail/reply-from.xpm (renamed from lisp/toolbar/reply-from.xpm)0
-rw-r--r--etc/images/mail/reply-to.pbm (renamed from lisp/toolbar/reply-to.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/mail/reply-to.xpm (renamed from lisp/toolbar/reply-to.xpm)0
-rw-r--r--etc/images/mail/reply.pbm (renamed from lisp/mail/reply2.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/mail/reply.xpm (renamed from lisp/mail/reply2.xpm)0
-rw-r--r--etc/images/mh-logo.xpm (renamed from lisp/toolbar/mh-logo.xpm)0
-rw-r--r--etc/images/page-down.pbm (renamed from lisp/toolbar/page-down.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/page-down.xpm (renamed from lisp/toolbar/page-down.xpm)0
-rw-r--r--etc/images/refresh.pbmbin0 -> 81 bytes
-rw-r--r--etc/images/refresh.xpm113
-rw-r--r--etc/images/show.pbm (renamed from lisp/toolbar/show.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/show.xpm (renamed from lisp/toolbar/show.xpm)0
-rw-r--r--etc/images/widen.pbm (renamed from lisp/toolbar/widen.pbm)bin81 -> 81 bytes
-rw-r--r--etc/images/widen.xpm (renamed from lisp/toolbar/widen.xpm)0
-rw-r--r--lisp/ChangeLog14759
-rw-r--r--lisp/bindings.el4
-rw-r--r--lisp/calendar/appt.el46
-rw-r--r--lisp/calendar/cal-menu.el2
-rw-r--r--lisp/calendar/diary-lib.el150
-rw-r--r--lisp/calendar/time-date.el1
-rw-r--r--lisp/comint.el4
-rw-r--r--lisp/dframe.el1073
-rw-r--r--lisp/ediff-merg.el8
-rw-r--r--lisp/ediff-mult.el7
-rw-r--r--lisp/ediff-ptch.el19
-rw-r--r--lisp/ediff-util.el12
-rw-r--r--lisp/ediff-wind.el5
-rw-r--r--lisp/ediff.el2
-rw-r--r--lisp/emacs-lisp/eldoc.el109
-rw-r--r--lisp/emacs-lisp/lisp-mode.el62
-rw-r--r--lisp/emulation/viper-cmd.el23
-rw-r--r--lisp/emulation/viper-init.el17
-rw-r--r--lisp/emulation/viper.el30
-rw-r--r--lisp/ezimage.el371
-rw-r--r--lisp/gnus/ChangeLog47
-rw-r--r--lisp/gnus/ChangeLog.22
-rw-r--r--lisp/gnus/gnus-util.el8
-rw-r--r--lisp/gnus/message.el10
-rw-r--r--lisp/gnus/mm-decode.el22
-rw-r--r--lisp/gnus/mm-url.el2
-rw-r--r--lisp/gnus/mm-util.el23
-rw-r--r--lisp/gnus/nnmail.el2
-rw-r--r--lisp/ido.el2
-rw-r--r--lisp/info.el69
-rw-r--r--lisp/iswitchb.el3
-rw-r--r--lisp/mail/feedmail.el2
-rw-r--r--lisp/mh-e/ChangeLog11
-rw-r--r--lisp/mh-e/mh-customize.el16
-rw-r--r--lisp/net/ange-ftp.el144
-rw-r--r--lisp/net/tramp.el4
-rw-r--r--lisp/outline.el2
-rw-r--r--lisp/pcvs.el34
-rw-r--r--lisp/play/zone.el107
-rw-r--r--lisp/progmodes/cc-mode.el7
-rw-r--r--lisp/progmodes/cc-styles.el51
-rw-r--r--lisp/progmodes/compile.el11
-rw-r--r--lisp/progmodes/ebnf2ps.el2
-rw-r--r--lisp/progmodes/gdb-ui.el97
-rw-r--r--lisp/progmodes/gud.el8
-rw-r--r--lisp/progmodes/scheme.el71
-rw-r--r--lisp/progmodes/vhdl-mode.el24
-rw-r--r--lisp/sb-dir-minus.xpm23
-rw-r--r--lisp/sb-dir-plus.xpm23
-rw-r--r--lisp/sb-dir.xpm23
-rw-r--r--lisp/sb-image.el111
-rw-r--r--lisp/sb-mail.xpm23
-rw-r--r--lisp/sb-pg-minus.xpm23
-rw-r--r--lisp/sb-pg-plus.xpm23
-rw-r--r--lisp/sb-pg.xpm23
-rw-r--r--lisp/sb-tag-gt.xpm23
-rw-r--r--lisp/sb-tag-minus.xpm23
-rw-r--r--lisp/sb-tag-plus.xpm23
-rw-r--r--lisp/sb-tag-type.xpm23
-rw-r--r--lisp/sb-tag-v.xpm23
-rw-r--r--lisp/sb-tag.xpm23
-rw-r--r--lisp/simple.el54
-rw-r--r--lisp/speedbar.el2763
-rw-r--r--lisp/term/mac-win.el1
-rw-r--r--lisp/textmodes/artist.el6
-rw-r--r--lisp/textmodes/bibtex.el70
-rw-r--r--lisp/textmodes/flyspell.el1
-rw-r--r--lisp/textmodes/ispell.el4
-rw-r--r--lisp/textmodes/tex-mode.el41
-rw-r--r--lisp/toolbar/rescan.pbmbin81 -> 0 bytes
-rw-r--r--lisp/toolbar/rescan.xpm35
-rw-r--r--lisp/url/ChangeLog5
-rw-r--r--lisp/url/url-http.el153
-rw-r--r--lisp/wid-edit.el10
-rw-r--r--lisp/x-dnd.el14
-rw-r--r--lispref/ChangeLog15
-rw-r--r--lispref/display.texi16
-rw-r--r--lispref/minibuf.texi9
-rw-r--r--lispref/windows.texi27
-rw-r--r--man/ChangeLog19
-rw-r--r--man/building.texi51
-rw-r--r--man/ediff.texi1
-rw-r--r--man/frames.texi8
-rw-r--r--man/mini.texi2
-rw-r--r--man/speedbar.texi17
-rw-r--r--src/ChangeLog108
-rw-r--r--src/alloc.c50
-rw-r--r--src/dired.c2
-rw-r--r--src/dispextern.h1
-rw-r--r--src/editfns.c4
-rw-r--r--src/emacs.c4
-rw-r--r--src/image.c4
-rw-r--r--src/keyboard.c23
-rw-r--r--src/macfns.c14
-rw-r--r--src/macgui.h20
-rw-r--r--src/macterm.c771
-rw-r--r--src/minibuf.c26
-rw-r--r--src/process.c2
-rw-r--r--src/regex.c4
-rw-r--r--src/regex.h5
-rw-r--r--src/systime.h8
-rw-r--r--src/unexelf.c2
-rw-r--r--src/window.c80
-rw-r--r--src/xdisp.c3
-rw-r--r--src/xfaces.c19
-rw-r--r--src/xsmfns.c2
-rw-r--r--src/xterm.c4
171 files changed, 6127 insertions, 17190 deletions
diff --git a/ChangeLog b/ChangeLog
index 42bdbc02971..1a81cd1d6be 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
12005-10-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * configure.in: Prefer Carbon if --enable-carbon-app or
4 --with-carbon is explicitly specified even when X11 is detected.
5 * configure: Regenerate.
6
12005-09-15 Ulf Jasper <ulf.jasper@web.de> 72005-09-15 Ulf Jasper <ulf.jasper@web.de>
2 8
3 * Makefile.in (install-arch-indep, uninstall): 9 * Makefile.in (install-arch-indep, uninstall):
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 3f6f6aee58a..df7954d73bb 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
12005-10-01 Jason Rumney <jasonr@gnu.org>
2
3 * admin.el (set-version): Set version numbers in nt/emacs.rc.
4
12005-08-31 Romain Francoise <romain@orebokech.com> 52005-08-31 Romain Francoise <romain@orebokech.com>
2 6
3 * FOR-RELEASE: (New features): Remove vhdl-mode.el update 7 * FOR-RELEASE: (New features): Remove vhdl-mode.el update
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 9821c98c8dd..3515f78d04a 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -27,8 +27,6 @@ face name prefixes should be in it for good results.
27 27
28* NEW FEATURES 28* NEW FEATURES
29 29
30** Update Speedbar.
31
32** Rework how the fringe "angle" bitmap at at bottom of buffer is 30** Rework how the fringe "angle" bitmap at at bottom of buffer is
33shown to include an indication of whether the last line has a NL or not. 31shown to include an indication of whether the last line has a NL or not.
34[Assigned to KFS] 32[Assigned to KFS]
@@ -67,6 +65,8 @@ back burner waiting for a legal comment or an alternate implementation
67 65
68* BUGS 66* BUGS
69 67
68* Pierre Albarede's Aug 30 bug report about C-v and long lines.
69
70** Make a new interface for specifying window configurations 70** Make a new interface for specifying window configurations
71so that we can fix bugs in balance-windows. 71so that we can fix bugs in balance-windows.
72 72
diff --git a/admin/admin.el b/admin/admin.el
index 3969345cc32..2f7f085b9d9 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -87,7 +87,36 @@ Root must be the root of an Emacs source tree."
87 (submatch (1+ (in "0-9.")))))) 87 (submatch (1+ (in "0-9."))))))
88 (set-version-in-file root "lispref/elisp.texi" version 88 (set-version-in-file root "lispref/elisp.texi" version
89 (rx (and "EMACSVER" (1+ space) 89 (rx (and "EMACSVER" (1+ space)
90 (submatch (1+ (in "0-9."))))))) 90 (submatch (1+ (in "0-9."))))))
91 ;; nt/emacs.rc also contains the version number, but in an awkward
92 ;; format. It must contain four components, separated by commas, and
93 ;; in two places those commas are followed by space, in two other
94 ;; places they are not.
95 (let* ((version-components (append (split-string version "\\.")
96 '("0" "0")))
97 (comma-version
98 (concat (car version-components) ","
99 (cadr version-components) ","
100 (cadr (cdr version-components)) ","
101 (cadr (cdr (cdr version-components)))))
102 (comma-space-version
103 (concat (car version-components) ", "
104 (cadr version-components) ", "
105 (cadr (cdr version-components)) ", "
106 (cadr (cdr (cdr version-components))))))
107 (set-version-in-file root "nt/emacs.rc" comma-version
108 (rx (and "FILEVERSION" (1+ space)
109 (submatch (1+ (in "0-9,"))))))
110 (set-version-in-file root "nt/emacs.rc" comma-version
111 (rx (and "PRODUCTVERSION" (1+ space)
112 (submatch (1+ (in "0-9,"))))))
113 (set-version-in-file root "nt/emacs.rc" comma-space-version
114 (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space)
115 ?\" (submatch (1+ (in "0-9, "))) "\\0\"")))
116 (set-version-in-file root "nt/emacs.rc" comma-space-version
117 (rx (and "\"ProductVersion\"" (0+ space) ?,
118 (0+ space) ?\" (submatch (1+ (in "0-9, ")))
119 "\\0\"")))))
91 120
92;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 121;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5
93;; admin.el ends here. 122;; admin.el ends here.
diff --git a/configure b/configure
index 04beba7684a..2958ff91997 100755
--- a/configure
+++ b/configure
@@ -8197,52 +8197,9 @@ else
8197 fi 8197 fi
8198fi 8198fi
8199 8199
8200case "${window_system}" in
8201 x11 )
8202 HAVE_X_WINDOWS=yes
8203 HAVE_X11=yes
8204 case "${with_x_toolkit}" in
8205 athena | lucid ) USE_X_TOOLKIT=LUCID ;;
8206 motif ) USE_X_TOOLKIT=MOTIF ;;
8207 gtk ) with_gtk=yes
8208 USE_X_TOOLKIT=none ;;
8209 no ) USE_X_TOOLKIT=none ;;
8210 * ) USE_X_TOOLKIT=maybe ;;
8211 esac
8212 ;;
8213 none )
8214 HAVE_X_WINDOWS=no
8215 HAVE_X11=no
8216 USE_X_TOOLKIT=none
8217 ;;
8218esac
8219
8220### If we're using X11, we should use the X menu package.
8221HAVE_MENUS=no
8222case ${HAVE_X11} in
8223 yes ) HAVE_MENUS=yes ;;
8224esac
8225
8226if test "${opsys}" = "hpux9"; then
8227 case "${x_libraries}" in
8228 *X11R4* )
8229 opsysfile="s/hpux9-x11r4.h"
8230 ;;
8231 esac
8232fi
8233
8234if test "${opsys}" = "hpux9shr"; then
8235 case "${x_libraries}" in
8236 *X11R4* )
8237 opsysfile="s/hpux9shxr4.h"
8238 ;;
8239 esac
8240fi
8241
8242HAVE_CARBON=no 8200HAVE_CARBON=no
8243if test "${HAVE_X11}" != "yes"; then 8201if test "${with_carbon}" != no; then
8244 if test "${with_carbon}" != "no"; then 8202 if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
8245 if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
8246 echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 8203 echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
8247echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 8204echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6
8248if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then 8205if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
@@ -8384,8 +8341,58 @@ if test $ac_cv_header_Carbon_Carbon_h = yes; then
8384fi 8341fi
8385 8342
8386 8343
8344fi
8345if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
8346 if test "${with_carbon+set}" != set \
8347 && test "${carbon_appdir_x+set}" != set; then
8348 HAVE_CARBON=no
8387 fi 8349 fi
8388fi 8350fi
8351if test "${HAVE_CARBON}" = yes; then
8352 window_system=mac
8353fi
8354
8355case "${window_system}" in
8356 x11 )
8357 HAVE_X_WINDOWS=yes
8358 HAVE_X11=yes
8359 case "${with_x_toolkit}" in
8360 athena | lucid ) USE_X_TOOLKIT=LUCID ;;
8361 motif ) USE_X_TOOLKIT=MOTIF ;;
8362 gtk ) with_gtk=yes
8363 USE_X_TOOLKIT=none ;;
8364 no ) USE_X_TOOLKIT=none ;;
8365 * ) USE_X_TOOLKIT=maybe ;;
8366 esac
8367 ;;
8368 mac | none )
8369 HAVE_X_WINDOWS=no
8370 HAVE_X11=no
8371 USE_X_TOOLKIT=none
8372 ;;
8373esac
8374
8375### If we're using X11, we should use the X menu package.
8376HAVE_MENUS=no
8377case ${HAVE_X11} in
8378 yes ) HAVE_MENUS=yes ;;
8379esac
8380
8381if test "${opsys}" = "hpux9"; then
8382 case "${x_libraries}" in
8383 *X11R4* )
8384 opsysfile="s/hpux9-x11r4.h"
8385 ;;
8386 esac
8387fi
8388
8389if test "${opsys}" = "hpux9shr"; then
8390 case "${x_libraries}" in
8391 *X11R4* )
8392 opsysfile="s/hpux9shxr4.h"
8393 ;;
8394 esac
8395fi
8389 8396
8390### Compute the unexec source name from the object name. 8397### Compute the unexec source name from the object name.
8391UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" 8398UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
@@ -12716,7 +12723,6 @@ cat >>confdefs.h <<\_ACEOF
12716#define HAVE_CARBON 1 12723#define HAVE_CARBON 1
12717_ACEOF 12724_ACEOF
12718 12725
12719 window_system=mac
12720 ## Specify the install directory 12726 ## Specify the install directory
12721 carbon_appdir= 12727 carbon_appdir=
12722 if test "${carbon_appdir_x}" != ""; then 12728 if test "${carbon_appdir_x}" != ""; then
diff --git a/configure.in b/configure.in
index f8f2d524214..db2bfba22df 100644
--- a/configure.in
+++ b/configure.in
@@ -1668,6 +1668,20 @@ else
1668 fi 1668 fi
1669fi 1669fi
1670 1670
1671HAVE_CARBON=no
1672if test "${with_carbon}" != no; then
1673 AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
1674fi
1675if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
1676 if test "${with_carbon+set}" != set \
1677 && test "${carbon_appdir_x+set}" != set; then
1678 HAVE_CARBON=no
1679 fi
1680fi
1681if test "${HAVE_CARBON}" = yes; then
1682 window_system=mac
1683fi
1684
1671case "${window_system}" in 1685case "${window_system}" in
1672 x11 ) 1686 x11 )
1673 HAVE_X_WINDOWS=yes 1687 HAVE_X_WINDOWS=yes
@@ -1686,7 +1700,7 @@ dnl make this decision later: use the toolkit if we have X11R5 or newer.
1686 * ) USE_X_TOOLKIT=maybe ;; 1700 * ) USE_X_TOOLKIT=maybe ;;
1687 esac 1701 esac
1688 ;; 1702 ;;
1689 none ) 1703 mac | none )
1690 HAVE_X_WINDOWS=no 1704 HAVE_X_WINDOWS=no
1691 HAVE_X11=no 1705 HAVE_X11=no
1692 USE_X_TOOLKIT=none 1706 USE_X_TOOLKIT=none
@@ -1715,13 +1729,6 @@ if test "${opsys}" = "hpux9shr"; then
1715 esac 1729 esac
1716fi 1730fi
1717 1731
1718HAVE_CARBON=no
1719if test "${HAVE_X11}" != "yes"; then
1720 if test "${with_carbon}" != "no"; then
1721 AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
1722 fi
1723fi
1724
1725### Compute the unexec source name from the object name. 1732### Compute the unexec source name from the object name.
1726UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" 1733UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
1727 1734
@@ -2345,7 +2352,6 @@ AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1
2345### Use Mac OS X Carbon API to implement GUI. 2352### Use Mac OS X Carbon API to implement GUI.
2346if test "${HAVE_CARBON}" = "yes"; then 2353if test "${HAVE_CARBON}" = "yes"; then
2347 AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.]) 2354 AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
2348 window_system=mac
2349 ## Specify the install directory 2355 ## Specify the install directory
2350 carbon_appdir= 2356 carbon_appdir=
2351 if test "${carbon_appdir_x}" != ""; then 2357 if test "${carbon_appdir_x}" != ""; then
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 3a365d8df19..12a85271f72 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,39 @@
12005-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * TODO: Clarify the local variables entry.
4
52005-09-30 Bill Wohler <wohler@newt.com>
6
7 Moved MH-E image files from toolbar and mail directories into
8 etc/images.
9
10 * images/mail: New directory.
11
12 * images/mail/reply.*: Moved here from lisp/mail/reply2*.
13
14 * images/mail/alias.*, images/mail/refile.*, images/mail/repack.*:
15 * images/mail/reply*: Moved here from lisp/toolbar.
16
17 * images/execute.*, images/highlight.*, images/mh-logo.xpm:
18 * images/page-down.*, images/show.*, images/widen.*: Moved here
19 from lisp/toolbar.
20
21 * images/refresh.*: Moved here from lisp/toolbar/rescan.*.
22 Use GNOME 2.10's refresh icon.
23
24 * images/README: New file that indicates which icons came from
25 GNOME (see lisp/toolbar/README).
26
272005-09-30 Romain Francoise <romain@orebokech.com>
28
29 * NEWS: Mention changes to `read-buffer'.
30
312005-09-30 Chong Yidong <cyd@stupidchicken.com>
32
33 * images/ezimage: New directory.
34
35 * images/ezimage/*.xpm: Add images used by speedbar.el.
36
12005-09-30 David Ponce <david@dponce.com> 372005-09-30 David Ponce <david@dponce.com>
2 38
3 * NEWS: Update recentf changes. 39 * NEWS: Update recentf changes.
@@ -9,8 +45,7 @@
92005-09-27 Jay Belanger <belanger@truman.edu> 452005-09-27 Jay Belanger <belanger@truman.edu>
10 46
11 * calccard.tex: Update `versionnumber', remove `versiondate'. 47 * calccard.tex: Update `versionnumber', remove `versiondate'.
12 (Error Recovery): Refer to "initial state" rather than "default 48 (Error Recovery): Refer to "initial state" rather than "default state".
13 state".
14 (Algebra): Mention LaTeX language mode. 49 (Algebra): Mention LaTeX language mode.
15 (Programming): Delete reference to "Z =". 50 (Programming): Delete reference to "Z =".
16 51
@@ -25,8 +60,7 @@
25 60
262005-09-15 Kenichi Handa <handa@m17n.org> 612005-09-15 Kenichi Handa <handa@m17n.org>
27 62
28 * PROBLEMS: Fix the paragraph describing the limitation of 63 * PROBLEMS: Fix the paragraph describing the limitation of UTF-8/16/7.
29 UTF-8/16/7.
30 64
312005-09-14 Romain Francoise <romain@orebokech.com> 652005-09-14 Romain Francoise <romain@orebokech.com>
32 66
@@ -128,12 +162,11 @@
1282005-07-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 1622005-07-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
129 163
130 * PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping): 164 * PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping):
131 Added it again. 165 Add it again.
132 166
1332005-06-29 Carsten Dominik <dominik@science.uva.nl> 1672005-06-29 Carsten Dominik <dominik@science.uva.nl>
134 168
135 * NEWS: Added an entry for Org-mode, and a change entry for 169 * NEWS: Add an entry for Org-mode, and a change entry for reftex-mode.
136 reftex-mode.
137 170
1382005-06-28 Richard M. Stallman <rms@gnu.org> 1712005-06-28 Richard M. Stallman <rms@gnu.org>
139 172
diff --git a/etc/NEWS b/etc/NEWS
index ff69f331e83..8217ee6a47e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3774,6 +3774,12 @@ If the variable is itself nil, then `frame-or-buffer-changed-p' uses,
3774for compatibility, an internal variable which exists only for this 3774for compatibility, an internal variable which exists only for this
3775purpose. 3775purpose.
3776 3776
3777+++
3778*** The function `read-buffer' follows the convention for reading from
3779the minibuffer with a default value: if DEF is non-nil, the minibuffer
3780prompt provided in PROMPT is edited to show the default value provided
3781in DEF before the terminal colon and space.
3782
3777** Local variables lists: 3783** Local variables lists:
3778 3784
3779+++ 3785+++
@@ -4422,6 +4428,9 @@ If non-nil, that says to preserve the window's current margin, fringe,
4422and scroll-bar settings. 4428and scroll-bar settings.
4423 4429
4424+++ 4430+++
4431*** The new function `window-split-tree' returns a frame's window split tree.
4432
4433+++
4425** Customizable fringe bitmaps 4434** Customizable fringe bitmaps
4426 4435
4427*** New function `define-fringe-bitmap' can now be used to create new 4436*** New function `define-fringe-bitmap' can now be used to create new
diff --git a/etc/TODO b/etc/TODO
index eeed4d4248f..599fa2ab1aa 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -47,7 +47,7 @@ to the FSF.
47** Implement something better than the current Refill mode. This 47** Implement something better than the current Refill mode. This
48 probably needs some primitive support. 48 probably needs some primitive support.
49 49
50** Add a command to make a local variables list in the current buffer 50** Add a command to make a "Local Variables" section in the current buffer
51 and/or add a variable to the list. 51 and/or add a variable to the list.
52 52
53** Implement primitive and higher-level functions to allow filling 53** Implement primitive and higher-level functions to allow filling
diff --git a/etc/images/README b/etc/images/README
new file mode 100644
index 00000000000..c697bfdc438
--- /dev/null
+++ b/etc/images/README
@@ -0,0 +1,5 @@
1The following icons are from GNOME 2.10:
2
3 refresh.pbm, refresh.xpm
4
5They are not part of Emacs, but distributed and used by Emacs.
diff --git a/lisp/toolbar/execute.pbm b/etc/images/execute.pbm
index 84bcbb38428..84bcbb38428 100644
--- a/lisp/toolbar/execute.pbm
+++ b/etc/images/execute.pbm
Binary files differ
diff --git a/lisp/toolbar/execute.xpm b/etc/images/execute.xpm
index ce38c629f73..ce38c629f73 100644
--- a/lisp/toolbar/execute.xpm
+++ b/etc/images/execute.xpm
diff --git a/etc/images/ezimage/bits.xpm b/etc/images/ezimage/bits.xpm
new file mode 100644
index 00000000000..b291fcfb5f3
--- /dev/null
+++ b/etc/images/ezimage/bits.xpm
@@ -0,0 +1,20 @@
1/* XPM */
2static char * sb_obj_xpm[] = {
3"15 15 2 1",
4" c None",
5". c #000CFF",
6" .. . .. . ",
7". . . . . . ",
8". . . . . . ",
9". . . . . . ",
10" .. . .. . ",
11" ",
12". .. . .. ",
13". . . . . . ",
14". . . . . . ",
15". . . . . . ",
16". .. . .. ",
17" ",
18" .. . .. . ",
19". . . . . . ",
20". . . . . . "};
diff --git a/etc/images/ezimage/bitsbang.xpm b/etc/images/ezimage/bitsbang.xpm
new file mode 100644
index 00000000000..cd49e831d9d
--- /dev/null
+++ b/etc/images/ezimage/bitsbang.xpm
@@ -0,0 +1,21 @@
1/* XPM */
2static char * sb_objod_xpm[] = {
3"15 15 3 1",
4" c None",
5". c #000CFF",
6"+ c #FFFA00",
7" .. . .. . ",
8". .++ . . . ",
9". .++ . . . ",
10". . ++. . . ",
11" .. ++ .. . ",
12" ++ ",
13". ..++. .. ",
14". . .++ . . ",
15". . .++ . . ",
16". . .++ . . ",
17". .. . .. ",
18" ++ ",
19" .. . ++. . ",
20". . . . . . ",
21". . . . . . "};
diff --git a/etc/images/ezimage/box-minus.xpm b/etc/images/ezimage/box-minus.xpm
new file mode 100644
index 00000000000..a24583cd24d
--- /dev/null
+++ b/etc/images/ezimage/box-minus.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_box_minus_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #000000",
6"+ c #828282",
7"@ c #D19200",
8"...+ +..+ ",
9".@@.+ +.@.+",
10"+.@@.+ +.@@@.",
11"+.@@@.+++++++++.@@..",
12" +..@............@.+",
13" +.@..@@@@@@@@@@@..+",
14" +.@@..............+",
15" +.@@.@@@@@@@@@@@@.+",
16" +.@@.@@@@@@@@@@@@.+",
17" +.@@.@@@......@@@.+",
18" +.@@.@@@......@@@.+",
19" +.@.@@@@@@@@@@@@.+",
20" +..@@@@@@@@@@@@.+",
21" +..............+",
22" ++++++++++++++ "};
diff --git a/etc/images/ezimage/box-plus.xpm b/etc/images/ezimage/box-plus.xpm
new file mode 100644
index 00000000000..5f70fef9278
--- /dev/null
+++ b/etc/images/ezimage/box-plus.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_box_plus_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #D19200",
8" ",
9" .............. ",
10" .++++++++++++++. ",
11" .++@@@@@@+@@@@@+. ",
12" .+@+@@@@@@+@@@@@+. ",
13" .+@@++++++++++++++.",
14" .+@@+@@@@@@@@@@@@+.",
15" .+@@+@@@@@++@@@@@+.",
16" .+@@+@@@@@++@@@@@+.",
17" .+@@+@@@++++++@@@+.",
18" .+@@+@@@++++++@@@+.",
19" .+@+@@@@@++@@@@@+.",
20" .++@@@@@++@@@@@+.",
21" .++++++++++++++.",
22" .............. "};
diff --git a/etc/images/ezimage/box.xpm b/etc/images/ezimage/box.xpm
new file mode 100644
index 00000000000..f56971543ec
--- /dev/null
+++ b/etc/images/ezimage/box.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_box_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ",
9" ............... ",
10" .++++++++++++++. ",
11" .++@@@@@@+@@@@@+. ",
12" .+@+@@@@@@+@@@@@+. ",
13" .+@@++++++++++++++.",
14" .+@@+@@@@@@@@@@@@+.",
15" .+@@+@@@@@@@@@@@@+.",
16" .+@@+@@@@@@@@@@@@+.",
17" .+@@+@@@@@@@@@@@@+.",
18" .+@@+@@@@@@@@@@@@+.",
19" .+@+@@@@@@@@@@@@+.",
20". .++@@@@@@@@@@@@+.",
21" .++++++++++++++.",
22" .............. "};
diff --git a/etc/images/ezimage/checkmark.xpm b/etc/images/ezimage/checkmark.xpm
new file mode 100644
index 00000000000..ad4078b64b3
--- /dev/null
+++ b/etc/images/ezimage/checkmark.xpm
@@ -0,0 +1,20 @@
1/* XPM */
2static char * sb_chk_xpm[] = {
3"15 15 2 1",
4" c None",
5". c #FF0000",
6" ",
7" . . .. ",
8" . . . ",
9" . . . . ",
10" . .. . ",
11" .. ",
12" .. ",
13" ... .. ",
14" ... .. ",
15" .... .. ",
16" ... .. ",
17" .... ",
18" ... ",
19" . ",
20" "};
diff --git a/etc/images/ezimage/dir-minus.xpm b/etc/images/ezimage/dir-minus.xpm
new file mode 100644
index 00000000000..2edd33e6b2b
--- /dev/null
+++ b/etc/images/ezimage/dir-minus.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_dir_minus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #DBDB00",
8"# c #FFF993",
9" ....... ",
10".+++++++. ",
11".+@@@@@@+......... ",
12".+@@@@@@@++++++++. ",
13".+@@@@@@@@@@@@@@+...",
14".+@@++++++++++++++++",
15".+@@+##############+",
16".+@+##############+.",
17".+@+####++++++####+.",
18".+@+####++++++####+.",
19".+@+##############+.",
20".++##############+..",
21".++##############+. ",
22".+++++++++++++++++. ",
23" ................. "};
diff --git a/etc/images/ezimage/dir-plus.xpm b/etc/images/ezimage/dir-plus.xpm
new file mode 100644
index 00000000000..93154af7e82
--- /dev/null
+++ b/etc/images/ezimage/dir-plus.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_dir_plus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #DBDB00",
8"# c #FFF993",
9" ....... ",
10".+++++++. ",
11".+@@@@@@+.......... ",
12".+@@@@@@@++++++++++.",
13".+@@@@@@@@@@@@@@@@+.",
14".+#######++#####@@+.",
15".+#######++######@+.",
16".+#####++++++####@+.",
17".+#####++++++####@+.",
18".+#######++######@+.",
19".+#######++######@+.",
20".+###############@+.",
21".+###############@+.",
22".++++++++++++++++++.",
23" .................. "};
diff --git a/etc/images/ezimage/dir.xpm b/etc/images/ezimage/dir.xpm
new file mode 100644
index 00000000000..de1d3fd6698
--- /dev/null
+++ b/etc/images/ezimage/dir.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_dir_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #DBDB00",
8"# c #FFF993",
9" ....... ",
10".+++++++. ",
11".+@@@@@@+.......... ",
12".+@@@@@@@++++++++++.",
13".+@@@@@@@@@@@@@@@@+.",
14".+##############@@+.",
15".+###############@+.",
16".+###############@+.",
17".+###############@+.",
18".+###############@+.",
19".+###############@+.",
20".+###############@+.",
21".+###############@+.",
22".++++++++++++++++++.",
23" .................. "};
diff --git a/etc/images/ezimage/doc-minus.xpm b/etc/images/ezimage/doc-minus.xpm
new file mode 100644
index 00000000000..2480e4b9db4
--- /dev/null
+++ b/etc/images/ezimage/doc-minus.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_doc_minus_xpm[] = {
3"15 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #5A818B",
8"# c #FFFFFF",
9" ....... ",
10" .+++++++. ",
11" .+@@@@@@+. ",
12" .+@@@@@@+#. ",
13" .+@@@@@@+#+.",
14" .+@####@+##+.",
15" .+@@@@@@@+#+. ",
16" .+@@@@@@+##+. ",
17".++++@@@@+#+. ",
18".+###++++##+. ",
19".+########+. ",
20".++#######+. ",
21" ..++++##+. ",
22" ....+++. ",
23" ... "};
diff --git a/etc/images/ezimage/doc-plus.xpm b/etc/images/ezimage/doc-plus.xpm
new file mode 100644
index 00000000000..eb7ebe17309
--- /dev/null
+++ b/etc/images/ezimage/doc-plus.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_doc_plus_xpm[] = {
3"15 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #5A818B",
8"# c #FFFFFF",
9" ....... ",
10" .+++++++. ",
11" .+@@@@@@+. ",
12" .+@@#@@@+#. ",
13" .+@@#@@@+#+.",
14" .+@#####+##+.",
15" .+@@@@#@@+#+. ",
16" .+@@@@#@+##+. ",
17".++++@@@@+#+. ",
18".+###++++##+. ",
19".+########+. ",
20".++#######+. ",
21" ..++++##+. ",
22" ....+++. ",
23" ... "};
diff --git a/etc/images/ezimage/doc.xpm b/etc/images/ezimage/doc.xpm
new file mode 100644
index 00000000000..3ed8eee2bcf
--- /dev/null
+++ b/etc/images/ezimage/doc.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_doc_xpm[] = {
3"15 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #5A818B",
8"# c #FFFFFF",
9" ....... ",
10" .+++++++. ",
11" .+@@@@@@+. ",
12" .+@@@@@@+#. ",
13" .+@@@@@@+#+.",
14" .+@@@@@@+##+.",
15" .+@@@@@@@+#+. ",
16" .+@@@@@@+##+. ",
17".++++@@@@+#+. ",
18".+###++++##+. ",
19".+########+. ",
20".+########+. ",
21".++++++##+. ",
22" ......+++. ",
23" ... "};
diff --git a/etc/images/ezimage/info.xpm b/etc/images/ezimage/info.xpm
new file mode 100644
index 00000000000..0027252bf57
--- /dev/null
+++ b/etc/images/ezimage/info.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_info_xpm[] = {
3"10 15 4 1",
4" c None",
5". c #BEBEBE",
6"+ c #0000FF",
7"@ c #FFFFFF",
8" .. ",
9" ..+++. ",
10" .+++@++. ",
11" .+++++++ ",
12" .+++++++ ",
13".++@@@++++",
14".++++@++++",
15".++++@++++",
16".++++@++++",
17" .+++@++++",
18" .+++@+++ ",
19" .+@@@@@+ ",
20" .+++++++ ",
21" .+++++ ",
22" ++ "};
diff --git a/etc/images/ezimage/key.xpm b/etc/images/ezimage/key.xpm
new file mode 100644
index 00000000000..4b9c7b8188d
--- /dev/null
+++ b/etc/images/ezimage/key.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * key_xpm[] = {
3"16 16 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ........ ",
9" ..++++++.. ",
10" .+@@@@@@+. ",
11" .+@@++@@+. ",
12" .+@@@@@@+. ",
13" .+@@@@@@+. ",
14" .+@@@@@@+. ",
15" .+@@@@+. ",
16" .+@@+. ",
17" .+@@@+. ",
18" .+@@+. ",
19" .+@@+. ",
20" .+@@@+. ",
21" .+@@+. ",
22" .++. ",
23" .. "};
diff --git a/etc/images/ezimage/label.xpm b/etc/images/ezimage/label.xpm
new file mode 100644
index 00000000000..715cc2c1dee
--- /dev/null
+++ b/etc/images/ezimage/label.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_label_xpm[] = {
3"10 16 3 1",
4" c None",
5". c gray",
6"+ c blue",
7" .....",
8" ..+++++",
9" .+++++++",
10" .++++++++",
11" .++++++++",
12".+++++++++",
13".+++++++++",
14".+++++++++",
15".+++++++++",
16".+++++++++",
17".+++++++++",
18".+++++++++",
19".+++++++++",
20".+++++++++",
21".+++++++++",
22".+++++++++"};
diff --git a/etc/images/ezimage/lock.xpm b/etc/images/ezimage/lock.xpm
new file mode 100644
index 00000000000..f51ee975c2c
--- /dev/null
+++ b/etc/images/ezimage/lock.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * lock_xpm[] = {
3"16 16 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ........ ",
9" ..++++++.. ",
10" .++....++. ",
11" .+......+. ",
12" ..+......+.. ",
13" ..++++++++++..",
14" .++@@@@@@@@++.",
15" .+@@@@@@@@@@+.",
16" .+@@@@@@@@@@+.",
17" .+@@@++++@@@+.",
18" .+@@@@++@@@@+.",
19" .+@@@@@@@@@@+.",
20" .+@@@@++@@@@+.",
21" .+@@@@@@@@@@+.",
22" .++++++++++++.",
23" .............."};
diff --git a/etc/images/ezimage/mail.xpm b/etc/images/ezimage/mail.xpm
new file mode 100644
index 00000000000..5716eeb9661
--- /dev/null
+++ b/etc/images/ezimage/mail.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_mail_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFFFFF",
8"................... ",
9".++++++++++++++++++.",
10".++@@@@@@@@@@@@@@++.",
11".+@++@@@@@@@@@@++@+.",
12".+@@@++@@@@@@++@@@+.",
13".+@@@@@++@@++@@@@@+.",
14".+@@@@@@@++@@@@@@@+.",
15".+@@@@@@@@@@@@@@@@+.",
16".+@@@@+@@@@@@+@@@@+.",
17".+@@@@@@@@@@@@@@@@+.",
18".+@@+@@@@@@@@@@+@@+.",
19".+@@@@@@@@@@@@@@@@+.",
20".++@@@@@@@@@@@@@@++.",
21".++++++++++++++++++.",
22" .................. "};
diff --git a/etc/images/ezimage/page-minus.xpm b/etc/images/ezimage/page-minus.xpm
new file mode 100644
index 00000000000..2e5424361d1
--- /dev/null
+++ b/etc/images/ezimage/page-minus.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_pg_minus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFFFFF",
8"# c #ADADAD",
9" ............ ",
10" .++++++++++++.",
11" .++@@@@@@@@@@+.",
12" .+#+@@@@@@@@@@+.",
13" .+##+@@@@@@@@@@+.",
14" .+###+@@@@@@@@@@+.",
15" .+####+@@@@@@@@@@+.",
16".+++++++@++++++@@@+.",
17".+@@@@@@@++++++@@@+.",
18".+@@@@@@@@@@@@@@@@+.",
19".+@@@@@@@@@@@@@@@@+.",
20".+@@@@@@@@@@@@@@@@+.",
21".+@@@@@@@@@@@@@@@@+.",
22".++++++++++++++++++.",
23" .................. "};
diff --git a/etc/images/ezimage/page-plus.xpm b/etc/images/ezimage/page-plus.xpm
new file mode 100644
index 00000000000..aa5d38fd215
--- /dev/null
+++ b/etc/images/ezimage/page-plus.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_pg_plus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFFFFF",
8"# c #ADADAD",
9" ............ ",
10" .++++++++++++.",
11" .++@@@@@@@@@@+.",
12" .+#+@@@@@@@@@@+.",
13" .+##+@@@@@@@@@@+.",
14" .+###+@@@++@@@@@+.",
15" .+####+@@@++@@@@@+.",
16".+++++++@++++++@@@+.",
17".+@@@@@@@++++++@@@+.",
18".+@@@@@@@@@++@@@@@+.",
19".+@@@@@@@@@++@@@@@+.",
20".+@@@@@@@@@@@@@@@@+.",
21".+@@@@@@@@@@@@@@@@+.",
22".++++++++++++++++++.",
23" .................. "};
diff --git a/etc/images/ezimage/page.xpm b/etc/images/ezimage/page.xpm
new file mode 100644
index 00000000000..75c6a6e7299
--- /dev/null
+++ b/etc/images/ezimage/page.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * sb_pg_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFFFFF",
8"# c #ADADAD",
9" ............ ",
10" .++++++++++++.",
11" .++@@@@@@@@@@+.",
12" .+#+@@@@@@@@@@+.",
13" .+##+@@@@@@@@@@+.",
14" .+###+@@@@@@@@@@+.",
15" .+####+@@@@@@@@@@+.",
16".+++++++@@@@@@@@@@+.",
17".+@@@@@@@@@@@@@@@@+.",
18".+@@@@@@@@@@@@@@@@+.",
19".+@@@@@@@@@@@@@@@@+.",
20".+@@@@@@@@@@@@@@@@+.",
21".+@@@@@@@@@@@@@@@@+.",
22".++++++++++++++++++.",
23" .................. "};
diff --git a/etc/images/ezimage/tag-gt.xpm b/etc/images/ezimage/tag-gt.xpm
new file mode 100644
index 00000000000..49b8b72a2c1
--- /dev/null
+++ b/etc/images/ezimage/tag-gt.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_tag_gt_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ",
9" ",
10" ............... ",
11" .+++++++++++++++.",
12" .+@@@@@++@@@@@@@+.",
13" .+@@@@@@+++@@@@@@+.",
14".+@@@@@@@++++@@@@@+.",
15".+@++@@@@+++++@@@@+.",
16".+@++@@@@+++++.@@@+.",
17".+@@@@@@@++++.@@@@+.",
18" .+@@@@@@+++.@@@@@+.",
19" .+@@@@@++.@@@@@@+.",
20". .++++++.++++++++.",
21" ............... ",
22" "};
diff --git a/etc/images/ezimage/tag-minus.xpm b/etc/images/ezimage/tag-minus.xpm
new file mode 100644
index 00000000000..f006c4ef4cb
--- /dev/null
+++ b/etc/images/ezimage/tag-minus.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_tag__xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ",
9" ",
10" ............... ",
11" .+++++++++++++++.",
12" .+@@@@@@@@@@@@@@+.",
13" .+@@@@@@@@@@@@@@@+.",
14".+@@@@@@@@@@@@@@@@+.",
15".+@++@@++++++@@@@@+.",
16".+@++@@++++++@@@@@+.",
17".+@@@@@@@@@@@@@@@@+.",
18" .+@@@@@@@@@@@@@@@+.",
19" .+@@@@@@@@@@@@@@+.",
20". .+++++++++++++++.",
21" ............... ",
22" "};
diff --git a/etc/images/ezimage/tag-plus.xpm b/etc/images/ezimage/tag-plus.xpm
new file mode 100644
index 00000000000..cf32fef549c
--- /dev/null
+++ b/etc/images/ezimage/tag-plus.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_tag+_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ",
9" ",
10" ............... ",
11" .+++++++++++++++.",
12" .+@@@@@@@@@@@@@@+.",
13" .+@@@@@@++@@@@@@@+.",
14".+@@@@@@@++@@@@@@@+.",
15".+@++@@++++++@@@@@+.",
16".+@++@@++++++@@@@@+.",
17".+@@@@@@@++@@@@@@@+.",
18" .+@@@@@@++@@@@@@@+.",
19" .+@@@@@@@@@@@@@@+.",
20". .+++++++++++++++.",
21" ............... ",
22" "};
diff --git a/etc/images/ezimage/tag-type.xpm b/etc/images/ezimage/tag-type.xpm
new file mode 100644
index 00000000000..65886989dbd
--- /dev/null
+++ b/etc/images/ezimage/tag-type.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_tag_type_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ",
9" ",
10" ............... ",
11" .+++++++++++++++.",
12" .+@@@@@@@@@@@@@@+.",
13" .+@@@@@@++++++@@@+.",
14".+@@@@@@@++++++@@@+.",
15".+@++@@@@@@++@@@@@+.",
16".+@++@@@@@@++@@@@@+.",
17".+@@@@@@@@@++@@@@@+.",
18" .+@@@@@@@@++@@@@@+.",
19" .+@@@@@@@@@@@@@@+.",
20". .+++++++++++++++.",
21" ............... ",
22" "};
diff --git a/etc/images/ezimage/tag-v.xpm b/etc/images/ezimage/tag-v.xpm
new file mode 100644
index 00000000000..7431e4c5d87
--- /dev/null
+++ b/etc/images/ezimage/tag-v.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_tag_v_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ",
9" ",
10" ............... ",
11" .+++++++++++++++.",
12" .+@@@@@@@@@@@@@@+.",
13" .+@@@++++++++++.@+.",
14".+@@@@@++++++++.@@+.",
15".+@++@@@++++++.@@@+.",
16".+@++@@@@++++.@@@@+.",
17".+@@@@@@@@++.@@@@@+.",
18" .+@@@@@@@@.@@@@@@+.",
19" .+@@@@@@@@@@@@@@+.",
20". .+++++++++++++++.",
21" ............... ",
22" "};
diff --git a/etc/images/ezimage/tag.xpm b/etc/images/ezimage/tag.xpm
new file mode 100644
index 00000000000..4c6f1c56c1f
--- /dev/null
+++ b/etc/images/ezimage/tag.xpm
@@ -0,0 +1,22 @@
1/* XPM */
2static char * sb_tag_xpm[] = {
3"20 15 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ",
9" ",
10" ............... ",
11" .+++++++++++++++.",
12" .+@@@@@@@@@@@@@@+.",
13" .+@@@@@@@@@@@@@@@+.",
14".+@@@@@@@@@@@@@@@@+.",
15".+@++@@@@@@@@@@@@@+.",
16".+@++@@@@@@@@@@@@@+.",
17".+@@@@@@@@@@@@@@@@+.",
18" .+@@@@@@@@@@@@@@@+.",
19" .+@@@@@@@@@@@@@@+.",
20". .+++++++++++++++.",
21" ............... ",
22" "};
diff --git a/etc/images/ezimage/unlock.xpm b/etc/images/ezimage/unlock.xpm
new file mode 100644
index 00000000000..5841163a017
--- /dev/null
+++ b/etc/images/ezimage/unlock.xpm
@@ -0,0 +1,23 @@
1/* XPM */
2static char * unlock_xpm[] = {
3"16 16 4 1",
4" c None",
5". c #828282",
6"+ c #000000",
7"@ c #FFF993",
8" ....... ",
9"..+++++.. ",
10".++...++. ",
11".+.....+. ",
12".+.....+........",
13"....++++++++++..",
14" .++@@@@@@@@++.",
15" .+@@@@@@@@@@+.",
16" .+@@@@@@@@@@+.",
17" .+@@@++++@@@+.",
18" .+@@@@++@@@@+.",
19" .+@@@@@@@@@@+.",
20" .+@@@@++@@@@+.",
21" .+@@@@@@@@@@+.",
22" .++++++++++++.",
23" .............."};
diff --git a/lisp/toolbar/highlight.pbm b/etc/images/highlight.pbm
index 23394f05e27..23394f05e27 100644
--- a/lisp/toolbar/highlight.pbm
+++ b/etc/images/highlight.pbm
Binary files differ
diff --git a/lisp/toolbar/highlight.xpm b/etc/images/highlight.xpm
index 1844128f02f..1844128f02f 100644
--- a/lisp/toolbar/highlight.xpm
+++ b/etc/images/highlight.xpm
diff --git a/lisp/toolbar/alias.pbm b/etc/images/mail/alias.pbm
index cdd42c3632c..cdd42c3632c 100644
--- a/lisp/toolbar/alias.pbm
+++ b/etc/images/mail/alias.pbm
Binary files differ
diff --git a/lisp/toolbar/alias.xpm b/etc/images/mail/alias.xpm
index 8bf75063bdc..8bf75063bdc 100644
--- a/lisp/toolbar/alias.xpm
+++ b/etc/images/mail/alias.xpm
diff --git a/lisp/toolbar/refile.pbm b/etc/images/mail/refile.pbm
index 64e534ecc89..64e534ecc89 100644
--- a/lisp/toolbar/refile.pbm
+++ b/etc/images/mail/refile.pbm
Binary files differ
diff --git a/lisp/toolbar/refile.xpm b/etc/images/mail/refile.xpm
index 561012d8505..561012d8505 100644
--- a/lisp/toolbar/refile.xpm
+++ b/etc/images/mail/refile.xpm
diff --git a/lisp/toolbar/repack.pbm b/etc/images/mail/repack.pbm
index 502b1179939..502b1179939 100644
--- a/lisp/toolbar/repack.pbm
+++ b/etc/images/mail/repack.pbm
Binary files differ
diff --git a/lisp/toolbar/repack.xpm b/etc/images/mail/repack.xpm
index b50b8f37551..b50b8f37551 100644
--- a/lisp/toolbar/repack.xpm
+++ b/etc/images/mail/repack.xpm
diff --git a/lisp/toolbar/reply-all.pbm b/etc/images/mail/reply-all.pbm
index 57503cbea7c..57503cbea7c 100644
--- a/lisp/toolbar/reply-all.pbm
+++ b/etc/images/mail/reply-all.pbm
Binary files differ
diff --git a/lisp/toolbar/reply-all.xpm b/etc/images/mail/reply-all.xpm
index 43453ee4d3a..43453ee4d3a 100644
--- a/lisp/toolbar/reply-all.xpm
+++ b/etc/images/mail/reply-all.xpm
diff --git a/lisp/toolbar/reply-from.pbm b/etc/images/mail/reply-from.pbm
index 99fad608f30..99fad608f30 100644
--- a/lisp/toolbar/reply-from.pbm
+++ b/etc/images/mail/reply-from.pbm
Binary files differ
diff --git a/lisp/toolbar/reply-from.xpm b/etc/images/mail/reply-from.xpm
index 543850f4b5e..543850f4b5e 100644
--- a/lisp/toolbar/reply-from.xpm
+++ b/etc/images/mail/reply-from.xpm
diff --git a/lisp/toolbar/reply-to.pbm b/etc/images/mail/reply-to.pbm
index d7dc6391b69..d7dc6391b69 100644
--- a/lisp/toolbar/reply-to.pbm
+++ b/etc/images/mail/reply-to.pbm
Binary files differ
diff --git a/lisp/toolbar/reply-to.xpm b/etc/images/mail/reply-to.xpm
index bce818c4804..bce818c4804 100644
--- a/lisp/toolbar/reply-to.xpm
+++ b/etc/images/mail/reply-to.xpm
diff --git a/lisp/mail/reply2.pbm b/etc/images/mail/reply.pbm
index f48b34be3ae..f48b34be3ae 100644
--- a/lisp/mail/reply2.pbm
+++ b/etc/images/mail/reply.pbm
Binary files differ
diff --git a/lisp/mail/reply2.xpm b/etc/images/mail/reply.xpm
index 047f8533d7c..047f8533d7c 100644
--- a/lisp/mail/reply2.xpm
+++ b/etc/images/mail/reply.xpm
diff --git a/lisp/toolbar/mh-logo.xpm b/etc/images/mh-logo.xpm
index ce6b97c2f5a..ce6b97c2f5a 100644
--- a/lisp/toolbar/mh-logo.xpm
+++ b/etc/images/mh-logo.xpm
diff --git a/lisp/toolbar/page-down.pbm b/etc/images/page-down.pbm
index 2f577146b63..2f577146b63 100644
--- a/lisp/toolbar/page-down.pbm
+++ b/etc/images/page-down.pbm
Binary files differ
diff --git a/lisp/toolbar/page-down.xpm b/etc/images/page-down.xpm
index 3ef0f24ee0e..3ef0f24ee0e 100644
--- a/lisp/toolbar/page-down.xpm
+++ b/etc/images/page-down.xpm
diff --git a/etc/images/refresh.pbm b/etc/images/refresh.pbm
new file mode 100644
index 00000000000..57a67cfde22
--- /dev/null
+++ b/etc/images/refresh.pbm
Binary files differ
diff --git a/etc/images/refresh.xpm b/etc/images/refresh.xpm
new file mode 100644
index 00000000000..cf7d05d194c
--- /dev/null
+++ b/etc/images/refresh.xpm
@@ -0,0 +1,113 @@
1/* XPM */
2static char * refresh_xpm[] = {
3"24 24 86 1",
4" c None",
5". c #000000",
6"+ c #F3F6F8",
7"@ c #C8D4DF",
8"# c #F7F9FA",
9"$ c #0D110C",
10"% c #6286A5",
11"& c #A0B6C9",
12"* c #C9D5E0",
13"= c #F2F5F7",
14"- c #172116",
15"; c #819EB6",
16"> c #CAD6E1",
17", c #CCD7E1",
18"' c #CED9E3",
19") c #F6F8F9",
20"! c #7192AE",
21"~ c #587B99",
22"{ c #CDD8E2",
23"] c #CFDAE4",
24"^ c #D3DDE6",
25"/ c #D5DEE6",
26"( c #ADC0D0",
27"_ c #90A9BF",
28": c #537490",
29"< c #23323E",
30"[ c #85A1B8",
31"} c #5E83A3",
32"| c #6084A3",
33"1 c #6689A7",
34"2 c #678AA8",
35"3 c #48657D",
36"4 c #A8BCCD",
37"5 c #7393AE",
38"6 c #6B8DAA",
39"7 c #5C81A1",
40"8 c #5D82A2",
41"9 c #6588A6",
42"0 c #435F76",
43"a c #B1C3D2",
44"b c #50718D",
45"c c #9FB5C8",
46"d c #94ACC1",
47"e c #425D73",
48"f c #435E74",
49"g c #B4C5D3",
50"h c #6C8EAB",
51"i c #C4D2DD",
52"j c #5B80A0",
53"k c #456178",
54"l c #7595B0",
55"m c #BFCEDA",
56"n c #597D9C",
57"o c #A3B8CA",
58"p c #B0C2D1",
59"q c #86A2B9",
60"r c #6E8FAB",
61"s c #E1E8EE",
62"t c #B9C9D6",
63"u c #6387A6",
64"v c #4C6B85",
65"w c #7F9DB6",
66"x c #BCCCD9",
67"y c #DDE5EC",
68"z c #E4EAEF",
69"A c #D8E1E9",
70"B c #D1DBE4",
71"C c #C7D3DE",
72"D c #B7C8D6",
73"E c #7091AD",
74"F c #537592",
75"G c #9DB3C6",
76"H c #8CA7BD",
77"I c #304353",
78"J c #4E6E89",
79"K c #829FB7",
80"L c #92ABC0",
81"M c #C5D3DE",
82"N c #7C9AB3",
83"O c #5A7E9D",
84"P c #47647C",
85"Q c #6185A4",
86"R c #5B7F9E",
87"S c #4F6F8A",
88"T c #405A71",
89"U c #283926",
90" . ",
91" .. ",
92" .+. ",
93" ....@#. ",
94" $%&@@**=. .. ",
95" -;@@**>,'). .!~. ",
96" .%@**>,{]^/(. ._:. ",
97" <&@[}}|%123. .4. ",
98".5@678|%920. .ab. ",
99".cd7e...1f. . .gh. ",
100".ijb. .k. .. .al. ",
101".mn. .. .'. .op5. ",
102".qr. . .*s...at4u. ",
103".vw. .xyzyABCDEF. ",
104" .G. .p'B,@ixaH2I. ",
105" .JK. .LM@,>>MmNOP. ",
106" .F9. .9|%Q|}7RS.. ",
107" .. .|R~~nJT.. ",
108" .j~.... ",
109" UO. ",
110" .. ",
111" . ",
112" ",
113" "};
diff --git a/lisp/toolbar/show.pbm b/etc/images/show.pbm
index d86b1e6fe77..d86b1e6fe77 100644
--- a/lisp/toolbar/show.pbm
+++ b/etc/images/show.pbm
Binary files differ
diff --git a/lisp/toolbar/show.xpm b/etc/images/show.xpm
index 659226b8280..659226b8280 100644
--- a/lisp/toolbar/show.xpm
+++ b/etc/images/show.xpm
diff --git a/lisp/toolbar/widen.pbm b/etc/images/widen.pbm
index 2d9780b9959..2d9780b9959 100644
--- a/lisp/toolbar/widen.pbm
+++ b/etc/images/widen.pbm
Binary files differ
diff --git a/lisp/toolbar/widen.xpm b/etc/images/widen.xpm
index 0b87fc9752e..0b87fc9752e 100644
--- a/lisp/toolbar/widen.xpm
+++ b/etc/images/widen.xpm
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8b91dedc496..0bc033fbb35 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,423 @@
12005-10-07 Nick Roberts <nickrob@snap.net.nz>
2
3 * progmodes/gud.el (gud-menu-map): Only display un-intuitive
4 gud-break and gud-remove icons when the fringe is not available.
5
6 * progmodes/gdb-ui.el (gdb-fringe-width -> gdb-buffer-fringe-width):
7 Typo.
8
92005-10-06 Thien-Thi Nguyen <ttn@gnu.org>
10
11 * play/zone.el (zone): Wrap body with save-window-excursion.
12 Suggested by Michael Cadilhac.
13
142005-10-06 Stefan Monnier <monnier@iro.umontreal.ca>
15
16 * calendar/cal-menu.el (calendar-mouse-view-diary-entries):
17 Use the new `list-only' arg to diary-list-entries.
18
19 * calendar/diary-lib.el: Use overlays rather than selective-display.
20 (diary-selective-display): New var.
21 (diary-header-line-format): Use it.
22 (diary-list-entries): Add argument `list-only'.
23 Put the buffer in diary-mode. Don't add \^M at beg and end.
24 Replace \^M by invisible overlays.
25 (diary-unhide-everything): Replace \^M by invisible overlays.
26 (print-diary-entries): Look for overlays rather than \^M.
27 Add a space to the temp buffer name.
28 (diary-show-all-entries, mark-diary-entries, make-diary-entry):
29 Put the buffer in diary-mode.
30 (list-sexp-diary-entries): Replace \^M by invisible overlays.
31 (diary-anniversary): Make the year arg optional.
32 (diary-time-regexp): New const.
33 (diary-font-lock-keywords): Use it to accept a few more time formats.
34
35 * pcvs.el (cvs-sentinel): Make sure we do re-enable undo.
36
372005-10-06 Thien-Thi Nguyen <ttn@gnu.org>
38
39 * textmodes/artist.el (artist-ellipse-mirror-quadrant):
40 Fix bug introduced 2005-07-03: Use (car (last ...))
41 to faithfully reproduce replaced artist-last.
42 (artist-set-arrow-points-for-poly): Likewise.
43 Suggested by Johan Bockg,Ae(Brd.
44
452005-10-06 Juanma Barranquero <lekktu@gmail.com>
46
47 * dframe.el (x-pointer-hand2, x-pointer-top-left-arrow):
48 * wid-edit.el (widget):
49 * progmodes/gdb-ui.el (gdb-buffer-fringe-width):
50 * progmodes/vhdl-mode.el (speedbar-attached-frame): Add defvars.
51
522005-10-06 Kenichi Handa <handa@m17n.org>
53
54 * international/mule-cmds.el (set-language-environment):
55 Fix setting up of case-table for unibyte mode.
56
57 * simple.el (what-cursor-position): If the character is displayed
58 by some `display' text property, show that. Don't use
59 single-key-description for eight-bit characters in multibyte mode.
60
612005-10-06 Nick Roberts <nickrob@snap.net.nz>
62
63 * progmodes/gdb-ui.el (gdb-fringe-width): New variable.
64 (gdb-ann3): Set it.
65 (gdb-put-breakpoint-icon): Don't take fringe-width from speedbar frame.
66 (gdb-info-frames-custom): Use inverse-video for first five
67 characters of selected frame only.
68 (gdb-get-frame-number): Select frame even when point is on frame
69 number.
70
712005-10-06 Masatake YAMATO <jet@gyve.org>
72
73 * progmodes/gdb-ui.el (gdb-info-breakpoints-custom):
74 Put `font-lock-function-name-face'.
75 (gdb-info-frames-custom): Put `font-lock-function-name-face'
76 and `font-lock-variable-name-face'
77 (gdb-registers-font-lock-keywords): New font lock keywords definition.
78 (gdb-registers-mode): Use `gdb-registers-font-lock-keywords`.
79 (gdb-memory-font-lock-keywords): New font lock keywords definition.
80 (gdb-memory-mode): Use `gdb-memory-font-lock-keywords'.
81 (gdb-local-font-lock-keywords): New font lock keywords definition.
82 (gdb-locals-mode): Use `gdb-local-font-lock-keywords'
83 (gdb-threads-font-lock-keywords): New font lock keywords definition.
84 (gdb-threads-mode): Use `gdb-threads-font-lock-keywords'.
85
862005-10-05 Michael Kifer <kifer@cs.stonybrook.edu>
87
88 * ediff-merge.el (ediff-merge-region-is-non-clash): New defsubst.
89 (ediff-merge-region-is-non-clash-to-skip): Previously called
90 ediff-merge-region-is-non-clash.
91
92 * ediff-mult.el (ediff-append-custom-diff, ediff-meta-show-patch):
93 Use insert-buffer-substring.
94
95 * ediff-ptch.el (ediff-fixup-patch-map): Use better heuristics for
96 selecting files to patch. Also bug fixes.
97
98 * ediff-util.el (ediff-setup): Bug fix.
99 (ediff-next-difference): Never skip clashes that differ in white
100 space only.
101
102 * ediff-wind.el (ediff-setup-control-frame)
103 (ediff-destroy-control-frame): Check the menubar feature.
104
105 * viper-cmd.el (viper-normalize-minor-mode-map-alist)
106 (viper-refresh-mode-line): Use make-local-variable to localize
107 some vars instead of make-variable-buffer-local. Suggested by
108 Stefan Monnier.
109
110 * viper-init.el (viper-make-variable-buffer-local): Delete alias.
111 (viper-restore-cursor-type, viper-set-insert-cursor-type):
112 Use make-local-variable instead of make-variable-buffer-local.
113 Suggested by Stefan Monnier.
114
115 * viper.el (viper-mode): Don't use viper-make-variable-buffer-local.
116 (viper-comint-mode-hook): Use make-local-variable on
117 require-final-newline.
118 (viper-non-hook-settings): Don't use make-variable-buffer-local.
119
1202005-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
121
122 * progmodes/scheme.el (scheme-mode-syntax-table): Mark ; as being
123 also the second char of a comment-start sequence.
124 (scheme-sexp-comment-syntax-table): New var.
125 (lambda, define): Set their scheme-doc-string-elt property.
126 (scheme-font-lock-syntactic-face-function): Handle sexp-comments.
127 Use lisp-font-lock-syntactic-face-function now that it properly
128 handles |...| symbols.
129 (scheme-mode-variables): Set lisp-doc-string-elt-property,
130 parse-sexp-lookup-properties and font-lock-extra-managed-props.
131
132 * emacs-lisp/lisp-mode.el (lisp-mode-syntax-table): Move the nesting
133 bit from # to |.
134 (lisp-font-lock-syntactic-face-function): Distinguish |...| symbols.
135
136 * emacs-lisp/lisp-mode.el (lambda): Add its doc-string-elt property.
137 (lisp-doc-string-elt-property): New var.
138 (lisp-font-lock-syntactic-face-function): Use it.
139 Rewrite to recognize docstrings even for forms not at toplevel.
140
141 * progmodes/scheme.el (scheme-mode-syntax-table): Put the nested
142 annotation on the | part of #| rather than on the # part.
143 (scheme-font-lock-syntactic-face-function): New function, to
144 distinguish strings from |...| symbols.
145 (scheme-mode-variables): Use it. Also fix up the font-lock-time
146 syntax-table so that #|...|# is properly highlighted.
147
148 * emacs-lisp/lisp-mode.el (lisp-font-lock-syntactic-face-function):
149 Don't mark as docstring the 3rd elem of an unknown toplevel form.
150
1512005-10-04 Stefan Monnier <monnier@iro.umontreal.ca>
152
153 * bindings.el (global-map): Resync [home] and [end] bindings with C-a
154 and C-e.
155
156 * emacs-lisp/eldoc.el: Move comments into docstrings.
157 (eldoc-message-commands): Initialize in its declaration.
158 Add move-beginning-of-line and move-end-of-line.
159 (eldoc-add-command, eldoc-add-command-completions)
160 (eldoc-remove-command, eldoc-remove-command-completions): Simplify.
161
162 * outline.el (outline-mark-subtree): Activate the mark.
163
164 * calendar/appt.el (appt-time-regexp): New var.
165 (appt-add, appt-make-list): Use it.
166 (appt-convert-time): Clean up.
167
168 * textmodes/tex-mode.el (tex-font-lock-syntactic-face-function):
169 Don't set any syntax-table property here.
170 (tex-font-lock-verb): New function. Do it here.
171 (tex-font-lock-syntactic-keywords): Use it.
172
1732005-10-04 Richard M. Stallman <rms@gnu.org>
174
175 * wid-edit.el (widget-file-complete): Get the widget start point
176 the right way. Default directory to `/' if file has none.
177
178 * x-dnd.el (x-dnd-drop-data): Check for dedicated windows.
179
180 * textmodes/flyspell.el (flyspell-mode-on):
181 Call ispell-maybe-find-aspell-dictionaries.
182
183 * textmodes/ispell.el (ispell-word, ispell-region):
184 Call ispell-maybe-find-aspell-dictionaries.
185 (ispell-accept-buffer-local-defs):
186 Don't call ispell-maybe-find-aspell-dictionaries
187
1882005-10-04 Richard M. Stallman <rms@gnu.org>
189
190 * iswitchb.el (iswitchb-buffer-ignore): Label it risky.
191
1922005-10-04 Emilio C. Lopes <eclig@gmx.net>
193
194 * iswitchb.el (iswitchb-ignore-buffername-p): Use `functionp'
195 instead of `fboundp' in order to allow for anonymous functions.
196
1972005-10-04 Chong Yidong <cyd@stupidchicken.com>
198
199 * info.el (Info-next, Info-prev, Info-up): Select info buffer, in
200 case the user clicks on the link while another window is selected.
201 (Info-speedbar-hierarchy-buttons): Use speedbar-current-frame.
202
203 * dframe.el (dframe-update-keymap): Use mouse-1-click-follows-link
204 functionality.
205 (dframe-help-echo): Save point in case mouse tracking is off.
206
2072005-10-04 Thien-Thi Nguyen <ttn@gnu.org>
208
209 * net/ange-ftp.el (ange-ftp-ls): Fix typo introduced in last change.
210
2112005-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
212
213 * progmodes/cc-styles.el (c-setup-paragraph-variables): Make sure we do
214 not change the global value of those vars.
215
216 * progmodes/cc-mode.el (c-basic-common-init): Remove calls to
217 make-local-variable which we do not need any more.
218
2192005-10-03 Chong Yidong <cyd@stupidchicken.com>
220
221 * speedbar.el (speedbar-ignored-path-regexp, speedbar-line-path)
222 (speedbar-ignored-path-expressions, speedbar-buffers-line-path)
223 (speedbar-add-ignored-path-regexp, speedbar-buffers-line-path)
224 (speedbar-path-line): Define obsolete aliases.
225 (speedbar-line-directory): Doc fix.
226
227 * progmodes/vhdl-mode.el (vhdl-speedbar-initialize)
228 (vhdl-speedbar-rescan-hierarchy): Call speedbar-line-directory
229 instead of speedbar-line-path.
230
2312005-10-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
232
233 * x-dnd.el (x-dnd-drop-data): Don't set dnd-open-file-other-window
234 to nil if dropping on a window. Handle dropping on a minibuffer window
235 like dropping on a non-window part of Emacs.
236
2372005-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
238
239 * net/ange-ftp.el: Use with-current-buffer.
240 (ange-ftp-insert-directory): Do not follow symlinks any more.
241
242 * textmodes/ispell.el (ispell-find-aspell-dictionaries):
243 Remove interactive spec.
244
2452005-10-03 Kim F. Storm <storm@cua.dk>
246
247 * ido.el (ido-mode): Use custom-initialize-set.
248
2492005-10-02 Richard M. Stallman <rms@gnu.org>
250
251 * progmodes/ebnf2ps.el (ebnf-eps-production-list):
252 Use insert-buffer-substring.
253
254 * net/tramp.el: Pacify byte compiler warnings in pacification code.
255 (tramp-handle-file-local-copy): Use insert-buffer-substring.
256
2572005-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
258
259 * net/ange-ftp.el (ange-ftp-insert-directory): Undo unintended part
260 in last change.
261 (ange-ftp-insert-directory): Fix up the search for the case where
262 `file' is absolute.
263
2642005-10-02 Romain Francoise <romain@orebokech.com>
265
266 * progmodes/compile.el (compile-goto-error): Delete extra paren.
267
2682005-10-02 Andreas Schwab <schwab@suse.de>
269
270 * ediff-ptch.el (ediff-fixup-patch-map): Handle file names without
271 directory component in the session info.
272
2732005-10-01 Richard M. Stallman <rms@gnu.org>
274
275 * comint.el (comint-redirect-subvert-readonly): Doc fix.
276
277 * simple.el (next-error-internal): New function.
278
279 * progmodes/compile.el (compilation-buffer-name): New arg MODE-COMMAND.
280 (compilation-start): Pass new arg to compilation-buffer-name.
281 (compile-goto-error): Use next-error-internal.
282
2832005-10-01 Chong Yidong <cyd@stupidchicken.com>
284
285 * speedbar.el: Remove RCS tag.
286 (speedbar-check-read-only): Handle non-existent files.
287
288 * dframe.el, ezimage.el, sb-image.el: Remove RCS tags.
289
290 * info.el (Info-speedbar-hierarchy-buttons)
291 (Info-speedbar-goto-node): Call speedbar-select-attached-frame.
292
2932005-10-01 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
294
295 * textmodes/bibtex.el (bibtex-valid-entry-whitespace-re):
296 Do not match newline.
297 (bibtex-realign): Do not use bibtex-valid-entry-whitespace-re.
298 (bibtex-summary): Remove unnecessary save-excursion.
299 (bibtex-fill-field-bounds): Use fill-region-as-paragraph.
300
3012005-10-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
302
303 * term/mac-win.el: Add charset info for "iso10646-1".
304 Modify default fontset to use ATSUI-compatible fonts for some charsets
305 if available.
306
3072005-10-01 Chong Yidong <cyd@stupidchicken.com>
308
309 * speedbar.el: Re-apply arch tag.
310 (speedbar-version): Rename to version 1.0. Suggested by Eric
311 M. Ludlam.
312 Reapply two changes from Emacs CVS' version of speedbar lost
313 during the merge:
314 (speedbar-use-imenu-flag): Avoid unnecessary use of locate-library.
315 (speedbar-frame-parameters): Improve customize type.
316
3172005-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
318
319 * net/ange-ftp.el (ange-ftp-gwp-start): Use with-current-buffer.
320 (ange-ftp-file-directory-p): Fix the symlink case.
321 (ange-ftp-insert-directory): When listing a single file, get a list of
322 the parent buffer and extract the relevant line. Inspired from a patch
323 by Katsumi Yamaoka <yamaoka@jpl.org>.
324 (ange-ftp-file-name-sans-versions): Simplify.
325
3262005-09-30 Bill Wohler <wohler@newt.com>
327
328 Move MH-E image files from toolbar and mail directories into
329 etc/images.
330
331 * mail/reply2.*: Move to etc/images/mail/reply*.
332
333 * toolbar/execute.*, toolbar/highlight.*, toolbar/mh-logo.xpm:
334 * toolbar/page-down.*, toolbar/show.*, toolbar/widen.*: Move to
335 etc/images.
336
337 * toolbar/alias.*, toolbar/refile.*, toolbar/repack.*:
338 * toolbar/reply*: Move to etc/images/mail.
339
340 * toolbar/rescan.*: Move and rename to etc/images/refresh.*.
341
3422005-09-30 Eric M. Ludlam <zappo@gnu.org>
343
344 * speedbar.el: New version 1.0pre3.
345
346 Frame management code (including timer, and mouse click specifics)
347 moved to dframe.el:
348 (speedbar-attached-frame): Removed. Use dframe-attached-frame.
349 (speedbar-timer): Removed. Use dframe-timer.
350 (speedbar-close-frame): Removed. Use dframe-close-frame.
351 (speedbar-activity-change-focus-flag): Removed. Use
352 dframe-activity-change-focus-flag.
353 (speedbar-update-speed, speedbar-navigating-speed): Obsolete. Use
354 dframe-update-speed.
355
356 (speedbar-current-frame): New macro. Use this instead of the
357 variable speedbar-frame.
358
359 (speedbar-use-images, speedbar-expand-image-button-alist)
360 (speedbar-insert-image-button-maybe): Moved to sb-image.el.
361
362 (speedbar-find-image-on-load-path): Removed. Replaced by
363 defezimage in ezimage.el.
364 (speedbar-expand-image-button-alist): Removed. Replaced by
365 ezimage-expand-image-button-alist in ezimage.el.
366
367 (speedbar-ignored-directory-regexp)
368 (speedbar-add-ignored-directory-regexp)
369 (speedbar-ignored-directory-expressions)
370 (speedbar-line-directory, speedbar-buffers-line-directory)
371 (speedbar-directory-line, speedbar-buffers-line-directory):
372 Renamed, replacing `path' with `directory'.
373
374 (speedbar-create-directory, speedbar-expand-line-descendants)
375 (speedbar-toggle-line-expansion)
376 (speedbar-contract-line-descendants): New commands.
377
378 (speedbar-query-confirmation-method, speedbar-select-frame-method)
379 (speedbar-use-tool-tips-flag): New options.
380
381 (speedbar-check-read-only, speedbar-require-version)
382 (speedbar-insert-separator, speedbar-buffers-tail-notes)
383 (speedbar-handle-delete-frame, speedbar-try-completion)
384 (speedbar-update-localized-contents): New functions.
385
386 (speedbar-incompatible-version, speedbar-ro-to-do-point)
387 (speedbar-object-read-only-indicator): New variables.
388
389 (speedbar-visiting-tag-hook, speedbar-before-visiting-file-hook):
390 New hooks.
391
392 (speedbar-separator-face): New face.
393
394 (speedbar-supported-extension-expressions): Add `.g' and `.ma?k'.
395 (speedbar-ignored-modes): Add fundamental-mode.
396 (speedbar-directory-unshown-regexp): Add . directories.
397
398 (speedbar-key-map): Remove old SPC and DEL page up/down keys.
399 (speedbar-file-key-map): Add SPC to toggle node expansion, `[' and
400 `]' for full expand/close.
401 (speedbar-buffers-key-map): Add SPC to toggle node expansion.
402
403 (speedbar-check-vc): Support hidden files.
404 (speedbar-vc-check-dir-p): Use vc-state if available for CVS.
405 (speedbar-this-file-in-vc): Use vc-state if available. If VC
406 state is nil, it is not checked out.
407
408 (speedbar-line-text, speedbar-line-token): Support expand buttons
409 with no text.
410 (speedbar-refresh): Universal argument acts as power-click.
411 (speedbar-fetch-dynamic-tags): If a buffer is in Emacs, switch to
412 that buffer to get variable values.
413
414 And many other bugfixes.
415
416 * dframe.el, ezimage.el, sb-image.el: New files.
417
418 * sb-*.xpm: Remove files. New image files installed into
419 etc/images/ezimage.
420
12005-09-30 Kenichi Handa <handa@m17n.org> 4212005-09-30 Kenichi Handa <handa@m17n.org>
2 422
3 * ps-mule.el (ps-mule-show-warning): If a character is in 423 * ps-mule.el (ps-mule-show-warning): If a character is in
@@ -47,7 +467,7 @@
47 467
48 * emulation/cua-base.el: Set CUA move property on additional commands: 468 * emulation/cua-base.el: Set CUA move property on additional commands:
49 up-list, down-list, backward-up-list, end-of-defun beginning-of-defun, 469 up-list, down-list, backward-up-list, end-of-defun beginning-of-defun,
50 forward-sexp backward-sexp, forward-list, backward-list 470 forward-sexp, backward-sexp, forward-list, backward-list.
51 471
522005-09-28 Romain Francoise <romain@orebokech.com> 4722005-09-28 Romain Francoise <romain@orebokech.com>
53 473
@@ -107,15 +527,13 @@
107 * progmodes/ebrowse.el (ebrowse-find-pattern): 527 * progmodes/ebrowse.el (ebrowse-find-pattern):
108 * progmodes/idlw-shell.el (idlwave-shell-set-bp-check): 528 * progmodes/idlw-shell.el (idlwave-shell-set-bp-check):
109 * textmodes/reftex-index.el (reftex-index-initialize-phrases-buffer): 529 * textmodes/reftex-index.el (reftex-index-initialize-phrases-buffer):
110 End `yes-or-no-p' and `y-or-n-p' prompts with question mark and 530 End `yes-or-no-p' and `y-or-n-p' prompts with question mark and space.
111 space.
112 531
113 * vc.el (vc-delete-file): 532 * vc.el (vc-delete-file):
114 * play/gomoku.el (gomoku-terminate-game, gomoku) 533 * play/gomoku.el (gomoku-terminate-game, gomoku)
115 (gomoku-prompt-for-move, gomoku-human-takes-back): 534 (gomoku-prompt-for-move, gomoku-human-takes-back):
116 * play/landmark.el (lm-human-takes-back, lm-prompt-for-move) 535 * play/landmark.el (lm-human-takes-back, lm-prompt-for-move)
117 (lm-start-robot, lm-human-plays): Remove extraneous spaces in 536 (lm-start-robot, lm-human-plays): Remove extraneous spaces in messages.
118 messages.
119 537
1202005-09-24 Dan Nicolaescu <dann@ics.uci.edu> 5382005-09-24 Dan Nicolaescu <dann@ics.uci.edu>
121 539
@@ -12234,14340 +12652,13 @@
12234 12652
12235 * image.el (insert-sliced-image): Use t for line-height property. 12653 * image.el (insert-sliced-image): Use t for line-height property.
12236 12654
122372004-12-31 Jay Belanger <belanger@truman.edu> 12655See ChangeLog.11 for earlier changes.
12238
12239 * calc/calc-store.el (calcVar-digit, calcVar-oper): Remove the need
12240 for "var-" at the beginning of the minibuffer.
12241
122422004-12-31 Richard M. Stallman <rms@gnu.org>
12243
12244 * faces.el (read-face-name):
12245 Don't treat an attribute spec as a list of faces.
12246
12247 * simple.el (undo): Use undo-equiv-table to detect
12248 unexpected changes since previous undo.
12249 (undo-list-saved): Variable deleted.
12250 (buffer-disable-undo): Don't alter undo-list-saved.
12251
12252 * files.el (require-final-newline): Allow `visit' and `visit-save'.
12253 (mode-require-final-newline): New option.
12254 (after-find-file): Handle require-final-newline with new values.
12255 (basic-save-buffer): Handle new values of require-final-newline.
12256
12257 * progmodes/sh-script.el (sh-require-final-newline):
12258 Alist value now controls whether to use mode-require-final-newline.
12259 (sh-set-shell): Implement that new meaning.
12260
12261 * progmodes/cc-vars.el (c-require-final-newline): Fix custom type, doc.
12262 * progmodes/cc-mode.el (c-common-init): Use mode-require-final-newline.
12263 * progmodes/antlr-mode.el (antlr-mode): Use mode-require-final-newline.
12264 Delete old-Emacs compatibility code.
12265 (antlr-c-common-init): Function deleted.
12266
12267 * net/snmp-mode.el (snmp-common-mode): Use mode-require-final-newline.
12268 * progmodes/vhdl-mode.el (vhdl-mode): Use mode-require-final-newline.
12269 * progmodes/simula.el (simula-mode): Use mode-require-final-newline.
12270 * progmodes/python.el (python-mode): Use mode-require-final-newline.
12271 * progmodes/perl-mode.el (perl-mode): Use mode-require-final-newline.
12272 * progmodes/modula2.el (modula-2-mode): Use mode-require-final-newline.
12273 * progmodes/mixal-mode.el (mixal-mode): Use mode-require-final-newline.
12274 * progmodes/idlwave.el (idlwave-mode): Use mode-require-final-newline.
12275 * progmodes/icon.el (icon-mode): Use mode-require-final-newline.
12276 * progmodes/fortran.el (fortran-mode): Use mode-require-final-newline.
12277 * progmodes/f90.el (f90-mode): Use mode-require-final-newline.
12278 * progmodes/cperl-mode.el (cperl-mode): Use mode-require-final-newline.
12279 * progmodes/cfengine.el (cfengine-mode): Use
12280 mode-require-final-newline.
12281 * progmodes/ada-mode.el (ada-mode): Use mode-require-final-newline.
12282 * textmodes/text-mode.el (text-mode): Use mode-require-final-newline.
12283 * textmodes/texinfo.el (texinfo-mode): Use mode-require-final-newline.
12284
122852004-12-31 Jay Belanger <belanger@truman.edu>
12286
12287 * calc/calc-graph.el (calc-graph-show-dumb): Mention C-cC-c as the
12288 way to return to Calc.
12289
12290 * calc/calc-yank.el (calc-edit-mode): Mention C-cC-c as the way to
12291 finish, C-xk as the way to cancel the edit. Add cancel routine to
12292 kill-buffer-hook.
12293
12294 * calc/calc.el (calc-same-interface, calc-quit): Remove obsolete
12295 MacEdit code.
12296
12297 * calc/calc-prog.el: Remove obsolete MacEdit code.
12298 (calc-macro-edit-algebraic, calc-macro-edit-variable)
12299 (calc-macro-edit-variable-2, calc-macro-edit-quick-digit): Remove.
12300
123012004-12-31 Kenichi Handa <handa@m17n.org>
12302
12303 * international/mule.el (buffer-file-coding-system-explicit):
12304 Rename for explicit-buffer-file-coding-system.
12305 (after-insert-file-set-coding): Adjust for the above change.
12306
12307 * files.el (revert-buffer): Change explicit-buffer-file-coding-system
12308 to buffer-file-coding-system-explicit.
12309 (basic-save-buffer-1): Likewise.
12310
123112004-12-30 Richard M. Stallman <rms@gnu.org>
12312
12313 * textmodes/artist.el (artist-butlast-fn): Var deleted.
12314 (artist-butlast, artist-last): Functions deleted.
12315 (artist-ellipse-mirror-quadrant): Call last and butlast directly.
12316 (artist-compute-key-compl-table): Call remq directly.
12317 (artist-remove-nulls): Function deleted.
12318 (artist-vaporize-lines, artist-flood-fill): Use push and pop directly.
12319 (artist-push, artist-pop): Macro deleted.
12320
123212004-12-30 Andreas Leue <al@sphenon.de>
12322
12323 * textmodes/artist.el (artist-version): 1.2.6
12324 (artist-prev-next-op-alist): New variable.
12325 (artist-select-next-op-in-list): New function.
12326 (artist-select-prev-op-in-list): New function.
12327 (artist-make-prev-next-op-alist): New function.
12328 (artist-is-in-op-list-p): New function.
12329 (artist-get-first-non-nil-op): New function.
12330 (artist-get-last-non-nil-op): New function.
12331 (artist-mode-init): Call artist-get-last-non-nil-op to initialize
12332 artist-prev-next-op-alist.
12333 (artist-mode-map): Add binding for C-mouse-4 and C-mouse-5 to
12334 change drawing operation.
12335
123362004-12-30 Luc Teirlinck <teirllm@auburn.edu>
12337
12338 * autorevert.el (auto-revert-tail-handler): Put in undo boundaries.
12339
123402004-12-31 Masatake YAMATO <jet@gyve.org>
12341
12342 * server.el (server-process-filter): Suppress `error', too.
12343
123442004-12-30 Jay Belanger <belanger@truman.edu>
12345
12346 * calc/calc-store.el (calc-copy-variable): Fix mistyped variable name.
12347 Change the way a variable is displayed in a message.
12348
12349 * calc/calc-prog.el (calc-user-define-edit, calc-finish-macro-edit)
12350 (calc-user-define-permanent, calc-execute-kbd-macro):
12351 Replace old function MacEdit-parse-keys with edmacro-parse-keys.
12352
123532004-12-30 Kenichi Handa <handa@m17n.org>
12354
12355 * files.el (basic-save-buffer-1):
12356 Set explicit-buffer-file-coding-system to last-coding-system-used.
12357 (revert-buffer): Pay attention to
12358 explicit-buffer-file-coding-system (not buffer-file-coding-system)
12359 on bind coding-system-for-read.
12360
12361 * international/mule.el (explicit-buffer-file-coding-system):
12362 New buffer local variable.
12363 (after-insert-file-set-coding): Set it to coding-system-for-read.
12364
123652004-12-29 Luc Teirlinck <teirllm@auburn.edu>
12366
12367 * autorevert.el (auto-revert-tail-mode): Doc fix for defvar.
12368
123692004-12-29 Sanghyuk Suh <han9kin@mac.com>
12370
12371 * term/mac-win.el (mac-drag-n-drop): Handle drag-n-drop events
12372 that include line numbers.
12373
123742004-12-29 Milan Zamazal <pdm@zamazal.org>
12375
12376 * files.el (hack-local-variables): If no PREFIX, set it to "^".
12377 Redundant variable PREFIXLEN removed.
12378
123792004-12-28 Matt Hodges <MPHodges@member.fsf.org>
12380
12381 * eshell/em-hist.el (eshell-previous-matching-input):
12382 Start the deletion from the end of the output.
12383
123842004-12-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12385
12386 * term/mac-win.el: Require x-dnd.
12387 (mac-drag-n-drop): Sync with W32 version. Use x-dnd.el functions.
12388
123892004-12-29 David Kastrup <dak@gnu.org>
12390
12391 * international/mule.el (decode-coding-inserted-region):
12392 Don't barf if `buffer-undo-list' is already set to `t'.
12393
123942004-12-29 Jay Belanger <belanger@truman.edu>
12395
12396 * calc/calc-prog.el (calc-user-define-formula): Put default values
12397 for function names in prompts.
12398 (calc-user-define-permanent, calc-user-define-composition)
12399 (calc-user-define-formula): Remove the need for "calcFunc-" in the
12400 default input for algebraic functions.
12401
124022004-12-29 Thien-Thi Nguyen <ttn@gnu.org>
12403
12404 * vc-rcs.el (vc-rcs-annotate-command):
12405 Fix omission bug: Call `vc-setup-buffer'.
12406
124072004-12-29 Kenichi Handa <handa@m17n.org>
12408
12409 * international/mule.el (recode-region): New function.
12410
124112004-12-28 Richard M. Stallman <rms@gnu.org>
12412
12413 * simple.el (undo-extra-outer-limit): New variable.
12414 (undo-outer-limit-truncate): Test and set it.
12415
12416 * emacs-lisp/lisp.el (mark-sexp, mark-defun): New arg ALLOW-EXTEND
12417 enables the feature to extend the existing region.
12418
12419 * simple.el (mark-word): New arg ALLOW-EXTEND
12420 enables the feature to extend the existing region.
12421
12422 * textmodes/paragraphs.el (mark-paragraph): New arg ALLOW-EXTEND
12423 enables the feature to extend the existing region.
12424
12425 * startup.el (site-run-file): Don't allow setting it with Custom.
12426
12427 * simple.el (buffer-disable-undo): Fix previous change.
12428
124292004-12-27 Masatake YAMATO <jet@gyve.org>
12430
12431 * hexl.el (hexlify-buffer): Remove fontification here.
12432 Use font lock mechanism instead.
12433 (hexl-font-lock-keywords): New font lock kewords.
12434 (hexl-mode-old-font-lock-keywords): New variable.
12435 (hexl-mode): Store the old font lock keywords.
12436 (hexl-mode-exit): Restore the old font lock keywords.
12437
124382004-12-27 Richard M. Stallman <rms@gnu.org>
12439
12440 * simple.el (undo): Fix previous change.
12441
124422004-12-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12443
12444 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
12445 Call mac-clear-font-name-table if invoked on Mac OS 8/9.
12446 Call x-open-connection on Mac OS X.
12447
124482004-12-27 Richard M. Stallman <rms@gnu.org>
12449
12450 * files.el (buffer-save-without-query): New var (buffer-local).
12451 (save-some-buffers): Save those buffers first, w/o asking.
12452
12453 * files.el (insert-directory-ls-version): New variable.
12454 (insert-directory): When ls returns an error, test the version
12455 number to decide what the return code means.
12456 With --dired output format, detect and distinguish lines
12457 that are really error messages.
12458 (insert-directory-adj-pos): New function.
12459
12460 * bookmark.el (bookmark-jump): Nice error if BOOKMARK is nil.
12461
12462 * battery.el (battery-mode-line-format): Remove initial spaces.
12463
12464 * uniquify.el (uniquify-rationalize-file-buffer-names):
12465 Delete interactive spec.
12466
12467 * type-break.el (type-break-mode): Set buffer-save-without-query.
12468 Remove code that tried to set save-some-buffers-always.
12469 (type-break-file-keystroke-count): Bind deactivate-mark.
12470
12471 * mouse.el (mouse-drag-region): Bind mouse-autoselect-window.
12472
12473 * simple.el (next-error-buffer-p): New arg AVOID-CURRENT.
12474 Test that the buffer is live, and maybe reject current buffer too.
12475 Clarify.
12476 (next-error-find-buffer): Rewrite for clarity.
12477
12478 * loadup.el: Don't use buffer-disable-undo; do it directly.
12479
12480 * help-fns.el (describe-function-1): Call symbol-file with `defun'.
12481 (describe-variable): Call symbol-file with `defvar'.
12482
12483 * subr.el (messages-buffer-max-lines): Alias for message-log-max.
12484 (symbol-file): Rewritten to handle new load-history format.
12485 Now takes an arg TYPE to specify looking for a particular
12486 type of definition only.
12487
12488 * emacs-lisp/debug.el (debugger-make-xrefs):
12489 Call symbol-file with `defun'.
12490
12491 * emacs-lisp/find-func.el (find-function-noselect):
12492 Call symbol-file with `defun'.
12493 (find-variable-noselect): Call symbol-file with `defvar'.
12494
12495 * eshell/esh-cmd.el (eshell-find-alias-function):
12496 Call symbol-file with `defun'.
12497
12498 * eshell/esh-test.el (eshell-test-goto-func):
12499 Call symbol-file with `defun'.
12500
12501 * mail/rmail.el (rmail-resend):
12502 Let MAIL-ALIAS-FILE arg override mail-personal-alias-file.
12503
12504 * net/goto-addr.el (goto-address-mail-regexp): Allow = in username.
12505
12506 * progmodes/compile.el (compilation-find-buffer): Rename arg.
12507
12508 * textmodes/texinfmt.el (texinfo-format-buffer-1):
12509 Call buffer-disable-undo.
12510
12511 * simple.el (undo-list-saved): New variable (buffer-local).
12512 (undo): Set and test it.
12513 (buffer-disable-undo): Move here from buffer.c.
12514 Clear out undo-list-saved.
12515
12516 * international/mule.el (decode-coding-inserted-region):
12517 Set buffer-undo-list in a correct and optimal way.
12518
12519 * progmodes/cperl-mode.el (cperl-find-bad-style): Use with-no-warnings.
12520 (cperl-font-lock-unfontify-region-function): No need to save and
12521 restore info, since font-lock.el does it for us.
12522
12523 * ansi-color.el (save-buffer-state): Definition deleted.
12524 (ansi-color-unfontify-region): Don't use save-buffer-state.
12525
125262004-12-27 Dave Love <fx@gnu.org>
12527
12528 * wid-edit.el (function): Use restricted-sexp as parent.
12529
125302004-12-27 Kevin Ryde <user42@zip.com.au>
12531
12532 * simple.el (next-matching-history-element): Use same
12533 `interactive' form as previous-matching-history-element.
12534
12535 * ffap.el (ffap-string-at-point-mode-alist): Add "*" to url chars,
12536 it can appear unencoded and has been seen from yahoo.
12537
125382004-12-27 Sergey Poznyakoff <gray@Mirddin.farlep.net> (tiny change)
12539
12540 * mail/smtpmail.el (smtpmail-try-auth-methods): Send AUTH CRAM-MD5
12541 in upper case. Reported by Wojciech Polak <polak@gnu.org>.
12542
125432004-12-27 Kenichi Handa <handa@m17n.org>
12544
12545 * international/utf-8.el (utf-translate-cjk-load-tables):
12546 Bind coding-system-for-read to nil while loading subst-*.
12547
125482004-12-26 Jay Belanger <belanger@truman.edu>
12549
12550 * calc/calc-store.el (calc-read-var-name): Remove "var-" from
12551 default input.
12552
125532004-12-26 Luc Teirlinck <teirllm@auburn.edu>
12554
12555 * buff-menu.el (Buffer-menu-revert-function): Clear out undo info
12556 before reverting and disable undo recording while reverting.
12557
125582004-12-26 Thien-Thi Nguyen <ttn@gnu.org>
12559
12560 * progmodes/hideshow.el (hs-set-up-overlay): New user var.
12561 (hs-make-overlay): New function.
12562 (hs-isearch-show-temporary): Handle `display' overlay prop specially.
12563 (hs-flag-region): Delete function.
12564 (hs-hide-comment-region): No longer use `hs-flag-region'.
12565 Instead, use `hs-discard-overlays' and `hs-make-overlay'.
12566 (hs-hide-block-at-point): Likewise.
12567 (hs-hide-level-recursive): Use `hs-discard-overlays'.
12568 (hs-hide-all, hs-show-all): Likewise.
12569 (hs-show-block): Likewise.
12570 Also, use overlay prop `hs-b-offset', not `hs-ofs'.
12571
125722004-12-24 Thien-Thi Nguyen <ttn@gnu.org>
12573
12574 * progmodes/hideshow.el: Require `cl' when compiling.
12575 Remove XEmacs and Emacs 19 compatibility.
12576 Use `dolist' and `add-to-list' for load-time actions.
12577 (hs-discard-overlays): Use `dolist'.
12578 (hs-show-block): Likewise.
12579
125802004-12-23 Dan Nicolaescu <dann@ics.uci.edu>
12581
12582 * faces.el (mode-line, mode-line-inactive): Use min-colors.
12583
125842004-12-23 Thien-Thi Nguyen <ttn@gnu.org>
12585
12586 * progmodes/hideshow.el (hs-inside-comment-p): Fix omission bug:
12587 When extending backwards, move outside the current comment first.
12588
125892004-12-22 Kenichi Handa <handa@m17n.org>
12590
12591 * international/quail.el (quail-start-translation): Fix prompt
12592 string for the case if input-method-use-echo-area being non-nil.
12593 (quail-start-conversion): Likewise.
12594 (quail-show-guidance): Don't show guidance if
12595 input-method-use-echo-area is non-nil.
12596
125972004-12-21 Richard M. Stallman <rms@gnu.org>
12598
12599 * textmodes/ispell.el (ispell-help): Bind resize-mini-windows.
12600
126012004-12-21 Markus Rost <rost@ias.edu>
12602
12603 * calendar/diary-lib.el (mark-diary-entries):
12604 Set mark-diary-entries-in-calendar only after checking for diary-file.
12605
126062004-12-21 Richard M. Stallman <rms@gnu.org>
12607
12608 * faces.el (escape-glyph): Use blue against light foreground.
12609
12610 * simple.el (undo-outer-limit-truncate): New function.
12611 (undo-outer-limit-function): Use undo-outer-limit-truncate.
12612
126132004-12-21 Eli Barzilay <eli@barzilay.org>
12614
12615 * calculator.el (calculator-radix-grouping-mode)
12616 (calculator-radix-grouping-digits)
12617 (calculator-radix-grouping-separator):
12618 New defcustoms for the new radix grouping mode functionality.
12619 (calculator-mode-hook): Now used in electric mode too,
12620 (calculator): Call it.
12621 (calculator-mode-map): Some new keys.
12622 (calculator-message): New function. Some new calls.
12623 (calculator-op, calculator-set-register): Use it.
12624 (calculator-string-to-number): New function, mostly moved and
12625 updated code from calculator-curnum-value.
12626 (calculator-curnum-value): Use it.
12627 (calculator-paste): Use it, and update grabbing the current-kill.
12628 (calculator-rotate-displayer)
12629 (calculator-rotate-displayer-back): Toggle digit grouping when
12630 in radix mode, use calculator-message.
12631 (calculator-displayer-prev, calculator-displayer-next):
12632 Change digit group size when in radix mode.
12633 (calculator-number-to-string): Rename from
12634 calculator-num-to-string. Now deals with digit grouping in
12635 radix mode.
12636 (calculator-update-display, calculator-put-value): Use the new name.
12637 (calculator-fact): Return a floating point number.
12638 (calculator-mode): Doc fix.
12639
126402004-12-20 Glenn Morris <gmorris@ast.cam.ac.uk>
12641
12642 * calendar/calendar.el (view-other-diary-entries): Add autoload.
12643 * calendar/diary-lib.el (view-other-diary-entries):
12644 Use current-prefix-arg in interactive spec.
12645
126462004-12-19 Jay Belanger <belanger@truman.edu>
12647
12648 * calc/calc-aent.el (calcAlg-blank-matching-open): Temporarily
12649 adjust the syntax of both delimiters of half-open intervals.
12650
126512004-12-19 Kim F. Storm <storm@cua.dk>
12652
12653 * mouse.el (mouse-1-click-follows-link): Doc fix.
12654
126552004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12656
12657 * term/mac-win.el (encoding-vector, mac-font-encoder-list)
12658 (ccl-encode-mac-centraleurroman-font): Use centraleurroman
12659 instead of centraleuropean as the name
12660
126612004-12-17 Michael Albinus <michael.albinus@gmx.de>
12662
12663 Sync with Tramp 2.0.46.
12664
12665 * net/tramp.el (tramp-maybe-send-perl-script): Change order of
12666 parameters wrt Tramp convention.
12667 (tramp-handle-file-attributes-with-perl)
12668 (tramp-handle-directory-files-and-attributes): Apply it.
12669 (tramp-do-copy-or-rename-file-out-of-band): Check for existence of
12670 `copy-program'. Reported by Zack Weinberg
12671 <zack@codesourcery.com>.
12672 (top): Set `edebug-form-spec' property directly rather than
12673 calling `def-edebug-spec'.
12674
12675 * net/tramp-smb.el (tramp-smb-advice-PC-do-completion): Make the
12676 advice less fragile. Surround temporary redefinition of
12677 `substitute-in-file-name' with `unwind-protect'. Suggested by
12678 Matt Hodges <MPHodges@member.fsf.org>.
12679
126802004-12-17 Juri Linkov <juri@jurta.org>
12681
12682 * replace.el (occur-accumulate-lines, occur-engine):
12683 Make forcing deferred font-lock fontification jit-specific.
12684
126852004-12-17 Kim F. Storm <storm@cua.dk>
12686
12687 * mouse.el (mouse-1-click-follows-link): New defcustom.
12688 (mouse-on-link-p): New function.
12689 (mouse-drag-region-1): Implement mouse-1-click-follows-link
12690 functionality. Map a mouse-1 click event into a mouse-2 (or
12691 other) event when position is inside a link.
12692
12693 * tooltip.el (tooltip-show-help-function): Replace "mouse-2"
12694 prefix in tooltip text with "mouse-1" when this is a link
12695 recognized by mouse-1-click-follows-link functionality.
12696
12697 * help.el (describe-key): Report effective and original binding
12698 for mouse-1 when clicked on a link.
12699 (describe-mode): Add follow-link property to "minor-mode" button.
12700
12701 * help-fns.el (describe-variable): Add follow-link property to
12702 "below" button.
12703
12704 * help-mode.el (help-xref): Add follow-link property.
12705
12706 * apropos.el (apropos-symbol, apropos-function, apropos-macro)
12707 (apropos-command, apropos-variable, apropos-face, apropos-group)
12708 (apropos-widget, apropos-plist): Add follow-link property.
12709
12710 * pcvs-defs.el (cvs-mode-map): Map follow-link to a function which
12711 checks if position is in a filename, rather than some other
12712 clickable item. Function looks for cvs-filename-face at position.
12713
12714 * wid-edit.el (widget-specify-field, widget-specify-button):
12715 Map a :follow-link keyword into a follow-link property.
12716 (link): Add :follow-link keyword, map to RET binding.
12717
12718 * dired.el (dired-mode-map): Map follow-link to mouse-face.
12719
12720 * progmodes/compile.el (compilation-minor-mode-map)
12721 (compilation-button-map, compilation-mode-map): Likewise.
12722
127232004-12-17 Thien-Thi Nguyen <ttn@gnu.org>
12724
12725 * play/zone.el (zone): Init `line-spacing' from orig buffer.
12726 (zone-replace-char): Take `count' and `del-count'
12727 instead of `direction'. Update callers. When `del-count' is
12728 non-nil, delete that many characters, otherwise `count' characters
12729 backwards. Insert the newly-replaced string `count' times.
12730 (zone-fret): Handle chars w/ width greater than one.
12731 (zone-fall-through-ws): No longer take window width `ww'.
12732 Update callers. Add handling for `char-width' greater than one.
12733 (zone-pgm-drip): Update var holding window-end position every cycle.
12734
127352004-12-17 Andre Spiegel <spiegel@gnu.org>
12736
12737 * vc.el (vc-default-update-changelog): Use insert-file-contents,
12738 rather than insert-file.
12739
127402004-12-16 Jay Belanger <belanger@truman.edu>
12741
12742 * calc/calc-comb.el (var-RandSeed): Don't initially bind it.
12743 (math-init-random-base, math-random-digit): Check to see if
12744 var-RandSeed is bound.
12745 (math-random-last): Declare it.
12746 (math-random-digit): Don't make math-random-last local.
12747
127482004-12-16 Thien-Thi Nguyen <ttn@gnu.org>
12749
12750 * play/zone.el (zone): Fix omission bug: Use a self-disabling
12751 one-shot thunk for uniform (error, quit, normal) recovery.
12752 Reported by John Paul Wallington.
12753 (zone-pgm-random-life): Fix bug:
12754 Recognize empty initial field by lack of "@" chars.
12755
127562004-12-16 Juri Linkov <juri@jurta.org>
12757
12758 * help.el (function-called-at-point):
12759 * help-fns.el (variable-at-point): As a last resort try stripping
12760 non-word prefixes and suffixes.
12761
12762 * descr-text.el (describe-property-list): Don't treat syntax-table
12763 specially. Use describe-text-sexp which inserts [show] button
12764 for large objects and handles printing errors. Sort properties
12765 by names in alphabetical order instead of by value sizes.
12766 Add `mouse-face' to list of properties for `describe-face' widget.
12767 (describe-char): Mask out face-id from 19 bits of character.
12768 Print face-id separately.
12769
12770 * replace.el (occur-accumulate-lines, occur-engine):
12771 Fontify unfontified matching lines in the source buffer
12772 before copying them.
12773 (occur-engine): Don't put mouse-face on context lines.
12774 (occur-next-error): Set point to line beginning/end
12775 before searching for prev/next property to skip multiple
12776 matches on a line (not supported by occur engine).
12777 Remove redundant prefix-numeric-value.
12778
127792004-12-15 Juri Linkov <juri@jurta.org>
12780
12781 * replace.el (match): New face.
12782 (list-matching-lines-face): Change default from `bold' to `match'.
12783
12784 * progmodes/grep.el (grep-match-face): New defvar.
12785 (grep-mode-font-lock-keywords): Use grep-match-face instead of
12786 compilation-column-face to highlight grep matches.
12787
12788 * apropos.el (apropos-match-face): Change default from
12789 `secondary-selection' to `match'.
12790
12791 * info-look.el (info-lookup-highlight-face): Change default from
12792 `highlight' to `match'.
12793
127942004-12-15 Daniel Pfeiffer <occitan@esperanto.org>
12795
12796 * progmodes/executable.el (executable-interpret): Eliminate
12797 obsolete compile-internal, and switch to comint for interaction.
12798
127992004-12-15 J.D. Smith <jdsmith@as.arizona.edu>
12800
12801 * progmodes/idlwave.el (idlwave-skip-multi-commands): Don't match
12802 `&&' when skipping multiple statements on a line.
12803
128042004-12-15 Thien-Thi Nguyen <ttn@gnu.org>
12805
12806 * play/zone.el (zone): Set `truncate-lines'.
12807 Also, init `tab-width' with value from original buffer.
12808 (zone-shift-up): Rewrite for speed.
12809 (zone-shift-down, zone-shift-left, zone-shift-right): Likewise.
12810 (zone-pgm-jitter): Remove redundant entries from ops vector.
12811 (zone-exploding-remove): Reduce iteration count.
12812 (zone-cpos): Convert to defsubst.
12813 (zone-replace-char): New defsubst.
12814 (zone-park/sit-for): Likewise.
12815 (zone-fret): Take window-start arg.
12816 Update callers. Use `zone-park/sit-for'.
12817 (zone-fill-out-screen): Rewrite.
12818 (zone-fall-through-ws): Likewise. Update callers.
12819 (zone-pgm-drip): Use `zone-replace-char'.
12820 Move var inits before while-loop. Use `zone-park/sit-for'.
12821 (zone-pgm-random-life): Handle empty initial field.
12822 Use `zone-replace-char' and `zone-park/sit-for'.
12823
128242004-12-15 Juri Linkov <juri@jurta.org>
12825
12826 * isearch.el (isearch-update): Test isearch-lazy-highlight
12827 before calling isearch-lazy-highlight-new-loop.
12828 (isearch-lazy-highlight-new-loop):
12829 Don't test isearch-lazy-highlight.
12830
12831 * replace.el (perform-replace): Add isearch-case-fold-search.
12832 Use delimited-flag for isearch-regexp.
12833 Reset isearch-lazy-highlight-last-string to force lazy
12834 highlighting when called from isearch mode.
12835 (query-replace-highlight): Revert defcustom type to boolean.
12836 (query-replace-lazy-highlight): New defcustom.
12837 (query-replace): New face.
12838 (perform-replace, replace-highlight, replace-dehighlight):
12839 Test query-replace-lazy-highlight instead of special value
12840 `isearch' of query-replace-highlight.
12841 (replace-dehighlight): Don't call isearch-dehighlight.
12842 (replace-highlight): Don't call isearch-highlight.
12843 Use face `query-replace' unconditionally.
12844
128452004-12-14 Kim F. Storm <storm@cua.dk>
12846
12847 * simple.el (inhibit-mark-movement): Remove defvar.
12848 (beginning-of-buffer, end-of-buffer): Don't use it.
12849
12850 * emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
12851 Don't use inhibit-mark-movement.
12852
12853 * emulation/cua-base.el (cua--preserve-mark-commands): Remove.
12854 (cua--undo-push-mark): Remove.
12855 (cua--pre-command-handler, cua--post-command-handler):
12856 Don't fiddle with inhibit-mark-movement.
12857
128582004-12-14 Juri Linkov <juri@jurta.org>
12859
12860 * buff-menu.el (list-buffers-noselect): Collect internal info
12861 for every buffer in BUFFER-LIST arg too.
12862 (Buffer-menu-switch-other-window): Bind pop-up-windows to t.
12863 (Buffer-menu-switch-other-window, Buffer-menu-2-window):
12864 Bind same-window-buffer-names and same-window-regexps to nil.
12865
128662004-12-13 Juri Linkov <juri@jurta.org>
12867
12868 * simple.el (next-error-buffer-p, next-error-find-buffer): Doc fix.
12869
12870 * mail/supercite.el (sc-cite-frame-alist): Doc fix.
12871 (sc-cite-region, sc-uncite-region, sc-recite-region):
12872 Fix previous change to handle not alist as a symbol, but
12873 a citation frame as a symbol that represents a variable name.
12874
128752004-12-13 Richard M. Stallman <rms@gnu.org>
12876
12877 * filecache.el (file-cache-add-directory-using-find):
12878 Only set up file-cache-find-command-posix-flag if we will use it.
12879
12880 * bindings.el (mode-line-buffer-identification-keymap):
12881 Don't cancel the mode-line's usual down-mouse-1 binding.
12882
12883 * cus-edit.el (custom-face-selected): Handle `default' specs.
12884 (custom-face-edit): Increase extra-offset.
12885 (custom-display): Handle `default' specs.
12886
12887 * xml.el (xml-name-re, xml-entity-value-re): Add defvars.
12888
12889 * emacs-lisp/elint.el (elint-standard-variables)
12890 (elint-unknown-builtin-args): Move definitions up.
12891
12892 * net/browse-url.el (browse-url-url-at-point): Add autoload.
12893
12894 * info.el (info-xref-visited): Use `default' instead of t.
12895 (Info-try-follow-nearest-node): Don't explicitly load browse-url.
12896
12897 * faces.el (header-line, mode-line-inactive, tool-bar):
12898 Use `default' instead of t for setting the defaults.
12899 (face-spec-choose): Separate `t' from `default'.
12900
12901 * subr.el (while-no-input): New macro.
12902
129032004-12-13 Frederik Fouvry <fouvry@CoLi.Uni-SB.DE> (tiny change)
12904
12905 * filecache.el (file-cache-add-directory-using-find):
12906 Only test file-cache-find-command-posix-flag on some systems.
12907
129082004-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
12909
12910 * vc-svn.el (vc-svn-repository-hostname): Adjust to new format.
12911 Reported by Ville Skytt,Ad(B <scop@xemacs.org>.
12912 (vc-svn-annotate-current-time, vc-svn-annotate-time-of-rev)
12913 (vc-svn-annotate-time, vc-svn-annotate-extract-revision-at-line)
12914 (vc-svn-annotate-command, vc-svn-annotate-re): Support for svn
12915 annotate.
12916
129172004-12-12 Juri Linkov <juri@jurta.org>
12918
12919 * files.el (find-file-other-window, find-file-other-frame):
12920 Add the first buffer to the returned value to return the complete
12921 list of all visited buffers.
12922 (find-file-read-only, find-file-read-only-other-window)
12923 (find-file-read-only-other-frame): Use nil for `mustmatch' arg of
12924 `find-file-read-args'. Signal an error about non-existent file
12925 only if file name doesn't contain wildcards. Toggle read-only in
12926 all visited buffers.
12927 (find-alternate-file, find-alternate-file-other-window):
12928 Add optional arg `wildcards'. Doc fix. Set `wildcards' to t when
12929 called interactively. Pass arg `wildcards' to other functions.
12930 (find-file-noselect): Doc fix.
12931
12932 * ffap.el (ffap-dired-wildcards): Set default to "[*?][^/]*\\'".
12933 Doc fix.
12934 (ffap-directory-finder): New variable.
12935 (ffap-string-at-point-mode-alist): Add * and ? to `file'.
12936 (ffap-file-at-point): Add /* to immediately rejected names.
12937 Return absolute file names matching ffap-dired-wildcards.
12938 (ffap-read-file-or-url): Set default value for `completing-read'
12939 to `buffer-file-name'.
12940 (find-file-at-point): When filename matches ffap-dired-wildcards,
12941 call ffap-file-finder with t arg `wildcards', instead of dired.
12942 (ffap-other-window, ffap-other-frame): Return visited buffers.
12943 (ffap-read-only, ffap-read-only-other-window)
12944 (ffap-read-only-other-frame, ffap-alternate-file): New commands.
12945 (dired-at-point): Call ffap-directory-finder instead of dired.
12946 (ffap-dired-other-window, ffap-dired-other-frame)
12947 (ffap-list-directory): New commands.
12948 (ffap-bindings): New keybindings for new commands.
12949
129502004-12-12 Juri Linkov <juri@jurta.org>
12951
12952 * simple.el (beginning-of-buffer, end-of-buffer):
12953 * emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
12954 Do not push mark when mark is active in transient-mark-mode.
12955
12956 * simple.el (mark-word):
12957 * emacs-lisp/lisp.el (mark-sexp, mark-defun):
12958 * textmodes/paragraphs.el (mark-paragraph):
12959 Extend the region when mark is active in transient-mark-mode,
12960 regardless of the last command. Doc fix.
12961
12962 * simple.el (mark-word): Preserve direction when repeating.
12963 Make arg optional. Interactive "p" -> "P".
12964 (transient-mark-mode, inhibit-mark-movement): Doc fix.
12965
12966 * emacs-lisp/lisp.el (mark-sexp): Reverse the condition for
12967 preserving direction, to mark forward instead of backward when mark
12968 is equal to point (e.g. when C-SPC C-M-SPC is typed in t-m-m).
12969
129702004-12-12 Juri Linkov <juri@jurta.org>
12971
12972 * isearch.el (isearch-edit-string): Set 7th arg of
12973 `read-from-minibuffer' to `t' to inherit the current input
12974 method (whose name is indicated by [IM] in the minibuffer prompt)
12975 from the current buffer to the minibuffer.
12976 (isearch-lazy-highlight-update): Put body to `with-local-quit'
12977 to allow C-g quitting for lazy highlighting looping inside the
12978 search with nested repetition operators. Add overlay to the list
12979 before setting its face and other properties to avoid the case of
12980 code quitting after placing the new overlay but before it's
12981 recorded on the list. Select the window where isearch was
12982 activated, to highlight matches in the right window when isearch
12983 switches the current window to the minibuffer.
12984
12985 * international/isearch-x.el
12986 (isearch-process-search-multibyte-characters):
12987 Use `isearch-message' as initial input for `read-string' instead
12988 of adding it to the minibuffer prompt. After reading a string
12989 remove the initial value of `isearch-message' from the string.
12990
12991 * replace.el (replace-match-maybe-edit): Doc fix.
12992 (perform-replace): Don't call `replace-highlight' when automatic
12993 replacement is requested in literal mode, since it is intended
12994 only to highlight words during entering a new replacement string
12995 for \? in non-literal mode.
12996
12997 * replace.el (query-replace-highlight): Add new value `isearch'
12998 that allows query replacement to use isearch highlighting.
12999 Change type from `boolean' to `choice'. Doc fix.
13000 (replace-highlight, replace-dehighlight, perform-replace):
13001 Use isearch highlighting if query-replace-highlight eq `isearch'.
13002
130032004-12-11 Stefan Monnier <monnier@iro.umontreal.ca>
13004
13005 * emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments)
13006 (checkdoc-message-text, checkdoc-defun): Fix format messages for
13007 `error'.
13008
13009 * textmodes/tex-mode.el (latex-backward-sexp-1): Handle the special
13010 case of \end{verbatim}.
13011
130122004-12-11 Dan Nicolaescu <dann@ics.uci.edu>
13013
13014 * term.el (term-termcap-format): Synchronize with terminfo.
13015 (term-emulate-terminal): Handle reset.
13016 (term-reset-terminal): New function.
13017
130182004-12-11 Thien-Thi Nguyen <ttn@gnu.org>
13019
13020 * play/zone.el (zone-programs): Add `zone-pgm-random-life'.
13021 (zone-fill-out-screen): New func.
13022 (zone-pgm-drip): Use `zone-fill-out-screen'.
13023 Also, no longer go to point-min on every cycle.
13024 (zone-pgm-paragraph-spaz): Allow spazzing for texinfo-mode.
13025 (zone-pgm-random-life-wait): New user var.
13026 (zone-pgm-random-life): New func.
13027
130282004-12-10 Thien-Thi Nguyen <ttn@gnu.org>
13029
13030 * files.el (auto-mode-alist): Map .com to DCL mode.
13031
130322004-12-09 Richard M. Stallman <rms@gnu.org>
13033
13034 * isearch.el (isearch-mode-map): Treat S-SPC like SPC.
13035
130362004-12-09 Nick Roberts <nickrob@snap.net.nz>
13037
13038 * xt-mouse.el (xterm-mouse-event): Correct cursor position in a
13039 buffer with a display margin.
13040
130412004-12-08 Jay Belanger <belanger@truman.edu>
13042
13043 * calc/calc-keypd.el (calc-keypad-mode): Unbind unused mouse events.
13044 (calc-keypad-left-click): Set buffer to calc-keymap-buffer.
13045
130462004-12-08 Richard M. Stallman <rms@gnu.org>
13047
13048 * faces.el: Delete code to set display table.
13049 (escape-glyph): Redefine to be less loud. (Copy minibuffer-prompt.)
13050
130512004-12-08 Jay Belanger <belanger@truman.edu>
13052
13053 * calc/calc.el: Add math-read-preprocess-string to autoloads.
13054
13055 * calc/calc-ext.el (math-read-replacement-list)
13056 (math-read-superscripts, math-read-preprocess-string): Move to
13057 calc-aent.el.
13058
13059 * calc/calc-aent.el (math-read-replacement-list)
13060 (math-read-superscripts, math-read-preprocess-string): Move from
13061 calc-ext.el.
13062
130632004-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
13064
13065 * isearch.el (isearch-quote-char): Fix up typo in last change.
13066
130672004-12-07 Luc Teirlinck <teirllm@auburn.edu>
13068
13069 * mouse.el (mouse-set-font): Handle the case where the command was
13070 not invoked using the mouse.
13071
13072 * edmacro.el: `edit-kbd-macro' is now bound to `C-x C-k e'.
13073 (edmacro-finish-edit): Further update for keyboard macros that are
13074 lambda forms.
13075 (edmacro-sanitize-for-string): Correctly remove Meta modifier.
13076
130772004-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
13078
13079 * font-lock.el (font-lock-unfontify-region): Save buffer state.
13080 (font-lock-default-unfontify-region): Don't save buffer state any more.
13081
130822004-12-07 Jay Belanger <belanger@truman.edu>
13083
13084 * calc/calc-help.el (calc-describe-key):
13085 Set calc-summary-indentation even when Calc Summary buffer exists.
13086
130872004-12-07 Glenn Morris <gmorris@ast.cam.ac.uk>
13088
13089 * calendar/holidays.el (holiday-easter-etc): Make arguments
13090 optional for backwards compatibility. Doc fix.
13091 Remove un-necessary local vars mandatory, output-list.
13092 (holiday-advent): Make arguments optional for backwards
13093 compatibility. Doc fix.
13094
130952004-12-06 Stefan Monnier <monnier@iro.umontreal.ca>
13096
13097 * paren.el (show-paren-function): Fix last change (2004-12-02).
13098
13099 * international/mule-util.el (char-displayable-p): Return nil for
13100 unibyte mode.
13101
13102 * subr.el (subregexp-context-p): New function.
13103
13104 * isearch.el (isearch-quote-char): Use it.
13105
13106 * emacs-lisp/regexp-opt.el (regexp-opt-depth): Use it.
13107 (regexp-opt-not-groupie*-re): Remove.
13108 (regexp-opt): Properly handle inputs with duplicate entries.
13109
131102004-12-06 Richard M. Stallman <rms@gnu.org>
13111
13112 * info-look.el (info-lookup-maybe-add-help cfengine-mode): Regexp typo.
13113
13114 * cus-edit.el (custom-file): Doc fix.
13115
13116 * textmodes/org.el: New file.
13117
131182004-12-06 Kenichi Handa <handa@m17n.org>
13119
13120 * ldefs-boot.el: Update international/mule-util.el section.
13121
131222004-12-05 Sam Steingold <sds@gnu.org>
13123
13124 * net/tramp.el (tramp-handle-file-accessible-directory-p):
13125 Fix `tramp-time-diff' comparison logic.
13126
131272004-12-05 Paul Pogonyshev <pogonyshev@gmx.net>
13128
13129 * progmodes/which-func.el (which-function):
13130 Use `run-hook-with-args-until-success' instead of a custom loop.
13131 Fixes bug with local hooks.
13132
131332004-12-05 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
13134
13135 * textmodes/bibtex.el (bibtex-font-lock-url-regexp):
13136 Use delete-dups when calculating the initial value.
13137 (bibtex-autokey-get-title): Use <=.
13138 (bibtex-goto-line): New function.
13139 (bibtex-reposition-window): Use line numbers instead of point
13140 positions. Use window-body-height.
13141 (bibtex-find-crossref): Use bibtex-reposition-window.
13142 (bibtex-find-entry): Use bibtex-reposition-window. Always return
13143 position of entry if key is found or nil if not found.
13144
131452004-12-05 Richard M. Stallman <rms@gnu.org>
13146
13147 * cus-edit.el (custom-file): Doc fix.
13148
13149 * progmodes/sh-script.el (sh-indent-for-then): Change default.
13150
131512004-12-03 Stefan Monnier <monnier@iro.umontreal.ca>
13152
13153 * simple.el (blink-matching-open):
13154 * textmodes/tex-mode.el (tex-validate-region):
13155 Obey syntax-table text properties.
13156
131572004-12-02 Per Abrahamsen <abraham@dina.kvl.dk>
13158
13159 * wid-edit.el (widget-specify-field): Add `real-field' property to
13160 boundary.
13161 (widget-field-at): Use it.
13162
131632004-12-02 Richard M. Stallman <rms@gnu.org>
13164
13165 * progmodes/cc-mode.el (awk-mode autoload):
13166 Supply t meaning interactive function.
13167
13168 * isearch.el (search-whitespace-regexp): Remove the group. Doc fix.
13169 (isearch-mode-map): No special definition for space.
13170 (isearch-whitespace-chars): Command deleted.
13171 (isearch-forward-regexp): Doc fix.
13172 (isearch-quote-char): When a space is not inside brackets,
13173 use `[ ]' instead of just space.
13174 (isearch-lazy-highlight-search): Bind search-spaces-regexp.
13175
13176 * imenu.el (imenu--generic-function): Delete code to exclude
13177 matches in comments.
13178
13179 * man.el (Man-reverse-face): Change default to `highlight'.
13180
13181 * replace.el (occur-1): Specify t for KEEP-PROPS to occur-engine.
13182 (occur-engine): Use `face' prop rather than `font-lock-face'
13183 when specifying use of `match-face'.
13184 (occur-accumulate-lines): Change arg from NO-PROPS to KEEP-PROPS.
13185
13186 * emacs-lisp/elint.el (elint-standard-variables): Update list.
13187
13188 * add-log.el (add-log-current-defun): Handle the case where point
13189 is in the header part of a DEFUN construct.
13190
131912004-12-02 Dave Love <fx@gnu.org>
13192
13193 * progmodes/python.el (python-font-lock-syntactic-keywords):
13194 Fix previous change.
13195
131962004-12-02 Richard G Bielawski <Richard.G.Bielawski@wellsfargo.com> (tiny change)
13197
13198 * paren.el (show-paren-function): Check for matching chars
13199 specified by text props.
13200
132012004-12-02 Jay Belanger <belanger@truman.edu>
13202
13203 * calc/calc.el (calc-read-key-sequence): Leave the old message visible
13204 when reading a new key sequence.
13205
132062004-12-02 Kim F. Storm <storm@cua.dk>
13207
13208 * faces.el (escape-glyph): Rename from glyph.
13209 (standard-display-table): Set it here. Add escape-glyph face to
13210 extra slot characters.
13211
13212 * disp-table.el: Undo 2004-12-01 change. Display table is now
13213 setup in faces.el.
13214
132152004-12-02 Mark A. Hershberger <mah@everybody.org>
13216
13217 * xml.el (xml-parse-dtd): Don't show validity messages when
13218 xml-validating-parser is nil.
13219 (xml-substitute-special): Fix validity error messages to
13220 actually show the unexpandable entity. Added validity error if &
13221 isn't followed by an entity.
13222 (xml-parse-tag): Concatenate any string following the a
13223 <![CDATA[]]> section to the parsed CDATA.
13224 (xml-parse-dtd): Skip parameter entity declarations and use of
13225 parameter entities.
13226
132272004-12-01 Luc Teirlinck <teirllm@auburn.edu>
13228
13229 * kmacro.el (kmacro-default-counter-format): New var.
13230 (kmacro-set-format): Use it. Delete `(printf format)' from prompt.
13231 (kmacro-display): Remove `nil' from `and' form. Delete call to
13232 `format' inside `message'.
13233 (kmacro-start-macro): Use `kmacro-default-counter-format'.
13234
132352004-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
13236
13237 * pcvs.el (cvs-header-msg): New function.
13238 (cvs-update-header): Use it. Change calling convention.
13239 Correctly handle the case of having simultaneous active processes.
13240 (cvs-sentinel): Don't call cvs-update-header any more.
13241 (cvs-mode-run): Update call and add cvs-update-header to postproc.
13242
132432004-12-01 Jay Belanger <belanger@truman.edu>
13244
13245 * calc/calc-ext.el (calc-inverse, calc-hyperbolic):
13246 Change message.
13247
132482004-12-01 Juri Linkov <juri@jurta.org>
13249
13250 * progmodes/prolog.el (prolog-mode-variables):
13251 Fix imenu-generic-expression.
13252
132532004-12-01 Daniel Pfeiffer <occitan@esperanto.org>
13254
13255 * faces.el (glyph): New face.
13256
13257 * disp-table.el: Add an autoloaded table, that doesn't require
13258 this library, with glyph face.
13259
13260 * textmodes/conf-mode.el (conf-ppd-mode-syntax-table): New var.
13261 (conf-ppd-mode): New conf-mode wrapper for printer descriptions.
13262 (conf-quote-normal): Allow normalizing only ' or ".
13263 (conf-mode): Regexp-quote constructed comment-start and don't
13264 match section {} where "name" contains braces.
13265
13266 * files.el (auto-mode-alist): Add conf-ppd-mode, inittab and acpid
13267 files.
13268
132692004-12-01 Kenichi Handa <handa@m17n.org>
13270
13271 * term/x-win.el (x-last-selected-text-cut-encoded): New variable.
13272 (x-select-text): Don't treat eight-bit-control/graphic chars
13273 specially. Store the encoded text in the X cut buffer.
13274 (x-cut-buffer-or-selection-value): Compare the X cut buffer text
13275 with x-last-selected-text-cut-encoded.
13276
132772004-11-30 Stefan Monnier <monnier@iro.umontreal.ca>
13278
13279 * man.el (Man-fontify-manpage): Improve handling of ANSI escapes.
13280
132812004-11-30 Markus Rost <rost@ias.edu>
13282
13283 * textmodes/tex-mode.el (tex-main-file): Add a compatibility with
13284 AUCTeX.
13285
132862004-11-30 Jay Belanger <belanger@truman.edu>
13287
13288 * calc/calc-arith.el (math-possible-signs): Made stronger checks
13289 on signs of intervals.
13290 (math-pow-of-zero): Strengthen checks for positive and negative
13291 exponents.
13292
13293 * calc/calc-aent.el, calc/calc-alg.el, calc/calc-arith.el
13294 * calc/calc-bin.el, calc/calc-comb.el, calc/calc-cplx.el
13295 * calc/calc-embed.el, calc/calc-fin.el, calc/calc-forms.el
13296 * calc/calc-frac.el, calc/calc-funcs.el, calc/calc-graph.el
13297 * calc/calc-help.el, calc/calc-incom.el, calc/calc-keypd.el
13298 * calc/calc-lang.el, calc/calc-map.el, calc/calc-math.el
13299 * calc/calc-misc.el, calc/calc-mode.el, calc/calc-mtx.el
13300 * calc/calc-poly.el, calc/calc-prog.el, calc/calc-rewr.el
13301 * calc/calc-rules.el, calc/calc-sel.el, calc/calc-stat.el
13302 * calc/calc-store.el, calc/calc-stuff.el, calc/calc-trail.el
13303 * calc/calc-undo.el, calc/calc-units.el, calc/calc-vec.el
13304 * calc/calc-yank.el, calc/calcalg2.el, calc/calcalg3.el
13305 * calc/calccomp.el, calc/calcsel2.el: Replace dummy autoloaded
13306 functions with provide statements.
13307
13308 * calc/calc-alg.el (math-defsimplify): Move from calc-ext.el.
13309
13310 * calc/calc-embed.el (calc-do-embedded-activate): Remove from
13311 autoloads.
13312
13313 * calc/calc-ext.el: Remove dummy autoloading functions from autoloads.
13314 (calc-load-everything, math-defsimplify): Replace dummy autoloading
13315 functions by require statements.
13316 (math-defsimplify): Move to calc-alg.el, add to autoloads.
13317
13318 * calc/calc-graph.el (calc-gnuplot-name, calc-gnuplot-plot-command)
13319 (calc-gnuplot-print): Give them values.
13320
13321 * calc/calc.el: Remove calc-Need-calc-aent and calc-Need-calc-misc from
13322 autoloads.
13323 Add calc-do-embedded-activate to autoloads.
13324 (calc-gnuplot-name, calc-gnuplot-plot-command)
13325 (calc-gnuplot-print-command): Move them to calc-graph.el.
13326
133272004-11-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
13328
13329 * term/mac-win.el (ccl-encode-mac-roman-font)
13330 (ccl-encode-mac-cyrillic-font)
13331 (ccl-encode-mac-centraleuropean-font, encoder-list)
13332 (fontset-add-mac-fonts, create-fontset-from-mac-roman-font):
13333 Support Cyrillic, CentralEuropean, and Dingbat font display
13334
133352004-11-30 Andre Spiegel <spiegel@gnu.org>
13336
13337 * vc-hooks.el (vc-recompute-state): Move here from vc.el.
13338
13339 * vc-cvs.el (vc-cvs-state): Handle the case where vc-state is
13340 still nil.
13341
133422004-11-29 Luc Teirlinck <teirllm@auburn.edu>
13343
13344 * emulation/tpu-edt.el (tpu-help-keypad-map, tpu-help-text)
13345 (tpu-word-separator-list, tpu-skip-chars): defconst->defvar.
13346
133472004-11-29 Jay Belanger <belanger@truman.edu>
13348
13349 * calc/calc-arith.el (math-pow-of-zero): Take into account different
13350 cases of the base and exponent.
13351
133522004-11-26 Teodor Zlatanov <tzz@lifelogs.com>
13353
13354 * simple.el (next-error-buffer-p): Allow for inclusive and
13355 exclusive tests for finding a buffer.
13356 (next-error-find-buffer): Pass the exclusive and inclusive tests
13357 to next-error-buffer-p.
13358
13359 * replace.el (occur-next-error): Switch to the Occur buffer when
13360 appropriate, use the exclusive filter to next-error-find-buffer to
13361 do it. Use the absolute value of the motion amount.
13362
133632004-11-29 Kenichi Handa <handa@m17n.org>
13364
13365 * startup.el (command-line): Decode all default-directory by
13366 locale-coding-system.
13367
133682004-11-29 Jay Belanger <belanger@truman.edu>
13369
13370 * calc/calc-aent.el: Remove unnecessary eval-when-compile.
13371 (calc-do-quick-calc, calc-do-calc-eval, calc-alg-entry)
13372 (math-read-expr-level, calc-check-user-syntax, math-read-factor):
13373 Replace calls to calc-extensions by appropriate require, replace
13374 calc-extensions-loaded by appropriate featurep.
13375
13376 * calc/calc-ext.el: Move require to end of file. Remove redundant
13377 loading of calc.el.
13378 (calc-extensions-loaded): Remove unnecessary variable.
13379 (calc-extensions): Remove unnecessary function.
13380 (calc-load-everything): Replace calc-need-macros by appropriate
13381 require.
13382
13383 * calc/calc-macs.el: Move provide to end of file.
13384 (calc-need-macros): Remove unnecessary function.
13385
13386 * calc/calc-misc.el (calc-do-handle-whys, calc-last-args-stub)
13387 (calc-missing-key, calc-shift-Y-prefix-help, math-concat)
13388 (math-trunc, math-floor, calcFunc-inv, math-mod, math-pow):
13389 Replace calc-extensions by appropriate require.
13390 (calc-power): Replace calc-extensions-loaded by appropriate featurep.
13391
13392 * calc/calc-prog.el (calc-user-define-formula, calc-do-defmath):
13393 Replace calc-need-macros by appropriate require.
13394
13395 * calc/calc.el: Move require to end of file.
13396 (calc-info-filename, calc-autoload-directory, calc-extensions-loaded):
13397 Remove unnecessary variable.
13398 (calc-do-dispatch, calc-mode, calc-check-defines, calc-create-buffer)
13399 (calc, calc-keypad, full-calc-keypad, calc-do, calc-normalize)
13400 (calc-binary-op, calc-unary-op, calcDigit-start, calcDigit-key)
13401 (math-normalize, math-add, math-mul, math-div, math-format-stack-value)
13402 (math-stack-value-offset, math-format-value, math-format-flat-expr)
13403 (math-format-number, math-format-bignum, math-read-number)
13404 (calc-grab-region, calc-grab-rectangle, calc-grab-sum-down)
13405 (calc-grab-sum-across, calc-embedded, defmath): Replace calc-extensions
13406 by appropriate require.
13407 (calc-check-defines): Replace calc-need-macros by appropriate require.
13408
134092004-11-29 Kim F. Storm <storm@cua.dk>
13410
13411 * macros.el (insert-kbd-macro): Handle kmacro functions.
13412
134132004-11-28 Juri Linkov <juri@jurta.org>
13414
13415 * compare-w.el (compare-windows-highlight): Attach each overlay
13416 to its window to properly highlight differences while comparing
13417 two windows of the same buffer. Fix arguments.
13418 (compare-windows-sync-default-function): Fix arguments of
13419 `compare-windows-highlight'.
13420
13421 * emacs-lisp/edebug.el (edebug-set-global-break-condition):
13422 Use `read-expression-history'. Set initial contents only if
13423 `edebug-global-break-condition' is non-nil. Set histpos to 1
13424 if initial contents is equal to the last history element.
13425 (edebug-set-conditional-breakpoint): Instead of temporarily
13426 prepending the current condition to the history, set initial
13427 contents to the current condition. Set histpos to 1 if initial
13428 contents is equal to the last history element.
13429
13430 * info.el (Info-search-whitespace-regexp): Remove shy group.
13431 (Info-search): Forward line if search is on the header line.
13432 Use search-whitespace-regexp in two other places.
13433
134342004-11-27 Luc Teirlinck <teirllm@auburn.edu>
13435
13436 * fringe.el (fringe-indicators): Add fake defvar to avoid compiler
13437 warning. Delay real definition, which uses
13438 `set-fringe-indicators-1' till after the definition of that function.
13439
134402004-11-28 Kim F. Storm <storm@cua.dk>
13441
13442 * fringe.el (fringe): New defgroup.
13443 (fringe-mode): Move to fringe group.
13444 (fringe-indicators): New defcustom.
13445 (set-fringe-indicators-1): New defun.
13446
13447 * menu-bar.el (menu-bar-options-save): Add fringe-indicators.
13448 (menu-bar-showhide-fringe-ind-menu): New keymap.
13449 (menu-bar-showhide-fringe-ind-empty)
13450 (menu-bar-showhide-fringe-ind-mixed)
13451 (menu-bar-showhide-fringe-ind-box)
13452 (menu-bar-showhide-fringe-ind-right)
13453 (menu-bar-showhide-fringe-ind-left)
13454 (menu-bar-showhide-fringe-ind-none): New defuns.
13455 (menu-bar-showhide-fringe-menu): Add "Indicators" sub-menu.
13456
134572004-11-27 Richard M. Stallman <rms@gnu.org>
13458
13459 * comint.el (comint-read-noecho): Add trivial compatibility definition.
13460
13461 * generic.el (define-generic-mode): Doc fix.
13462
13463 * menu-bar.el (menu-bar-options-save): For the options
13464 that are toggled with menu-bar-make-mm-toggle, don't check
13465 for customized-value prop.
13466
134672004-11-27 Eli Zaretskii <eliz@gnu.org>
13468
13469 * mail/supercite.el (sc-cite-region): Handle the case where
13470 sc-cite-frame-alist is a symbol.
13471 (sc-uncite-region): Handle the case where sc-uncite-frame-alist is
13472 a symbol.
13473 (sc-recite-region): Handle the case where sc-recite-frame-alist is
13474 a symbol.
13475
134762004-11-27 Arne J,Ax(Brgensen <arne@arnested.dk> (tiny change)
13477
13478 * wid-edit.el (widget-narrow-to-field): New function.
13479 (widget-complete): Use it.
13480
134812004-11-27 Jay Belanger <belanger@truman.edu>
13482
13483 * calc/calc-aent.el (calc-eval-error): Declare and initialize the
13484 variable.
13485 (calc-eval-error): Don't check if the variable calc-eval-error is
13486 bound.
13487 (calc-buffer, calc-digit-value, math-expr-data): Declare them.
13488 (math-alg-inequalities): Move declaration to earlier in the file.
13489
13490 * calc/calc-ext.el (calc-command-flags, calc-gnuplot-buffer)
13491 (calc-gnuplot-input, math-normalize-a, math-integral-cache):
13492 Declare them.
13493
13494 * calc/calc-lang.el (math-expr-data, math-expr-token)
13495 (math-exp-old-pos): Declare them.
13496
13497 * calc/calc-vec.el (math-exp-pos, math-exp-str, math-exp-old-pos)
13498 (math-exp-token, math-exp-keep-spaces, math-expr-data): Declare them.
13499
135002004-11-27 Kim F. Storm <storm@cua.dk>
13501
13502 * progmodes/flymake.el: Use (featurep 'xemacs).
13503 (flymake-makehash): Change to defsubst. Use fboundp.
13504 (flymake-time-to-float): Remove.
13505 (flymake-float-time): Merge code from flymake-time-to-float here.
13506 (flymake-replace-regexp-in-string): Change to defsubst.
13507 (flymake-split-string-remove-empty-edges):
13508 Rename to flymake-split-string.
13509 (flymake-split-string): Remove previous defalias.
13510 (flymake-get-temp-dir): Change to defsubst.
13511 (flymake-make-xemacs-menu, flymake-xemacs-window-edges):
13512 Define for xemacs only.
13513 (flymake-master-file-count-limit): Change into compiler defvar only.
13514 (flymake-find-possible-master-files): Let-bind it dynamically while
13515 sorting files using flymake-master-file-compare.
13516
135172004-11-26 Stefan Monnier <monnier@iro.umontreal.ca>
13518
13519 * font-lock.el (font-lock-compile-keywords): Don't complain if the end
13520 of defun-prompt-regexp matches inside a comment/string but the
13521 beginning is correctly outside everything.
13522
13523 * progmodes/tcl.el (tcl-omit-ws-regexp): Avoid the case where { or [
13524 appears within a string or a comment.
13525
13526 * emacs-lisp/cl-macs.el (cl-parse-loop-clause, labels): Use gensym
13527 rather than make-symbol for symbols which are used in
13528 a symbol-macrolet or equivalent.
13529
135302004-11-26 Jay Belanger <belanger@truman.edu>
13531
13532 * calc-misc.el (calc-last-why-command): Declare it.
13533
13534 * calc-vec.el (math-grade-vec): New variable.
13535 (calcFunc-grade, calcFunc-rgrade, math-grade-beforep):
13536 Replace variable grade-vec by declared variable.
13537 (math-rb-close): New variable.
13538 (math-read-brackets, math-read-vector): Replace variable close by
13539 declared variable.
13540
13541 * calc/calc-yank.el (calc-original-buffer, calc-return-buffer)
13542 (calc-one-window, calc-edit-handler, calc-restore-trail)
13543 (calc-allow-ret): Declare them.
13544
13545 * calc/calc-stuff.el (calc-flush-caches): Remove unnecessary variables.
13546 (math-lud-cache, math-log2-cache, math-radix-digits-cache)
13547 (math-radix-float-cache-tag, math-random-cache)
13548 (math-max-digits-cache, math-integral-cache, math-units-table)
13549 (math-format-date-cache, math-holidays-cache-tag): Declare them.
13550 (math-moc-func): New variable.
13551 (math-map-over-constants, math-map-over-constants-rec):
13552 Replace variable func by declared variable.
13553
13554 * calc/calc-store.el (calc-given-value, calc-store-opers):
13555 Declare them.
13556 (calc-var-name-map): Move declaration to earlier in the file.
13557 (calc-pv-pos): New variable.
13558 (calc-permanent-variable, calc-insert-permanent-variable):
13559 Replace variable pos by declared variable.
13560
13561 * calc/calc-mtx.el (calc-det-lu): New variable.
13562 (math-det-raw, math-det-step): Replace variable lu by declared
13563 variable.
13564
13565 * calc/calc-map.el (math-ms-temp, math-ms-args): New variables.
13566 (math-multi-subst, math-multi-subst-rec): Replace variables temp
13567 and arg by declared variables.
13568 (calcFunc-reducer): Fix incorrect variable.
13569 (math-inner-mul-func, math-inner-add-func): New variables.
13570 (calcFunc-inner, math-inner-mats): Replace variables mul-func
13571 and add-func by declared variables.
13572
13573 * calc/calc-incom.el (calc-prev-char, calc-prev-prev-char)
13574 (calc-digit-value): Declare them.
13575
13576 * calc/calc-help.el (Info-history): Declare it.
13577 (calc-describe-key): Make calc-summary-indentation a local variable.
13578 (calc-help-long-names): Move declaration to earlier in file.
13579
13580 * calc/calc-embed.el (calc-original-buffer): Declare it.
13581 (calc-embed-outer-top, calc-embed-outer-bot, calc-embed-top)
13582 (calc-embed-bot): New variables.
13583 (calc-do-embedded, calc-embedded-mark-formula)
13584 (calc-embedded-find-bounds, calc-embedded-duplicate)
13585 (calc-embedded-new-formula, calc-embedded-make-info):
13586 Replace vars outer-top, outer-bot, bot and top by declared variables.
13587 (calc-embed-prev-modes): New variable.
13588 (calc-embedded-set-modes, calc-embedded-update): Replace variable
13589 prev-modes with declared variable.
13590 (calc-embed-vars-used): New variable.
13591 (calc-embedded-make-info, calc-embedded-evaluate-expr)
13592 (calc-embedded-update, calc-embedded-find-vars): Replace variable
13593 vars-used by declared variable.
13594
13595 * calc/calc-bin.el (math-format-radix-float): Make pos a local
13596 variable.
13597 (math-format-radix-float): Remove unnecessary setq.
13598 (math-radix-float-cache): Declare it.
13599
13600 * calc/calcsel2.el (calc-keep-selection): Declare it.
13601
13602 * calc/calc-maint.el: Remove file.
13603
136042004-11-26 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
13605
13606 * textmodes/bibtex.el (bibtex-sort-entry-class)
13607 (bibtex-comment-start): Use defcustom.
13608 (bibtex-entry-field-alist): Use nil if initial content of the
13609 field is undefined. Fix docstring.
13610 (bibtex-parse-keys-timeout, bibtex-autokey-additional-names)
13611 (bibtex-generate-autokey, bibtex-parse-buffers-stealthily)
13612 (bibtex-mode, bibtex-field-list, bibtex-entry-updat)
13613 (bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field):
13614 Fix docstring.
13615 (bibtex-autokey-title-terminators): Use only one regexp.
13616 (bibtex-string-maybe-empty-head): New variable.
13617 (bibtex-remove-delimiters-string): New function.
13618 (bibtex-text-in-field-bounds, bibtex-text-in-string):
13619 Use bibtex-remove-delimiters-string.
13620 (bibtex-progress-message, bibtex-field-left-delimiter)
13621 (bibtex-field-right-delimiter, bibtex-entry-left-delimiter)
13622 (bibtex-entry-right-delimiter, bibtex-search-entry): Use eq.
13623 (bibtex-insert-kill): Rename from `bibtex-insert-current-kill'.
13624 Simplify.
13625 (bibtex-format-entry): Use save-excursion for inherited booktitle.
13626 Use eq and bibtex-remove-delimiters-string. For end markers use
13627 insertion type so that marker stays after inserted text.
13628 (bibtex-autokey-get-names): Return empty string if name is missing.
13629 (bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before
13630 calling bibtex-autokey-name-case-convert.
13631 (bibtex-autokey-demangle-title):
13632 Call bibtex-autokey-titleword-case-convert. Remove call to
13633 bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title.
13634 (bibtex-global-key-alist, bibtex-read-string-key): New functions.
13635 (bibtex-read-key): New optional arg global.
13636 (bibtex-files-expand): New optional arg force.
13637 (bibtex-complete-string-cleanup): Expansion of abbrev can be absent.
13638 (bibtex-complete-crossref-cleanup): Rename from
13639 bibtex-complete-key-cleanup. Simplify code.
13640 (bibtex-copy-summary-as-kill): Remove arg key. Use looking-at.
13641 Operate on current entry.
13642 (bibtex-button): Add docstring.
13643 (bibtex-entry): Simplify.
13644 (bibtex-make-field): Replace optional arg called-by-yank with more
13645 specific args move and interactive.
13646 (bibtex-end-of-entry): Use forward-sexp.
13647 (bibtex-find-entry-globally): Remove.
13648 (bibtex-find-crossref): Allow for crossref key located in other buffer.
13649 Bound to C-c C-x.
13650 (bibtex-find-entry): New optional args global and display.
13651 (bibtex-find-text): Fix docstring. Remove arg as-if-interactive.
13652 (bibtex-validate): Use arg force of bibtex-files-expand.
13653 (bibtex-clean-entry): Bugfix, clean string entries properly.
13654 Always keep point at beginning of entry.
13655 (bibtex-complete): Bugfix. Handle string entries properly.
13656 Call cleanup functions only if needed.
13657 (bibtex-String): Use bibtex-read-string-key.
13658 (bibtex-url): Use bibtex-remove-delimiters-string. Do not alter
13659 case of replacement text.
13660
136612004-11-26 Lars Hansen <larsh@math.ku.dk>
13662
13663 * tramp.el (tramp-handle-directory-files-and-attributes): New function.
13664 (tramp-perl-directory-files-and-attributes): New constant.
13665 (tramp-file-name-handler-alist): Delete file-directory-files, add
13666 directory-files-and-attributes.
13667 (tramp-perl-file-attributes): Surround uid and gid by double
13668 quotes. Change parameter id-format from nonnumeric.
13669 (tramp-convert-file-attributes): New function.
13670 (tramp-handle-file-attributes): Use it.
13671 (tramp-maybe-send-perl-script): New function.
13672 (tramp-handle-file-attributes-with-perl): Use it. Don't convert
13673 file mode. Change parameter id-format from nonnumeric.
13674 (tramp-handle-file-attributes-with-ls): Change parameter id-format
13675 from nonnumeric.
13676 (tramp-post-connection): Don't send tramp-perl-file-attributes
13677 script. Reset connection property "perl-scripts".
13678 (tramp-handle-insert-directory): Run real handler when ls-lisp is
13679 in use.
13680
136812004-11-26 Lars Hansen <larsh@math.ku.dk>
13682
13683 * desktop.el (desktop-read): Replace mapcar with mapc.
13684 (desktop-create-buffer): Replace mapcar with mapc.
13685 Remove redundant piece of code.
13686
136872004-11-27 Nick Roberts <nickrob@snap.net.nz>
13688
13689 * progmodes/gud.el (gud-display-line): Use display-buffer
13690 for GDB-UI as for GUD.
13691
13692 * progmodes/gdb-ui.el (gdb-view-source, gdb-selected-view):
13693 Delete variables.
13694 (gdb-ann3): Don't make GUD buffer dedicated.
13695 (gdb-goto-breakpoint, gdb-display-buffer): Don't always dedicate.
13696 (gdb-display-source-buffer): Delete function.
13697 (gdb-view-source-function, gdb-view-assembler): Delete functions.
13698 (menu): Delete menu bindings for viewing source/assembler.
13699 (gdb-setup-windows, gdb-restore-windows):
13700 Don't dedicate GUD. No assembler now.
13701 (gdb-reset): No need to undedicate source buffers now.
13702 (gdb-source-info): No assembler now.
13703
137042004-11-26 Nick Roberts <nickrob@snap.net.nz>
13705
13706 * progmodes/gdb-ui.el (gdb-frame-parameters): Match height and
13707 width to those for special frames.
13708 (gdb-frame-breakpoints-buffer): Use gdb-frame-parameters.
13709 Use display-buffer.
13710 (gdb-frame-stack-buffer, gdb-frame-threads-buffer)
13711 (gdb-frame-registers-buffer, gdb-frame-locals-buffer)
13712 (gdb-frame-assembler-buffer): Rework like
13713 gdb-frame-breakpoints-buffer.
13714
137152004-11-25 Richard M. Stallman <rms@gnu.org>
13716
13717 * progmodes/flymake.el: Reindent.
13718 (flymake-split-string): Turn into defalias.
13719 (flymake-fix-file-name): Rename from flymake-fix-path-name.
13720 (flymake-ensure-ends-with-slash): Rename arg to FILENAME.
13721 (flymake-get-common-file-prefix): Rename from ...path... Doc fix.
13722 (flymake-build-relative-filename): Rename from ...path.
13723 Fix error message.
13724
137252004-11-25 Cheng Gao <chenggao@gmail.com>
13726
13727 * progmodes/flymake.el: Much whitespace and capitalization change.
13728 Move `provide' to end. Require `compile' only when compiling.
13729
137302004-11-24 Jay Belanger <belanger@truman.edu>
13731
13732 * calc/calc-alg.el: Added comment.
13733 (math-polynomial-base): Replace variable mpb-top-expr by
13734 math-poly-base-top-expr.
13735
13736 * calc/calc-poly.el (math-poly-base-top-expr): New variable.
13737 (math-polynomial-p1): Replace variable mpb-top-expr by declared
13738 variable.
13739 (math-poly-base-total-base): New variable.
13740 (math-total-polynomial-base, math-polynomial-p1): Replace variable
13741 mpb-total-base by declared variable.
13742 (math-factored-vars, math-to-list): Declare it.
13743 (math-fact-expr): New variable.
13744 (calcFunc-factors, calcFunc-factor, math-factor-expr)
13745 (math-factor-expr-try, math-factor-expr-part): Replace variable
13746 expr by declared variable.
13747 (math-fet-x): New variable.
13748 (math-factor-expr-try, math-factor-poly-coefs): Replace variable x
13749 by declared variable.
13750 (math-factor-poly-coefs): Make temp a local variable.
13751
13752 * calc/calc-units.el (calc-convert-units): Make units a local
13753 variable.
13754 (calc-num-units, calc-den-units): New variables.
13755 (calc-explain-units, calc-explain-units-rec): Replace variables
13756 num-units and den-units by declared variables.
13757 (math-cu-unit-list): New variable.
13758 (math-build-units-table, math-compare-unit-names)
13759 (math-convert-units, math-convert-units-rec): Replace variable
13760 unit-list by declared variable.
13761 (math-fbu-base, math-fbu-entry): New variables.
13762 (math-find-base-units, math-find-base-units-rec): Replace variables
13763 base and entry by declared variables.
13764 (math-which-standard): New variable.
13765 (math-to-standard-units, math-to-standard-rec): Replace variable
13766 which-standard by declared variable.
13767 (math-fcu-u): New variable.
13768 (math-find-compatible-unit, math-find-compatible-unit-rec):
13769 Replace variable u by declared variable.
13770 (math-cu-new-units, math-cu-pure): New variables.
13771 (math-convert-units, math-convert-units-rec): Replace variables
13772 new-units and pure by declared variables.
13773 (math-try-cancel-units): New variable.
13774 (math-simplify-units-quotient): Replace variable try-cancel-units by
13775 declared variable.
13776
137772004-11-24 Richard M. Stallman <rms@gnu.org>
13778
13779 * textmodes/ispell.el (ispell-check-version):
13780 If default-directory is nonexistent, use home dir.
13781
13782 * progmodes/grep.el (grep-regexp-alist):
13783 Don't match parens around line numbers.
13784
13785 * progmodes/cperl-mode.el (cperl-indent-region)
13786 (cperl-imenu--create-perl-index, cperl-xsub-scan):
13787 Don't print progress messages.
13788
13789 * progmodes/compile.el (compilation-mode-map):
13790 Don't inherit from compilation-minor-mode-map;
13791 copy its bindings instead. But the menu bar Compile
13792 entry now does inherit from compilation-menu-map.
13793
13794 * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
13795 Use with-no-warnings around compiler-macroexpand.
13796
13797 * imenu.el: Don't always require newcomment.
13798 (imenu--generic-function): Call comment-normalize-vars
13799 if we have a comment syntax.
13800 Exit the loop if REGEXP matches the null string.
13801 Test comment-start as well as comment-start-skip
13802 when deciding whether to check for comments.
13803
13804 * tooltip.el (tooltip-mode): Doc fix.
13805
13806 * term.el (term-escape-char, term-mode): Doc fixes.
13807
138082004-11-24 Dave Love <fx@gnu.org>
13809
13810 * progmodes/python.el (python-font-lock-syntactic-keywords):
13811 Check for escapes in the regexp.
13812 (python-quote-syntax): Don't do it here.
13813
138142004-11-24 Nick Roberts <nickrob@snap.net.nz>
13815
13816 * progmodes/gdb-ui.el (gdb-breakpoints-mode-map)
13817 (gdb-frames-mode-map, gdb-threads-mode-map)
13818 (gdb-registers-mode-map, gdb-locals-mode-map)
13819 (gdb-assembler-mode-map): Bind "q" to kill-this-buffer.
13820 (gdb-set-window-buffer): Rename from dedicated-switch-to-buffer.
13821
13822 Suggested by Stefan Monnier <monnier@iro.umontreal.ca>:
13823 (dedicated-switch-to-buffer): Rework.
13824 (gdb-var-evaluate-expression-handler, gdb-put-string):
13825 Remove unused variable bindings.
13826 (gdb-setup-windows, gdb-display-buffer):
13827 Simplify. Use pop-to-buffer.
13828 (gdb-view-source-function): Simplify.
13829 (gdb-frame-breakpoints-buffer):
13830 Use pop-to-buffer, special-display-regexps.
13831
138322004-11-24 Glenn Morris <gmorris@ast.cam.ac.uk>
13833
13834 * progmodes/f90.el (f90-smart-end)
13835 (f90-previous-statement, f90-beginning-of-block): Doc fix.
13836 (f90-calculate-indent): Handle un-named PROGRAM blocks.
13837 (f90-end-of-block): Doc fix. Make check of outermost block
13838 conditional on value of `f90-smart-end'.
13839 (f90-block-match): Hack to deal with un-named PROGRAM blocks.
13840 Handle case where END-BLOCK is nil.
13841 (f90-match-end): Handle un-named PROGRAM blocks.
13842 (f90-backslash-not-special): New function.
13843
138442004-11-24 Jay Belanger <belanger@truman.edu>
13845
13846 * calc/calc.el (calc-embedded-active): Removed unnecessary
13847 declaration.
13848 (calc-show-banner): Removed redundant declaration.
13849
13850 * calc/calc-graph.el (calc-gnuplot-default-device)
13851 (calc-gnuplot-default-output, calc-gnuplot-print-device)
13852 (calc-gnuplot-print-output, calc-gnuplot-geometry)
13853 (calc-graph-default-resolution, calc-graph-default-resolution-3d):
13854 Remove redundant initial values.
13855
13856 * calc/calc-arith.el (math-scalar-functions)
13857 (math-nonscalar-functions, math-scalar-if-args-functions)
13858 (math-real-functions, math-positive-functions)
13859 (math-nonnegative-functions, math-real-scalar-functions)
13860 (math-real-if-arg-functions, math-integer-functions)
13861 (math-num-integer-functions, math-rounding-functions)
13862 (math-float-rounding-functions, math-integer-if-args-functions)
13863 (math-super-types): Move declarations to earlier in file.
13864 (math-unit-prefixes): Declared it.
13865 (math-floor-prec, math-trunc-prec): New variables.
13866 (math-trunc-fancy): Replace variable prec by declared variable.
13867 (math-floor-fancy): Replace variable prec by declared variable.
13868 (math-com-bterms): New variable.
13869 (math-commutative-equal, math-commutative-collect):
13870 Replace variable bterms by declared variable.
13871
13872 * calc/calc-misc.el (math-trunc): Replace variable prec by
13873 math-trunc-prec.
13874 (math-floor): Replace variable prec by math-floor-prec.
13875
13876 * calc/calc-forms.el (math-fd-date, math-fd-dt, math-fd-year)
13877 (math-fd-month, math-fd-day, math-fd-weekday, math-fd-hour)
13878 (math-fd-minute, math-fd-second, math-fd-bc-flag): New variables.
13879 (math-format-date, math-format-date-part): Replace variables
13880 date, dt, year, month, day, weekday, hour, minute, second and
13881 bc-flag by declared variables.
13882 (math-pd-str): New variable.
13883 (math-parse-date, math-parse-date-word, math-parse-standard-date):
13884 Replace variable str by declared variable.
13885 (math-daylight-savings-hook, math-tzone-names): Move definitions
13886 to earlier in the file.
13887 (var-TimeZone, math-exp-str, math-exp-pos): Declare them.
13888 (math-sh-year): New variable.
13889 (math-setup-add-holidays, math-setup-holidays)
13890 (math-setup-year-holidays): Replace variable `year' by declared
13891 variable.
13892
13893 * calc/calc-math.el (math-nrf-n, math-nrf-nf, math-nrf-nfm1):
13894 New variables.
13895 (math-nth-root-float, math-nth-root-float-iter): Replace variables
13896 n, nf and nfm1 by declared variables.
13897 (math-nri-n): New variable.
13898 (math-nth-root-integer, math-nth-root-int-iter): Replace variable
13899 n by declared variable.
13900 (calcFunc-log): Removed misplaced condition.
13901
139022004-11-24 Stefan Monnier <monnier@iro.umontreal.ca>
13903
13904 * generic.el (generic-mode-set-comments): Accept an empty comment-end.
13905
139062004-11-24 Nick Roberts <nickrob@snap.net.nz>
13907
13908 * progmodes/gdb-ui.el (dedicated-switch-to-buffer): New function.
13909 (gdb-ann3, gdb-setup-windows, gdb-restore-windows):
13910 Dedicate gdb-related windows.
13911 (gdb-display-buffer): Dedicate gdb-related windows.
13912 Don't grab other frames.
13913 (gdb-reset): Remove dedicated property after debugging.
13914
139152004-11-24 Jay Belanger <belanger@truman.edu>
13916
13917 * calc/calc-sel.el: Add comment.
13918
13919 * calc/calc.el (math-stack-value-offset): Replace variables c,
13920 wid and off with math-svo-c, math-svo-wid and math-svo-off.
13921
13922 * calc/calccomp.el (math-comp-sel-tag): Declare it.
13923 (math-svo-c, math-svo-wid, math-svo-off): New variables.
13924 (math-stack-value-offset-fancy): Replace variables c, wid and off
13925 by declared variables.
13926 (math-comp-just, math-comp-comma-spc): New variables.
13927 (math-compose-expr, math-compose-matrix): Replace variables `just'
13928 and comma-spc by declared variable.
13929 (math-comp-vector-prec): New variable.
13930 (math-compose-expr, math-compose-matrix, math-compose-rows):
13931 Replace variable vector-prec by declared variable.
13932 (math-comp-left-bracket, math-comp-right-bracket)
13933 (math-comp-comma): New variables.
13934 (math-compose-expr, math-compose-rows): Replace variables
13935 left-bracket, right-bracket and comma by declared variables.
13936 (math-comp-full-width): New variable.
13937 (math-comp-to-string-flat, math-comp-to-string-flat-term):
13938 Replace variable full-width by declared variable.
13939 (math-comp-highlight, math-comp-word, math-comp-level)
13940 (math-comp-margin, math-comp-pos, math-comp-buf, math-comp-base)
13941 (math-comp-hgt, math-comp-tag, math-comp-hpos, math-comp-vpos):
13942 New variables.
13943 (math-comp-to-string-flat, math-comp-to-string-flat-term)
13944 (math-comp-sel-flat-term): Replace variables comp-highlight,
13945 comp-word, comp-level, comp-margin, comp-pos and comp-buf by
13946 declared variables.
13947 (math-comp-simplify, math-comp-simplify-term)
13948 (math-comp-add-string, math-comp-add-string-sel):
13949 Replace variables comp-highlight, comp-buf, comp-base,
13950 comp-height, comp-tag, comp-hpos and comp-vpos by declared variables.
13951
139522004-11-23 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
13953
13954 * cus-start.el (all): Add x-use-old-gtk-file-dialog.
13955
13956 * mail/emacsbug.el (report-emacs-bug): Catch error that x-server-vendor
13957 and x-server-version may throw.
13958
139592004-11-23 Kim F. Storm <storm@cua.dk>
13960
13961 * subr.el (substitute-key-definition-key): Optimize.
13962 Don't call indirect-function for nil defn (always signals error).
13963
13964 * ido.el (ido-read-internal): Fix require-match check when
13965 ido-directory-too-big is set.
13966
139672004-11-23 Jay Belanger <belanger@truman.edu>
13968
13969 * calc/calc-ext.el (math-read-replacement-list)
13970 (math-read-superscripts): New variables.
13971 (math-read-preprocess-string): New function.
13972 (math-read-expr): Filter input through math-read-preprocess-string.
13973
13974 * calc/calc-aent.el (math-read-exprs): Filter input through
13975 math-read-preprocess-string.
13976
139772004-11-23 Daniel Pfeiffer <occitan@esperanto.org>
13978
13979 * progmodes/compile.el (compilation-start): In cd command use
13980 substitute-env-vars -- not quite shell compatible but better than
13981 nothing.
13982 (compilation-error-regexp-alist-alist): Simplify ftnchek to only
13983 handle the newer versions messages, which are more parseable.
13984
139852004-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
13986
13987 * reveal.el (reveal-mode-map): New var.
13988 (reveal-mode): Use it.
13989
139902004-11-23 Nick Roberts <nickrob@snap.net.nz>
13991
13992 * progmodes/gdb-ui.el (gdb-flush-pending-output): New variable.
13993 (gdb-send-item, gdb-resync, gud-gdba-marker-filter): Use it.
13994
139952004-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
13996
13997 * buff-menu.el (list-buffers-noselect): Re-add the leading space in the
13998 header-line when needed.
13999 Use fixed-pitch only in the header-line.
14000 Build the underline automatically. Use emdash if available.
14001
140022004-11-22 Richard M. Stallman <rms@gnu.org>
14003
14004 * dired.el (dired-recursive-copies): Move from dired-aux.el.
14005 * dired-aux.el (dired-recursive-copies): Move to dired.el.
14006
140072004-11-22 Nick Roberts <nickrob@snap.net.nz>
14008
14009 * progmodes/gdb-ui.el (gdb-resync): New function.
14010 (gdb-pre-prompt, gdb-prompt, gdb-starting, gdb-stopping)
14011 (gdb-frame-begin, gdb-stopped, gdb-post-prompt):
14012 Use it to fail more gracefully.
14013 (gdb-variables): Delete variable.
14014 Re-order variables to reduce byte-compiler warnings.
14015
140162004-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
14017
14018 * descr-text.el (describe-char):
14019 * paren.el (show-paren-function):
14020 * subr.el (syntax-after): Undo last change.
14021
14022 * progmodes/python.el (run-python): Don't hard code *Python*.
14023 Don't modify global process-environment.
14024 (python-send-region, python-load-file): Don't assume that
14025 python-buffer == (process-buffer (python-proc)).
14026 (python-switch-to-python): Simplify.
14027
14028 * dired.el (dired-align-file): Don't assume line starts with spaces.
14029
140302004-11-21 Jay Belanger <belanger@truman.edu>
14031
14032 * calc/calc-ext.el (math-read-big-expr, math-read-big-bigp):
14033 Replace variable `lines' by math-read-big-lines.
14034 (math-read-big-expr): Replace variables the-baseline, the-h2
14035 and err-msg by math-read-big-baseline, math-read-big-h2 and
14036 math-read-err-msg.
14037 (math-read-big-bigp): Replace variable h2 with math-rb-h2.
14038
14039 * calc/calc-lang.el (math-read-big-rec): Fix typo.
14040 (math-read-big-balance): Replace unbound variable by value.
14041 (math-read-big-lines): New variable.
14042 (math-read-big-rec, math-read-big-char, math-read-big-emptyp)
14043 (math-read-big-error, math-read-big-balance): Replace variable
14044 `lines' by declared variable.
14045 (math-read-big-baseline, math-read-big-h2): New variables.
14046 (math-read-big-rec): Replace variables the-baseline and the-h2
14047 by declared variables.
14048 (math-rb-h1, math-rb-h2, math-rb-v1, math-rb-v2): New variables.
14049 (math-read-big-rec, math-read-big-char, math-read-big-emptyp)
14050 (math-read-big-balance): Replace variables h1, h2, v1 and v2 by
14051 declared variables.
14052 (math-read-big-err-msg): New variable.
14053 (math-read-big-error): Replace variable err-msg by declared variable.
14054
140552004-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
14056
14057 * ses.el: Add coding cookie.
14058 Fix up docstrings, follow new commenting conventions.
14059 (ses-header-line-menu): Fix missing variable rename for header-row.
14060 (ses-cell-size): Remove.
14061 (ses-make-cell): New function.
14062 (ses-cell, ses-insert-row, ses-insert-column): Use it.
14063 (ses-calculate-cell): Remove unused var `symbol'.
14064 (ses-narrowed-p): New function.
14065 (ses-goto-data, undo-more, ses-reconstruct-all): Use it.
14066 (ses-initial-file-trailer): Change ;;; to ;; for local vars.
14067 (ses-load, ses-reconstruct-all): Adjust string search accordingly.
14068 (ses-setup): Use restore-buffer-modified-p.
14069 (ses-cleanup): Remove unused var `end'.
14070 (ses-header-string-left-offset): Remove.
14071 (ses-create-header-string): Adjust to new behavior of `align-to'.
14072 Truncate excessively large fields to preserve alignment.
14073 (ses-reconstruct-all): Remove unused var `refs'.
14074 (ses-read-cell-printer): Remove unused var `prompt'.
14075 (ses-delete-row): Remove unused var `pos'.
14076 (ses-delete-column): Remove unused var `new'.
14077
140782004-11-21 Vinicius Jose Latorre <viniciusjl@ig.com.br>
14079
14080 * ps-print.el: Insert :version tag into all defgroup and defcustom.
14081 Use (featurep 'xemacs) instead of (eq ps-print-emacs-type 'xemacs).
14082 Eliminate eval-and-compile usage.
14083 (ps-insert-file): Use insert-file-contents instead of insert-file.
14084 (ps-setup): Code fix.
14085
14086 * printing.el (pr-setup, lpr-setup): Code fix.
14087
140882004-11-21 Jay Belanger <belanger@truman.edu>
14089
14090 * calc/calc-prog.el (math-integral-cache-state, calc-lang)
14091 (calc-original-buffer): Declare them.
14092 (calc-user-formula-alist): New variable.
14093 (calc-user-define-formula, calc-fix-user-formula)
14094 (calc-user-define-composition, calc-finish-formula-edit):
14095 Replace variable `alist' by declared variable.
14096 (var-q0, var-q1, var-q2, var-q3, var-q4, var-q5, var-q6)
14097 (var-q7, var-q7, var-q8, var-q9): Declare them.
14098 (calc-kbd-push): Don't check to see if var-q0 through var-q9
14099 are bound.
14100 (calcFunc-typeof): Replace undeclared variable by expression.
14101 (math-exp-env): New variable.
14102 (math-define-body, math-define-exp): Replace exp-env by declared var.
14103 (math-define-exp): Replace misplaced variable by expression.
14104
14105 * calc/calcalg3.el (calc-curve-nvars, calc-curve-varnames)
14106 (calc-curve-model, calc-curve-coefnames): New variables.
14107 (calc-curve-fit, calc-get-fit-variables): Replace variables nvars,
14108 varnames, model and coefnames by declared variables.
14109 (math-root-widen): New variable.
14110 (math-search-root, math-find-root): Replace variable root-widen by
14111 declared variable.
14112 (var-DUMMY): Declare it.
14113 (math-root-vars, math-min-vars): Move the declarations to earlier in
14114 the file.
14115 (math-brent-min): Make d a local variable.
14116 (math-find-minimum): Replace non-existent variable.
14117 (math-ninteg-romberg): Remove unnecessary variable.
14118 (math-ninteg-temp): New variable.
14119 (math-ninteg-romberg, math-ninteg-midpoint): Replace variable
14120 integ-temp by declared variable.
14121 (math-fit-first-var, math-fit-first-coef, math-fit-new-coefs):
14122 New variables.
14123 (math-general-fit): Replace variables first-var, first-coef and
14124 new-coefs by declared variables.
14125 (calcFunc-fitvar): Replace variable first-var by declared variable.
14126 (calcFunc-fitparam): Replace variable first-coef by declared variable.
14127 (calcFunc-fitdummy): Replace variable new-coefs by declared variable.
14128 (math-all-vars-vars, math-all-vars-found): New variables.
14129 (math-all-vars-in, math-all-vars-rec): Replace variables vars and
14130 found by declared variable math-all-vars-vars.
14131
141322004-11-20 Luc Teirlinck <teirllm@auburn.edu>
14133
14134 * emacs-lisp/cust-print.el (custom-printers): Use `defvar' instead
14135 of `defconst'.
14136
141372004-11-20 Richard M. Stallman <rms@gnu.org>
14138
14139 * isearch.el (isearch-mode-map): Don't bind SPC.
14140 (isearch-whitespace-chars): Function deleted.
14141 (isearch-search): Bind search-spaces-regexp.
14142 (isearch-lazy-highlight-search): Likewise.
14143 (search-whitespace-regexp): Doc fix.
14144 (isearch-forward-regexp): Doc fix.
14145
14146 * emacs-lisp/bytecomp.el (byte-compile-form):
14147 Move the calls to byte-compile-set-symbol-position,
14148 to avoid having two for the same symbol occurrence.
14149
14150 * comint.el (comint-input-ring-size): Increase to 150.
14151
14152 * hexl.el (hexl-mode-old-hl-line-mode, hexl-mode-old-ruler-mode):
14153 New variables.
14154 (hexl-mode): Set those variables, record ruler-mode and hl-line-mode.
14155 (hexl-mode-exit): Restore status of ruler-mode and hl-line-mode.
14156
14157 * imenu.el (imenu--generic-function):
14158 Ensure we keep moving backward even if BEG isn't further back.
14159
14160 * replace.el (query-replace-read-to, query-replace-read-from):
14161 Specify t for KEEP-ALL in read-from-minibuffer.
14162
14163 * progmodes/python.el (python-switch-to-python):
14164 If Python isn't running, start it.
14165 Don't alter debug-ignored-errors.
14166
14167 * progmodes/cperl-mode.el (cperl-indent-region):
14168 Don't mind imenu-scanning-message.
14169
14170 * bindings.el (global-map): Bind C-e to move-end-of-line.
14171
14172 * simple.el (line-move-finish): New arg FORWARD.
14173 Ignore invisible newlines, not intangible ones.
14174 Conditions for acceptable stopping positions depend on FORWARD.
14175 (line-move): Pass FORWARD arg to line-move-finish.
14176
14177 * buff-menu.el (list-buffers-noselect): Eliminate space at the start
14178 of HEADER. Compensate for this change in the code to add display
14179 properties. Don't make the first line intangible.
14180
14181 * info.el (Info-search): Fix previous change.
14182
141832004-11-20 Thien-Thi Nguyen <ttn@gnu.org>
14184
14185 * Makefile.in (recompile): Revert 2004-11-19 change.
14186 (compile): Likewise.
14187
141882004-11-19 Luc Teirlinck <teirllm@auburn.edu>
14189
14190 * Makefile.in (compile): Set `max-specpdl-size' before compiling.
14191
141922004-11-19 Vinicius Jose Latorre <viniciusjl@ig.com.br>
14193
14194 * progmodes/ebnf2ps.el: Fix typos. Insert :version tag into all
14195 defgroup and defcustom. Eliminate eval-and-compile usage.
14196
14197 * progmodes/ebnf-otz.el: Fix typos.
14198
141992004-11-19 Jay Belanger <belanger@truman.edu>
14200
14201 * calc/calc-yank.el (calc-edit-disp-trail): New variable.
14202 (calc-edit-finish, calc-finish-stack-edit): Replace variable
14203 disp-trail by declared variable.
14204
14205 * calc/calc-sel.el (calc-edit-disp-trail): Declare it.
14206 (calc-finish-selection-edit): Replace variable disp-trail by
14207 declared variable.
14208 (calc-selection-cache-entry): Move declaration to earlier in the file.
14209 (calc-selection-cache-num, calc-selection-cache-comp)
14210 (calc-selection-cache-offset, calc-selection-true-num)
14211 (calc-final-point-line, calc-final-point-column)
14212 (calc-original-buffer): Declare them.
14213 (calc-fnp-op, calc-fnp-num): New variables.
14214 (calc-find-nth-part, calc-find-nth-part-rec)
14215 (calc-select-previous): Replace op and num by declared variables.
14216 (calc-rsf-old, calc-rsf-new): New variables.
14217 (calc-replace-sub-formula, calc-replace-sub-formula-rec):
14218 Replace variables old and new by declared variables.
14219 (calc-sel-reselect): New variable.
14220 (calc-auto-selection, calc-enter-selection, calc-edit-selection)
14221 (calc-sel-evaluate, calc-sel-expand-formula, calc-sel-expand-formula)
14222 (calc-sel-mult-both-sides, calc-sel-add-both-sides): Replace variable
14223 reselect with declared variable.
14224
14225 * calc/calc-rewr.el (math-regs, math-num-regs, math-prog-last)
14226 (math-bound-vars, math-conds, math-copy-neg, math-rhs)
14227 (math-pattern, math-remembering, math-aliased-vars, math-mt-many)
14228 (math-import-list, math-rewrite-phase): Declare them.
14229 (math-rewrite): Use let* to declare variables.
14230 (calc-rewrite-selection): Make rules a local variable.
14231 (calc-rewr-sel): New variable.
14232 (calc-rewrite-selection, calc-locate-selection-marker)
14233 (calc-rewrite): Use the declared variable calc-rewr-sel instead
14234 of sel.
14235 (math-rewrite-whole-expr): New variable.
14236 (math-rewrite, math-rewrite-phase): Replace variable expr by
14237 declared variable.
14238 (math-rewrite-heads-heads, math-rewrite-heads-skips)
14239 (math-rewrite-heads-blanks ): New variables.
14240 (math-rewrite-heads, math-rewrite-heads-rec): Replace variables
14241 heads, skips and blanks by declared variables.
14242 (math-rwcomp-subst-old, math-rwcomp-subst-new)
14243 (math-rwcomp-subst-old-func, math-rwcomp-subst-new-func):
14244 New variables.
14245 (math-rwcomp-substitute, math-rwcomp-subst-rec): Replace variables
14246 old, new, old-func and new-func by declared variables.
14247 (math-rwcomp-assoc-args, math-rwcomp-addsub-args):
14248 Remove unnecessary variable.
14249 (math-apply-rw-regs): New variable.
14250 (math-apply-rewrites, math-rwapply-replace-regs)
14251 (math-rwapply-reg-looks-negp): Replace variable regs by declared var.
14252 (math-apply-rw-ruleset): New variable.
14253 (math-apply-rewrites, math-rwapply-remember): Replace variable
14254 ruleset by declared variable.
14255
142562004-11-19 Richard M. Stallman <rms@gnu.org>
14257
14258 * info.el (Info-search): Use search-whitespace-regexp.
14259
142602004-11-19 Thien-Thi Nguyen <ttn@gnu.org>
14261
14262 * vc-rcs.el (vc-rcs-parse): New function.
14263 (vc-rcs-annotate-command): Likewise.
14264 (vc-rcs-annotate-current-time): Likewise.
14265 (vc-rcs-annotate-time): Likewise.
14266 (vc-rcs-annotate-extract-revision-at-line): Likewise.
14267
142682004-11-19 Thien-Thi Nguyen <ttn@gnu.org>
14269
14270 * Makefile.in (recompile): Set `max-specpdl-size' before compiling.
14271
142722004-11-18 Jay Belanger <belanger@truman.edu>
14273
14274 * calc/calc-alg.el (math-simplify-divisor): Remove unnecessary vars.
14275
142762004-11-17 Vinicius Jose Latorre <viniciusjl@ig.com.br>
14277
14278 * printing.el: Eliminate use of interactive-p and eval-and-compile.
14279 Use of (featurep 'xemacs) instead of (eq ps-print-emacs-type 'xemacs).
14280 Use make-temp-file to generate PostScript files in any situation.
14281 (pr-ps-temp-file): Now specify a prefix to generate temporary files.
14282 (pr-interactive-p): Eliminate var.
14283 (pr-save-interactive): Eliminate macro.
14284 (pr-interface, pr-ps-directory-preview)
14285 (pr-ps-directory-using-ghostscript, pr-ps-directory-print)
14286 (pr-ps-directory-ps-print, pr-ps-buffer-preview)
14287 (pr-ps-buffer-using-ghostscript, pr-ps-buffer-print)
14288 (pr-ps-buffer-ps-print, pr-ps-region-preview)
14289 (pr-ps-region-using-ghostscript, pr-ps-region-print)
14290 (pr-ps-region-ps-print, pr-ps-mode-preview)
14291 (pr-ps-mode-using-ghostscript, pr-ps-mode-print, pr-ps-mode-ps-print)
14292 (pr-printify-directory, pr-txt-directory, pr-despool-preview)
14293 (pr-despool-using-ghostscript, pr-despool-print, pr-despool-ps-print)
14294 (pr-ps-file-up-preview, pr-ps-file-using-ghostscript)
14295 (pr-ps-file-up-ps-print, pr-toggle-file-duplex, pr-toggle-file-tumble)
14296 (pr-toggle-file-landscape, pr-toggle-ghostscript, pr-toggle-faces)
14297 (pr-toggle-spool, pr-toggle-duplex, pr-toggle-tumble)
14298 (pr-toggle-landscape, pr-toggle-upside-down, pr-toggle-line)
14299 (pr-toggle-zebra, pr-toggle-header, pr-toggle-header-frame)
14300 (pr-toggle-lock, pr-toggle-region, pr-toggle-mode, pr-ps-name)
14301 (pr-txt-name, pr-ps-utility, pr-ps-fast-fire, pr-txt-fast-fire)
14302 (pr-update-menus, pr-interface-ps-prin, pr-interface-preview):
14303 Eliminate pr-save-interactive usage.
14304 (pr-menu-lock, pr-ps-utility-args, pr-set-outfilename):
14305 Eliminate pr-interactive-p usage.
14306 (pr-toggle-file-duplex-menu, pr-toggle-file-tumble-menu)
14307 (pr-toggle-file-landscape-menu, pr-toggle-ghostscript-menu)
14308 (pr-toggle-faces-menu, pr-toggle-spool-menu, pr-toggle-duplex-menu)
14309 (pr-toggle-tumble-menu, pr-toggle-landscape-menu)
14310 (pr-toggle-upside-down-menu, pr-toggle-line-menu, pr-toggle-zebra-menu)
14311 (pr-toggle-header-menu, pr-toggle-header-frame-menu)
14312 (pr-toggle-lock-menu, pr-toggle-region-menu, pr-toggle-mode-menu):
14313 New funs.
14314 (pr-ps-file): Use make-temp-file to generate a temporary file.
14315
143162004-11-17 Jay Belanger <belanger@truman.edu>
14317
14318 * calc/calc-alg.el (calc-poly-div): Make calc-poly-div-remainder
14319 a local variable.
14320 (math-eval-rules-cache, math-eval-rules-cache-other): Declare them.
14321 (math-top-only): New variable.
14322 (math-simplify, math-simplify-step): Replace variable top-only by
14323 declared variable math-top-only.
14324 (math-simplify-expr): Declare it.
14325 Replace argument expr in all calls of math-defsimplify by
14326 math-simplify-expr.
14327 (math-simplify-plus, math-simplify-times, math-simplify-divide)
14328 (math-simplify-divisor, math-simplify-one-divisor)
14329 (math-simplify-mod, math-simplify-ineq, math-simplify-sqrt)
14330 (math-simplify-pow): Replace variable expr by declared variable
14331 math-simplify-expr.
14332 (math-simplify-divisor): Remove local variables temp and op.
14333 (math-simplify-one-divisor): Make temp and op local variables.
14334 (math-simplify-divisor-nover, math-simplify-divisor-dover):
14335 New variables.
14336 (math-simplify-divisor, math-simplify-one-divisor):
14337 Replace variables nover and dover by declared variables.
14338 (math-expr-subst-new, math-expr-subst-old): New variables.
14339 (math-expr-subst, math-expr-subst-rec): Replace variables new
14340 and old by declared variables.
14341 (math-is-poly-degree, math-is-poly-loose): New variables.
14342 (math-is-polynomial, math-is-poly-rec): Replace variables degree
14343 and loose by declared variables.
14344 (math-poly-base-const-ok, math-poly-base-pred): New variables.
14345 (math-polynomial-base, math-polynomial-base-rec):
14346 Replace variables const-ok and mpb-pred by declared variables.
14347
14348 * calc/calc-poly.el (calc-poly-div-remainder): Declare it.
14349
14350 * calc/calc-ext.el (math-defsimplify): Change the argument in
14351 the created function to math-simplify-expr.
14352
14353 * calc/calc-units.el (math-simplify-expr): Declare it.
14354 Replace argument expr in all calls of math-defsimplify by
14355 math-simplify-expr.
14356 (math-simplify-units-prod): Replace variable expr by declared
14357 variable math-simplify-expr.
14358
143592004-11-17 Stefan Monnier <monnier@iro.umontreal.ca>
14360
14361 * buff-menu.el (list-buffers-noselect): Massage to fit in 80 columns.
14362 Replace mapcar->dolist, format->string.
14363
143642004-11-17 Miles Bader <miles@gnu.org>
14365
14366 * progmodes/idlw-shell.el, progmodes/idlw-toolbar.el
14367 * progmodes/idlwave.el: Remove RCS keywords.
14368
143692004-11-17 J.D. Smith <jdsmith@as.arizona.edu>
14370
14371 * progmodes/idlwave.el, progmodes/idlw-toolbar.el
14372 * progmodes/idlw-shell.el, progmodes/idlw-rinfo.el:
14373 Update to IDLWAVE version 5.5. Too many changes to list them here.
14374 * progmodes/idlw-help.el: New file.
14375
143762004-11-16 Richard M. Stallman <rms@gnu.org>
14377
14378 * international/iso-cvt.el (iso-tex2iso-trans-tab):
14379 Discard spaces after \i according to TeX rules.
14380
14381 * international/mule.el (set-buffer-file-coding-system):
14382 New arg NOMODIFY.
14383 (after-insert-file-set-coding): Pass that new arg.
14384 Prevent set-buffer-multibyte from trying to lock the file.
14385
14386 * buff-menu.el (list-buffers-noselect): New arg BUFFER-LIST.
14387
14388 * saveplace.el (save-place): Doc fix.
14389
14390 * dabbrev.el (dabbrev-expand): When handling SPC M-/,
14391 temporarily widen before finding the following word to copy.
14392
14393 * emacs-lisp/lucid.el (map-keymap): Definition deleted.
14394 (cl-map-keymap): Definition deleted.
14395
14396 * subr.el (map-keymap-internal): New function.
14397
143982004-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
14399
14400 * textmodes/flyspell.el (flyspell-mouse-map): Pop the menu
14401 when pressing rather than when releasing mouse-2. Simplify.
14402
144032004-11-15 Stefan Monnier <monnier@iro.umontreal.ca>
14404
14405 * progmodes/compile.el (compilation-setup): Don't set buffer-read-only.
14406 (compilation-mode): Set it here instead.
14407
14408 * emacs-lisp/cl-compat.el (pair-with-newsyms): Use make-symbol.
14409
14410 * emacs-lisp/cl-macs.el: Use make-symbol rather than gensym.
14411 (loop, cl-parse-loop-clause, defsetf): Use backquote.
14412
144132004-11-14 Stefan Monnier <monnier@iro.umontreal.ca>
14414
14415 * progmodes/compile.el (compilation-internal-error-properties):
14416 Fix up a transposition-typo. Check end-col before using it.
14417
144182004-11-14 Frederic Han <han@math.jussieu.fr> (tiny change)
14419
14420 * international/iso-cvt.el (iso-tex2iso-trans-tab):
14421 Discard whitespace after macro \i when converting it.
14422
144232004-11-16 Juri Linkov <juri@jurta.org>
14424
14425 * emacs-lisp/find-func.el (find-function-regexp):
14426 Optimize `define-minor-mode'. Add `defun-cvs-mode'.
14427 Add `deffoo'. Add `f' to [^cgv] to exclude `defface'.
14428 Remove invalid `\W' from [^cgv\W]. Doc fix.
14429 (find-function-search-for-symbol): Replace "\\>" with "\\_>".
14430
144312004-11-15 Luc Teirlinck <teirllm@auburn.edu>
14432
14433 * play/life.el: Maintainer is now FSF.
14434 (life-patterns, life-neighbor-deltas, life-window-start)
14435 (life-current-generation, life-generation-string): Use defvar
14436 instead of defconst.
14437
144382004-11-15 Stefan Monnier <monnier@iro.umontreal.ca>
14439
14440 * progmodes/compile.el (compilation-move-to-column): New fun.
14441 (compilation-internal-error-properties)
14442 (compilation-next-error-function): Use it to make sure we don't go past
14443 the end of line.
14444
144452004-11-15 John Paul Wallington <jpw@gnu.org>
14446
14447 * autoinsert.el (auto-insert-alist): Insert the user's name in
14448 copyright notice, rather than Free Software Foundation, for the
14449 Emacs Lisp header case too.
14450
144512004-11-15 Vinicius Jose Latorre <viniciusjl@ig.com.br>
14452
14453 * printing.el (pr-ps-file-print, pr-toggle-duplex): Fix typos.
14454 Reported by Glenn Morris <gmorris+emacs@ast.cam.ac.uk>.
14455 (pr-switches-string): If SWITCHES is nil, return nil. Otherwise,
14456 return the list of string in a string.
14457 (pr-call-process): Message if calling process returns an error, that
14458 is, the exit status is different of zero.
14459
144602004-11-15 Jay Belanger <belanger@truman.edu>
14461
14462 * calc/calcalg2.el (math-integrate-by-parts): Remove unused
14463 variable var-thing.
14464 (math-integ-depth, math-integ-level, math-integral-limit)
14465 (math-enable-subst, math-any-substs, math-integ-msg)
14466 (math-prev-parts-v, math-good-parts, math-max-integral-limit)
14467 (math-int-threshold, math-int-factors, math-double-roots)
14468 (math-solve-simplifying, var-IntegLimit, math-solve-sign)
14469 (var-GenCount): Declare these variables.
14470 (calcFunc-integ): Don't check if var-IntegLimit is bound.
14471 (math-integral-cache, math-integral-cache-state):
14472 Move declarations to earlier in the file.
14473 (math-deriv-var, math-deriv-total, math-deriv-symb)
14474 (math-cur-record, math-has-rules, math-t1, math-t2, math-t3)
14475 (math-so-far, math-integ-expr, math-expr-parts, calc-low)
14476 (calc-high, math-solve-var, math-solve-full, math-solve-vars)
14477 (math-try-solve-sign, math-solve-b, math-solve-system-vv)
14478 (math-solve-res): New variables
14479 (math-derivative, calcFunc-deriv, calcFunc-tderiv)
14480 (math-integral, math-replace-integral-parts)
14481 (math-integrate-by-parts, calc-dump-integral-cache)
14482 (math-try-integral, math-do-integral, math-do-integral)
14483 (math-do-integral-methods, math-try-solve-for)
14484 (math-try-solve-prod, math-solve-poly-funny-powers)
14485 (math-solve-crunch-poly, math-decompose-poly)
14486 (math-solve-find-root-term, math-find-root-in-prod)
14487 (math-integ-try-linear-substitutions)
14488 (math-integ-try-substitutions, math-expr-rational-in)
14489 (math-expr-rational-in-rec, calcFunc-table, math-scan-for-limits)
14490 (math-solve-prod, math-solve-quartic, math-poly-all-roots)
14491 (math-solve-for, math-solve-system, math-solve-system-rec)
14492 (math-solve-get-sign, math-solve-get-int)
14493 (math-solve-system-subst): Replace undeclared variables with newly
14494 declared variables.
14495
144962004-11-14 Stefan Monnier <monnier@iro.umontreal.ca>
14497
14498 * winner.el (winner-active-region, winner-edges, winner-window-list):
14499 Define at toplevel.
14500 (winner-mode-map): Move init inside declaration.
14501
145022004-11-14 Luc Teirlinck <teirllm@auburn.edu>
14503
14504 * files.el (convert-standard-filename): Doc fix.
14505
145062004-11-14 Daniel Pfeiffer <occitan@esperanto.org>
14507
14508 * files.el (auto-mode-alist): Handle .gtkrc, and under /etc
14509 passwd, group, shadow, default/* and pam.d/*.
14510
145112004-11-14 Vinicius Jose Latorre <viniciusjl@ig.com.br>
14512
14513 * printing.el (pr-menu-spec): Adjust menu specification.
14514
145152004-11-13 Vinicius Jose Latorre <viniciusjl@ig.com.br>
14516
14517 * printing.el: Doc fix. Insert :version tag into all defcustom.
14518 Handle interactive-p as is recommended in Emacs Lisp Reference.
14519 Set the file permission bits for newly created files.
14520 Reported by Glenn Morris <gmorris+emacs@ast.cam.ac.uk>.
14521 The printing menu specification (in `pr-menu-spec') was merged.
14522 Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
14523 (pr-version): New version number (6.8.3).
14524 (pr-file-modes): New option.
14525 (pr-interactive-p): New var.
14526 (pr-save-interactive, pr-save-file-modes): New macros.
14527 (pr-setup): Code fix.
14528 (pr-menu-spec): Menu specification merged.
14529 (pr-call-process, pr-text2ps): Set file permission bits.
14530 (pr-despool-print): Set file permission bits. Handle interactive-p as
14531 is recommended.
14532 (pr-interface, pr-ps-directory-preview)
14533 (pr-ps-directory-using-ghostscript, pr-ps-directory-print)
14534 (pr-ps-directory-ps-print, pr-ps-buffer-preview)
14535 (pr-ps-buffer-using-ghostscript, pr-ps-buffer-print)
14536 (pr-ps-buffer-ps-print, pr-ps-region-preview)
14537 (pr-ps-region-using-ghostscript, pr-ps-region-print)
14538 (pr-ps-region-ps-print, pr-ps-mode-preview)
14539 (pr-ps-mode-using-ghostscript, pr-ps-mode-print, pr-ps-mode-ps-print)
14540 (pr-printify-directory, pr-txt-directory, pr-despool-preview)
14541 (pr-despool-using-ghostscript, pr-despool-ps-print)
14542 (pr-ps-file-up-preview, pr-ps-file-using-ghostscript)
14543 (pr-ps-file-up-ps-print, pr-toggle-file-duplex, pr-toggle-file-tumble)
14544 (pr-toggle-file-landscape, pr-toggle-ghostscript, pr-toggle-faces)
14545 (pr-toggle-spool, pr-toggle-duplex, pr-toggle-tumble)
14546 (pr-toggle-landscape, pr-toggle-upside-down, pr-toggle-line)
14547 (pr-toggle-zebra, pr-toggle-header, pr-toggle-header-frame)
14548 (pr-toggle-lock, pr-toggle-region, pr-toggle-mode, pr-ps-name)
14549 (pr-txt-name, pr-ps-utility, pr-ps-fast-fire, pr-txt-fast-fire)
14550 (pr-menu-lock, pr-update-menus, pr-ps-utility-args)
14551 (pr-set-outfilename, pr-interface-ps-print, pr-interface-preview):
14552 Handle interactive-p as is recommended.
14553
145542004-11-13 Stefan Monnier <monnier@iro.umontreal.ca>
14555
14556 * emacs-lisp/byte-opt.el (byte-optimize-inline-handler): Simplify.
14557 (byte-decompile-bytecode-1): Remove unused vars `tag' and `retcount'.
14558
14559 * font-lock.el (font-lock-fontify-syntactically-region): Fix last fix
14560 so it doesn't forget to highlight the beginning of the region either.
14561
145622004-11-13 Daniel Pfeiffer <occitan@esperanto.org>
14563
14564 * progmodes/cc-mode.el (c-basic-common-initc-font-lock-init)
14565 (c-font-lock-init): Eliminate obsolete make-local-hook.
14566 (c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode)
14567 (awk-mode): Use run-mode-hooks.
14568
14569 * progmodes/cperl-mode.el (cperl-mode): Use run-mode-hooks.
14570
145712004-11-13 Kim F. Storm <storm@cua.dk>
14572
14573 * mouse.el (mouse-drag-copy-region): Add :version.
14574 (mouse-drag-mode-line-1): Let bind mouse-autoselect-window to nil
14575 while dragging mode line, so mode line can be dragged downwards.
14576 (mouse-drag-region-1): Let bind make-cursor-line-fully-visible
14577 while pressing mouse button so window doesn't scroll until we
14578 release the mouse if clicking on partially visible line.
14579
145802004-11-12 Jay Belanger <belanger@truman.edu>
14581
14582 * calc/calc-graph.el (calc-dumb-map): Declare it.
14583 (calc-graph-show-dumb): Check if calc-dumb-map is non-nil rather
14584 than unbound.
14585 (calc-graph-name): Made `end' a local variable.
14586 (calc-graph-lookup): Made `varname' a local variable.
14587 (var-DUMMY, var-DUMMY2, var-PlotRejects, calc-gnuplot-trail-mark):
14588 Declare them.
14589 (calc-graph-format-data): Don't check if var-PlotRejects is bound.
14590 (calc-graph-plot, calc-graph-compute-3d): Remove references to
14591 the unused variable y3vec.
14592 (calc-graph-show-dumb): Remove reference to unused variable found-pt.
14593 (calc-graph-kill-hook, calc-graph-plot): Remove reference to
14594 calc-graph-prev-kill-hook.
14595 (calc-graph-yvalue, calc-graph-yvec, calc-graph-numsteps)
14596 (calc-graph-numsteps3, calc-graph-xvalue, calc-graph-xvec)
14597 (calc-graph-xname, calc-graph-yname, calc-graph-xstep)
14598 (calc-graph-ycache, calc-graph-ycacheptr, calc-graph-refine)
14599 (calc-graph-keep-file, calc-graph-xval, calc-graph-xlow)
14600 (calc-graph-xhigh, calc-graph-yval, calc-graph-yp, calc-graph-xp)
14601 (calc-graph-zp, calc-graph-yvector, calc-graph-resolution)
14602 (calc-graph-y3value, calc-graph-y3name)
14603 (calc-graph-y3step, calc-graph-y3step, calc-graph-zval)
14604 (calc-graph-stepcount, calc-graph-is-splot)
14605 (calc-graph-surprise-splot, calc-graph-blank)
14606 (calc-graph-non-blank, calc-graph-curve-num): New variables.
14607 (calc-graph-plot, calc-graph-compute-2d, calc-graph-refine-2d)
14608 (calc-graph-recompute-2d, calc-graph-compute-3d)
14609 (calc-graph-format-data): Replace undeclared variables with the
14610 above newly declared variables.
14611
146122004-11-12 Diane Murray <dsm@muenster.de> (tiny change)
14613
14614 * mail/rmail.el (rmail-get-new-mail): Use the renamed variables
14615 `rsf-beep' and `rsf-sleep-after-message'.
14616
14617 * mail/rmail-spam-filter.el (rmail-spam-filter): Only check white
14618 list if `message-sender' is non-nil.
14619
146202004-11-12 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change)
14621
14622 * desktop.el (desktop-create-buffer, desktop-save): Avoid some
14623 consing by using mapc instead of mapcar.
14624
146252004-11-12 Nick Roberts <nickrob@snap.net.nz>
14626
14627 * tooltip.el (require): Explain why CL is needed.
14628
146292004-11-11 Vinicius Jose Latorre <viniciusjl@ig.com.br>
14630
14631 * printing.el: Insert :version into defgroup (printing). All reference
14632 to Files option in menubar were changed to File.
14633 (pr-version): New version number (6.8.2).
14634 (pr-get-symbol): Call easy-menu-intern.
14635 (pr-region-active-p): Now is a fun (it was defsubst). To avoid
14636 compilation gripes.
14637
146382004-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
14639
14640 * emacs-lisp/byte-opt.el (byte-compile-inline-expand): Understand the
14641 new byte-compile-function-environment binding to t.
14642
14643 * font-lock.el (font-lock-fontify-syntactically-region):
14644 Don't forget to highlight the last char when we hit `end'.
14645
14646 * mwheel.el (mouse-wheel-progressive-speed): Fix typo in name.
14647 (mwheel-scroll): Adjust accordingly.
14648
14649 * cvs-status.el: Reduce spurious warnings.
14650 (cvs-status-checkout): Remove.
14651 (cvs-status-mode-map): Use cvs-mode-checkout instead.
14652
14653 * pcvs.el (cvs-mode-checkout): New command.
14654
14655 * international/iso-cvt.el (iso-cvt-define-menu): Fix typo.
14656
14657 * tooltip.el: Require CL.
14658
14659 * emacs-lisp/bytecomp.el: Use push.
14660 (byte-compile-file-form-defalias): Rename from byte-compile-defalias.
14661 (defalias): Remove the `byte-compile' property and add
14662 a `byte-hunk-handler'.
14663
146642004-11-11 Juri Linkov <juri@jurta.org>
14665
14666 * info.el (Info-search): Save match data for isearch.
14667 Skip Tag Table node.
14668
14669 * descr-text.el (describe-char): Replace syntax-after with code
14670 from its previous version.
14671
14672 * files.el (magic-mode-alist): Use optimization for SGML mode too.
14673 (set-auto-mode): Doc fix. Remove unused variable `xml'.
14674
14675 * international/mule.el (sgml-html-meta-auto-coding-function):
14676 Remove > after <html to allow HTML attributes.
14677
146782004-11-11 Jay Belanger <belanger@truman.edu>
14679
14680 * calc/calc-comb.el (math-prime-factors-finished): Declare it as
14681 a variable.
14682 (calcFunc-dfac): Replace unbound max by n.
14683 (math-stirling-local-cache): New variable.
14684 (math-stirling-number, math-stirling-1, math-stirling-2):
14685 Replace the variable `cache' by the declared variable
14686 math-stirling-local-cache.
14687 (var-RandSeed): Declare it as a variable.
14688 (math-init-random-base, math-random-digit): Don't check to see if
14689 var-RandSeed is bound.
14690 (math-random-cache, math-gaussian-cache, calc-verbose-nextprime):
14691 Declare them instead of just setting them.
14692 (math-init-random-base): Made i a local variable.
14693 (math-random-digit): Made math-random-last a local variable.
14694 (math-prime-test-cache): Move declaration to before it is used.
14695 (math-prime-test-cache-k, math-prime-test-cache-q)
14696 (math-prime-test-cache-nm1, math-prime-factors-finished):
14697 Declare them as variables.
14698
146992004-11-11 Jay Belanger <belanger@truman.edu>
14700
14701 * calc/calc-ext.el (math-defcache): Use defvar for the new
14702 variables it creates.
14703
147042004-11-11 Lars Hansen <larsh@math.ku.dk>
14705
14706 * desktop.el (desktop-buffer-mode-handlers, desktop-after-read-hook)
14707 (desktop-clear-preserve-buffers-regexp, desktop-file-name-format)
14708 (desktop-globals-to-clear, desktop-no-desktop-file-hook, desktop-path)
14709 (desktop-save): Add :version.
14710
147112004-11-11 Stefan Monnier <monnier@iro.umontreal.ca>
14712
14713 * printing.el (pr-get-symbol): Don't downcase.
14714
147152004-11-10 Jay Belanger <belanger@truman.edu>
14716
14717 * calc/calc-aent.el (calc-do-quick-calc): Use kill-new to append
14718 string to kill-ring.
14719
14720 * calc/calc-aent.el (calc-alg-exp, math-toks)
14721 (math-exp-pos,math-exp-old-pos, math-exp-token)
14722 (math-exp-keep-spaces, math-exp-str): New variables.
14723 (calc-do-alg-entry, calcAlg-equals, calcAlg-edit)
14724 (calcAlg-enter): Use declared variable calc-alg-exp.
14725 (math-build-parse-table, math-find-user-token): Use declared
14726 variable math-toks.
14727 (math-read-exprs, math-read-token, calc-check-user-syntax)
14728 (calc-match-user-syntax, match-factor-after, math-read-factor):
14729 Use declared variables math-exp-pos math-exp-old-pos.
14730 (math-read-exprs, math-read-token, math-read-expr-level)
14731 (calc-check-user-syntax, calc-match-user-syntax)
14732 (match-factor-after, math-read-factor): Use declared variable
14733 math-exp-token.
14734 (math-read-exprs, math-read-expr-list, math-read-token)
14735 (math-read-factor): Use declared variable math-exp-keep-spaces.
14736 (math-read-exprs, math-read-token): Use declared variable
14737 math-exp-str.
14738 (calc-match-user-syntax): Make m a local variable.
14739
14740 * calc/calc-ext.el (math-read-expr): Use declared variables
14741 math-exp-pos, math-exp-old-pos, math-exp-str, math-exp-token,
14742 math-exp-keep-spaces.
14743
14744 * calc/calc-forms.el (math-read-angle-bracket): Use declared
14745 variables math-exp-pos, math-exp-str.
14746
14747 * calc/calc-lang.el (math-parse-tex-sum): Use declared variable
14748 math-exp-old-pos.
14749 (math-parse-fortran-vector, math-parse-fortran-vector-end)
14750 (math-parse-eqn-prime): Use declared variable math-exp-token.
14751
14752 * calc/calc-vec.el (math-read-brackets, math-check-for-commas):
14753 Use declared variable math-exp-pos.
14754 (math-check-for-commas): Use declared variable math-exp-str.
14755 (math-read-brackets): Use declared variables math-exp-old-pos,
14756 math-exp-keep-spaces.
14757 (math-read-brackets, math-read-vector, math-read-matrix):
14758 Use declared variable math-exp-token.
14759
147602004-11-10 Stefan Monnier <monnier@iro.umontreal.ca>
14761
14762 * emacs-lisp/easymenu.el (easy-menu-define-key): Understand the case
14763 where the keymap is a symbol.
14764 (easy-menu-add-item): Use keymap-prompt. Simplify.
14765
14766 * files.el (magic-mode-alist): Reduce backtracking in the HTML regexp.
14767
14768 * textmodes/sgml-mode.el (sgml-tag-text-p): New fun.
14769 (sgml-parse-tag-backward): Use it to skip spurious < or >.
14770
147712004-11-10 Thien-Thi Nguyen <ttn@gnu.org>
14772
14773 * ebuff-menu.el: Doc fixes throughout.
14774 (electric-buffer-menu-mode-hook): New defvar.
14775
147762004-11-10 Nick Roberts <nickrob@snap.net.nz>
14777
14778 * tooltip.el: Don't require cl, comint, gud, gdb-ui for compilation.
14779 The resulting compiler warnings appear to be harmless.
14780
147812004-11-10 Daniel Pfeiffer <occitan@esperanto.org>
14782
14783 * textmodes/conf-mode.el: New file.
14784
14785 * files.el (auto-mode-alist, magic-mode-alist): Use it.
14786
147872004-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
14788
14789 * international/iso-cvt.el (iso-cvt-define-menu): Clean up namespace.
14790
147912004-11-09 Jay Belanger <belanger@truman.edu>
14792
14793 * calc/calc-ext.el (calc-init-extensions): Remove old code.
14794
14795 * calc/calc-ext.el (math-expr-data, math-mt-many, math-mt-func)
14796 (calc-z-prefix-buf, calc-z-prefix-msgs): New variables.
14797 (calc-z-prefix-help, calc-user-function-list): Use declared
14798 variables calc-z-prefix-buf, calc-z-prefix-msgs.
14799 (math-map-tree, math-map-tree-rec): Use declared variables
14800 math-mt-many, math-mt-func.
14801 (math-read-expression, math-read-string): Use declared variable
14802 math-expr-data.
14803
14804 * calc/calc-ext.el (math-normalize-nonstandard): Use declared
14805 variable math-normalize-a.
14806
14807 * calc/calc.el (math-normalize-a): New variable.
14808 (math-normalize): Use declared variable math-normalize-a.
14809
14810 * calc/calc-poly.el (math-expand-form): Use declared variable
14811 math-mt-many.
14812
14813 * calc/calc-rewr.el (math-rewrite, math-rewrite-phase):
14814 Use declared variable math-mt-many.
14815 (math-rewrite): Use declared variable math-mt-func.
14816
14817 * calc/calc-vec.el (math-read-brackets, math-read-vector)
14818 (math-read-matrix): Use declared variable math-expr-data.
14819
14820 * calc/calc-lang.el (math-parse-fortran-vector)
14821 (math-parse-fortran-vector-end, math-parse-tex-sum)
14822 (math-parse-eqn-matrix, math-parse-eqn-prime)
14823 (math-read-math-subscr): Use declared variable math-expr-data.
14824
14825 * calc/calc-aent.el (math-read-exprs, math-read-expr-list)
14826 (math-read-expr-level, math-read-token, calc-check-user-syntax)
14827 (calc-match-user-syntax, math-read-if, math-factor-after)
14828 (math-read-factor): Use declared variable math-expr-data.
14829
148302004-11-09 Glenn Morris <gmorris@ast.cam.ac.uk>
14831
14832 * calendar/diary-lib.el (diary-from-outlook)
14833 (diary-from-outlook-gnus, diary-from-outlook-rmail): Do not use
14834 interactive-p; but rather new optional argument NOCONFIRM.
14835
148362004-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
14837
14838 * emacs-lisp/easymenu.el (easy-menu-intern): Revert to no-downcasing.
14839 (easy-menu-name-match): Revert correspondingly.
14840
148412004-11-09 Richard M. Stallman <rms@gnu.org>
14842
14843 * emacs-lisp/bytecomp.el (byte-compile-defalias):
14844 Turn off warnings for the new function even if definition not constant.
14845 If the definition isn't a quoted symbol, record (FUNCTION . t).
14846 (byte-compile-function-environment): Now allow (FUNCTION . t) as elt.
14847 (byte-compile-callargs-warn): Handle (FUNCTION . t).
14848 (display-call-tree, byte-compile-arglist-warn):
14849 Handle t returned by byte-compile-fdefinition.
14850
148512004-11-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
14852
14853 * Makefile.in (maintainer-clean): Depend on distclean.
14854
14855 * help-fns.el (help-C-file-name): File name must be in build-files
14856 to be returned.
14857
148582004-11-09 Jay Belanger <belanger@truman.edu>
14859
14860 * calc/calc.el (calc-mode-hook, calc-trail-mode-hook)
14861 (calc-start-hook, calc-end-hook, calc-load-hook): New variables.
14862
14863 * calc/calc.el (calc, calc-trail-display, calc-mode):
14864 Remove obsolete sections.
14865
14866 * calc/calc.el (calc-x-paste-text): Remove.
14867
14868 * calc/calc-ext.el (calc-init-extensions): Bind calc-yank to
14869 mouse-2.
14870
148712004-11-09 Nick Roberts <nickrob@snap.net.nz>
14872
14873 * progmodes/gdb-ui.el (gdb-current-stack-level): New variable.
14874 (gdb-info-frames-custom, gdb-frame-handler): Use it to find
14875 current frame (in case of recursive calls).
14876 (gdb-show-changed-values): Add :version keyword.
14877
148782004-11-09 Kenichi Handa <handa@m17n.org>
14879
14880 * international/mule-cmds.el: Change coding: tag back to
14881 iso-2022-7bit.
14882
148832004-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
14884
14885 * international/mule-cmds.el: Change coding-system to utf-8.
14886 (select-safe-coding-system-interactively):
14887 New function extracted from select-safe-coding-system.
14888 (select-safe-coding-system): Use it.
14889
148902004-11-08 Richard M. Stallman <rms@gnu.org>
14891
14892 * subr.el (syntax-after): Doc fix.
14893
14894 * paren.el (show-paren-function): Change calls to syntax-after
14895 for new way of returning the value.
14896
14897 * menu-bar.el (menu-bar-file-menu): Make this the real name
14898 and menu-bar-files-menu the alias. Use the former.
14899 (global-map): Use `file', not `files', as the symbol.
14900
14901 * info.el (Info-revert-find-node): Don't use beginning-of-buffer.
14902
14903 * filesets.el (filesets-spawn-external-viewer, filesets-run-cmd):
14904 Don't use beginning-of-buffer.
14905 (filesets-cmd-show-result): Use with-no-warnings.
14906
149072004-11-08 Juri Linkov <juri@jurta.org>
14908
14909 * progmodes/compile.el (compile): Don't overwrite last command in
14910 minibuffer history with default command if they are not equal.
14911
149122004-11-08 Jay Belanger <belanger@truman.edu>
14913
14914 * calc/calcalg2.el (math-do-integral-methods): Try linear then
14915 non-linear substitutions.
14916
149172004-11-08 Jay Belanger <belanger@truman.edu>
14918
14919 * calc/calcalg2.el (math-linear-subst-tried): New variable.
14920 (math-do-integral): Set `math-linear-subst-tried' to nil.
14921 (math-do-integral-methods): Use `math-linear-subst-tried' to
14922 determine what type of substitution to try.
14923 (math-integ-try-linear-substituion):
14924 Set `math-linear-subst-tried' to t.
14925
149262004-11-08 Kim F. Storm <storm@cua.dk>
14927
14928 * Makefile.in (bootstrap-clean): New target for 'make bootstrap'.
14929
149302004-11-07 Juri Linkov <juri@jurta.org>
14931
14932 * info-look.el (info-lookup): Allow reusing in the current buffer
14933 not only *info* buffer, but all (even renamed) Info buffers
14934 by checking for major-mode instead of *info* buffer name.
14935 (c-mode, autoconf-mode, emacs-lisp-mode, scheme-mode)
14936 (octave-mode, maxima-mode) <doc-spec>:
14937 Allow long dashes generated by Texinfo 4.7 before definitions.
14938 (texinfo-mode) <doc-spec>: Add space to suffix to find command
14939 definitions with argument separated by space.
14940
149412004-11-06 Richard M. Stallman <rms@gnu.org>
14942
14943 * simple.el (next-error group, face): Move before first use.
14944 (next-error-highlight, next-error-highlight-no-select): Likewise.
14945
14946 * simple.el (line-move-invisible-p): Rename from line-move-invisible.
14947 (line-move): New args NOERROR and TO-END.
14948 Return t if succeed in moving specified number of lines.
14949 (move-end-of-line): New function.
14950
14951 * simple.el (beginning-of-buffer-other-window): Use with-no-warnings.
14952 (end-of-buffer-other-window): Likewise.
14953
14954 * simple.el (line-move-ignore-invisible): Default to t.
14955
14956 * subr.el (syntax-after): Return the syntax letter, not the raw code.
14957
14958 * emacs-lisp/elp.el (elp-results): Delete wasteful beginning-of-buffer.
14959
14960 * international/iso-cvt.el (iso-cvt-define-menu):
14961 Rename menu-bar-files-menu to menu-bar-file-menu.
14962
14963 * net/browse-url.el (browse-url-gnome-moz-program)
14964 (browse-url-gnome-moz-arguments): Move up before first use.
14965
14966 * net/tramp.el (tramp group): Add :version.
14967
14968 * progmodes/ada-xref.el (ada-gdb-application):
14969 Use goto-char instead of beginning-of-buffer.
14970
14971 * progmodes/cperl-mode.el (cperl-info-on-command):
14972 Use goto-char instead of beginning-of-buffer.
14973
14974 * progmodes/idlw-shell.el (idlwave-shell-examine-map):
14975 Move up before first use.
14976 (idlwave-shell-temp-pro-file): Likewise.
14977 (idlwave-shell-temp-rinfo-save-file): Likewise.
14978 (idlwave-shell-temp-file): Minor doc fix.
14979
14980 * textmodes/flyspell.el (flyspell-external-point-words):
14981 Use goto-char instead of beginning-of-buffer.
14982
149832004-11-06 Kai Grossjohann <kai.grossjohann@gmx.net>
14984
14985 * net/tramp.el (tramp-coding-commands): Additionally try "uudecode -o
14986 /dev/stdout" before trying "uudecode -o -". Suggested by Han Boetes.
14987 (tramp-uudecode): Mention `uudecode -o /dev/stdout'.
14988
149892004-11-06 David Ponce <david@dponce.com>
14990
14991 * recentf.el (recentf-menu-path): Use menu item name.
14992
149932004-11-06 Eli Zaretskii <eliz@gnu.org>
14994
14995 * progmodes/gdb-ui.el: Don't call define-fringe-bitmap if the
14996 display doesn't support images.
14997
149982004-11-06 Andreas Schwab <schwab@suse.de>
14999
15000 * tempo.el (tempo-match-finder): Doc fix.
15001
15002 * emacs-lisp/easymenu.el (easy-menu-get-map): Fix last change.
15003
150042004-11-06 Stefan Monnier <monnier@iro.umontreal.ca>
15005
15006 * emacs-lisp/easymenu.el (easy-menu-get-map-look-for-name): Remove.
15007 (easy-menu-lookup-name): New fun to replace it.
15008 (easy-menu-get-map): Use it to obey menu item names (rather than just
15009 keys) when looking up `path'.
15010 (easy-menu-always-true-p): Rename from easy-menu-always-true.
15011 (easy-menu-convert-item-1): Adjust to new name.
15012
150132004-11-06 Peter Heslin <pj@heslin.eclipse.co.uk> (tiny change)
15014
15015 * outline.el (hide-body): Don't hide lines at the top of the file
15016 that precede the first header line.
15017
150182004-11-06 Paul Pogonyshev <pogonyshev@gmx.net>
15019
15020 * align.el (align-areas): Delete whitespace before reindenting, so
15021 that tabs are never placed after spaces.
15022
150232004-11-06 Alan Shutko <ats@acm.org>
15024
15025 * macros.el (insert-kbd-macro): Do completions based on macros,
15026 rather than all commands.
15027
150282004-11-06 David Hansen <david.hansen@gmx.net> (tiny change)
15029
15030 * tempo.el (tempo-match-finder): Use [:word:] instead of "^\\b",
15031 to solve a bug whereby tags with 'b' don't match.
15032
150332004-11-05 Juri Linkov <juri@jurta.org>
15034
15035 * info.el (Info-search): Don't search in node header lines
15036 and file headers.
15037
15038 * emacs-lisp/edebug.el (edebug-next-token-class): Allow all
15039 symbol-constituent characters after dot, not only digits.
15040
150412004-11-04 Daniel Pfeiffer <occitan@esperanto.org>
15042
15043 * files.el (set-auto-mode): Don't get error after setting -*-mode-*-.
15044
150452004-11-04 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
15046
15047 * dired.el (dired-read-dir-and-switches): Call read-directory-name
15048 if a dialog will be used, read-file-name otherwise.
15049
150502004-11-04 Richard M. Stallman <rms@gnu.org>
15051
15052 * textmodes/table.el (table group): Add :version.
15053
15054 * textmodes/ispell.el (ispell-word):
15055 Don't alter args; set them only thru `interactive' spec.
15056
15057 * textmodes/flyspell.el (flyspell-word):
15058 Don't alter FOLLOWING; set it only thru `interactive' spec.
15059
15060 * progmodes/f90.el (f90-end-of-block): Don't use interactive-p.
15061
15062 * net/browse-url.el (browse-url-maybe-new-window):
15063 Use called-interactively-p.
15064
15065 * mail/supercite.el (sc-cite-region):
15066 Don't use interactive-p. Add arg INTERACTIVE.
15067 (sc-version): Don't use interactive-p. Rename arg to MESSAGE.
15068
15069 * international/mule-cmds.el (set-input-method, toggle-input-method):
15070 Don't use interactive-p. Add arg INTERACTIVE.
15071
15072 * eshell/esh-mode.el (eshell-show-maximum-output):
15073 Don't use interactive-p.
15074 (eshell-truncate-buffer): Just message, no error, if buffer is short.
15075
15076 * mouse.el (mouse-show-mark): Get positions to delete from mark
15077 and point, not from mouse-drag-overlay.
15078
15079 * imenu.el (imenu-eager-completion-buffer): Add :version.
15080
15081 * filesets.el (filesets group): Add :version.
15082
150832004-11-03 Daniel Pfeiffer <occitan@esperanto.org>
15084
15085 * files.el (xml-based-modes): Delete var.
15086 (magic-mode-alist): New more general var.
15087 (set-auto-mode): Use it.
15088
15089 * buff-menu.el (Buffer-menu-make-sort-button): Preserve point even
15090 when clicking from another window.
15091
150922004-11-03 Thien-Thi Nguyen <ttn@gnu.org>
15093
15094 * vc-cvs.el (vc-cvs-local-month-numbers): Delete var.
15095 (vc-cvs-annotate-time): Incorporate value of deleted var.
15096 Remove special-case handling of beginning-of-buffer cruft.
15097 Cache ending position (point) and return value in text property
15098 `vc-cvs-annotate-time', and consult it on subsequent invocations.
15099
15100 * vc-cvs.el (vc-cvs-annotate-command):
15101 Delete extraneous lines from beginning of buffer.
15102 * vc-mcvs.el (vc-mcvs-annotate-command): Likewise.
15103
15104 * progmodes/grep.el (grep-default-command): Take empty string
15105 for tag if all other methods yield nil. Shell-quote the tag.
15106
15107 * vc.el (vc-annotate-display-autoscale): Add prefix-arg
15108 spec in `interactive' form, and mention it in the docstring.
15109 Also, make sure point is at bol after calling `annotate-time'.
15110
151112004-11-02 Richard M. Stallman <rms@gnu.org>
15112
15113 * cus-edit.el (customize-group-other-window):
15114 Select the window that displays the custom buffer.
15115 (custom-buffer-create-other-window): Likewise.
15116
15117 * comint.el (comint-insert-input): Fix previous change.
15118
15119 * emacs-lisp/elp.el (elp-instrument-function):
15120 Use called-interactively-p.
15121
15122 * emacs-lisp/easymenu.el (easy-menu-intern):
15123 Don't downcase; rather, case-flip the first letter of each word.
15124
15125 * emacs-lisp/easy-mmode.el (define-minor-mode):
15126 Use called-interactively-p.
15127
15128 * emacs-lisp/bytecomp.el (byte-compile-warning-types):
15129 Add interactive-only.
15130 (byte-compile-warnings): Add interactive-only as option.
15131 (byte-compile-interactive-only-functions): New variable.
15132 (byte-compile-form): Warn about calls to functions
15133 in byte-compile-interactive-only-functions.
15134
15135 * emacs-lisp/autoload.el (update-file-autoloads):
15136 Don't use interactive-p; take new arg SAVE-AFTER.
15137
15138 * emacs-lisp/advice.el (ad-make-advised-definition):
15139 Use called-interactively-p.
15140
151412004-11-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
15142
15143 * files.el (find-file-existing): New function.
15144
15145 * menu-bar.el (menu-bar-files-menu): Make "Open File..." call
15146 find-file-existing. Add "New File..." that calls find-file.
15147
15148 * diropen.pbm, diropen.xpm: New files.
15149
15150 * toolbar/tool-bar.el (tool-bar-setup): Tool bar item dired uses
15151 icon diropen. New tool bar item find-file-existing uses icon open.
15152
15153 * dired.el (dired-read-dir-and-switches): Call read-directory-name
15154 instead of read-file-name.
15155
151562004-11-02 Ulf Jasper <ulf.jasper@web.de>
15157
15158 * calendar/icalendar.el (icalendar-version): Increase to 0.08.
15159 (icalendar--split-value): Change name of work buffer.
15160 (icalendar--get-weekday-abbrev): Return nil on error.
15161 (icalendar--date-to-isodate): New function.
15162 (icalendar-convert-diary-to-ical)
15163 (icalendar-extract-ical-from-buffer): Use only two args for
15164 make-obsolete (XEmacs compatibility).
15165 (icalendar-export-file, icalendar-import-file): Blank at end of prompt.
15166 (icalendar-export-region): Doc fix.
15167 If error, return non-nil and write errors to a buffer.
15168 Use correct weekday for weekly recurring events.
15169 Check whether date has been parsed for ordinary events.
15170 Make weekly events start in the year 2000.
15171 DTEND is non-inclusive, shift end date by one day if
15172 necessary (not for entries that have date and time).
15173 Rename local let variables: oops -> found-error, datestring ->
15174 startdatestring.
15175
151762004-11-02 Kim F. Storm <storm@cua.dk>
15177
15178 * files.el (set-auto-mode-0): Don't rely on dynamic binding of
15179 keep-mode-if-same variable. Add it as optional arg instead.
15180 (set-auto-mode): Call set-auto-mode-0 with keep-mode-if-same.
15181
15182 * ehelp.el (electric-help-map): Reorder Q/q and R/r entries so
15183 substitute-command-keys will select lower-case bindings like those
15184 used in the static help texts.
15185
15186 * descr-text.el (describe-text-properties): Don't err if called in
15187 the *Help* buffer; output to *Help-2* buffer instead.
15188
15189 * kmacro.el (group kmacro): Add :version.
15190 (kmacro-keyboard-quit): New function to cleanup on C-g.
15191 (kmacro-start-macro): Set defining-kbd-macro to append when
15192 appending to last macro.
15193
15194 * simple.el (keyboard-quit): Call kmacro-keyboard-quit.
15195
151962004-11-02 Nick Roberts <nickrob@snap.net.nz>
15197
15198 * progmodes/gdb-ui.el (gdb-enable-debug-log)
15199 (gdb-use-inferior-io-buffer, gdb-use-colon-colon-notation)
15200 (gud-gdba-command-name, gdb-show-main, gdb-many-windows):
15201 Add :version keyword.
15202
152032004-11-02 Pavel Kobiakov <pk_at_work@yahoo.com>
15204
15205 * progmodes/flymake.el (flymake-err-line-patterns):
15206 Use `flymake-reformat-err-line-patterns-from-compile-el' to convert
15207 `compilation-error-regexp-alist-alist' to internal Flymake format.
15208
15209 * progmodes/flymake.el: Eliminate byte-compiler warnings.
15210
152112004-11-01 Jay Belanger <belanger@truman.edu>
15212
15213 * calc/calc-frac.el (calc-over-notation): Replace `completing-read'
15214 with `interactive "s"'.
15215
152162004-11-01 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
15217
15218 * mouse.el (mouse-yank-at-click, mouse-yank-secondary):
15219 Revert change from 2004-10-16. '*' checks the current buffer, but the
15220 mouse click may be in another buffer.
15221
152222004-11-01 John Paul Wallington <jpw@gnu.org>
15223
15224 * files.el (large-file-warning-threshold): Add :version keyword.
15225 (kill-some-buffers): Doc fix.
15226
15227 * thumbs.el (group thumbs): Add :version keyword.
15228
15229 * textmodes/bibtex.el (bibtex-make-field): Fix typo.
15230
152312004-11-01 Richard M. Stallman <rms@gnu.org>
15232
15233 * textmodes/ispell.el (ispell-word): Don't use interactive-p.
15234
15235 * textmodes/flyspell.el (flyspell-word): Don't use interactive-p.
15236
15237 * allout.el (allout group): Add :version.
15238 (allout-init): Don't use interactive-p.
15239 (allout-ascend-to-depth, allout-ascend, allout-end-of-level)
15240 (allout-forward-current-level, allout-backward-current-level):
15241 Don't use interactive-p.
15242
15243 * textmodes/bibtex.el (bibtex-make-field): Don't use interactive-p.
15244 (bibtex-find-text): Likewise.
15245
15246 * progmodes/vhdl-mode.el (vhdl-fill-region)
15247 (vhdl-beginning-of-statement): Don't use interactive-p.
15248
15249 * progmodes/idlwave.el (idlwave-update-routine-info):
15250 Don't use interactive-p.
15251
15252 * progmodes/idlw-shell.el (idlwave-shell-send-char):
15253 Don't use interactive-p.
15254
15255 * progmodes/cperl-mode.el (cperl-switch-to-doc-buffer):
15256 Don't use interactive-p.
15257
15258 * progmodes/ada-xref.el (ada-make-body-gnatstub):
15259 Don't use interactive-p.
15260
15261 * play/fortune.el (fortune-to-signature): Don't use interactive-p.
15262 (fortune-in-buffer): Doc fix.
15263
15264 * play/5x5.el (5x5-new-game): Set up the buffer even if not
15265 interactive.
15266
15267 * net/eudc.el (eudc-display-records): Use with-output-to-temp-buffer;
15268 don't select the temporary buffer.
15269 (eudc-get-email): New optional arg ERROR; don't use interactive-p.
15270 (eudc-get-phone): Likewise.
15271
152722004-11-01 Kim F. Storm <storm@cua.dk>
15273
15274 * man.el (Man-xref-normal-file): Fix help-echo.
15275
152762004-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
15277
15278 * reveal.el (reveal-last-tick): New var.
15279 (reveal-post-command): Use it to avoid closing overlays when we're
15280 appending text to them.
15281
152822004-10-31 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
15283
15284 * textmodes/bibtex.el: Require button.
15285 (bibtex-autokey-transcriptions): Translate TeX `\ ' to space.
15286 (bibtex-reference-keys): Distinguish between header keys and
15287 crossref keys.
15288 (bibtex-beginning-of-field): New function.
15289 (bibtex-url-map): Remove.
15290 (bibtex-font-lock-keywords): Use bibtex-font-lock-crossref.
15291 (bibtex-font-lock-url-regexp): Assume that field names begin at
15292 the beginning of a line.
15293 (bibtex-font-lock-url): Simplify. Do not use bibtex-enclosing-field.
15294 Remove field delimiters. Use bibtex-beginning-of-field.
15295 Bugfix, point can be inside a field with a url.
15296 (bibtex-font-lock-crossref, bibtex-button-action, bibtex-button):
15297 New functions.
15298 (bibtex-mark-active, bibtex-run-with-idle-timer): Remove.
15299 (bibtex-key-in-head): Simplify.
15300 (bibtex-current-line): Use bolp.
15301 (bibtex-parse-keys): Remove unused arg `add'.
15302 Use bibtex-type-in-head and bibtex-key-in-head.
15303 (bibtex-parse-entry, bibtex-autofill-entry):
15304 Use bibtex-type-in-head and bibtex-key-in-head.
15305 (bibtex-autokey-get-field): Do not alter case of replacement text.
15306 (bibtex-autokey-get-names): Do all processing of name list.
15307 (bibtex-autokey-get-year): New function.
15308 (bibtex-autokey-get-title): Do all processing of title words.
15309 (bibtex-generate-autokey): Simplify.
15310 (bibtex-string-files-init): Use default-directory.
15311 Allow for absolute file names in bibtex-string-files.
15312 (bibtex-files, bibtex-file-path): New variables.
15313 (bibtex-files-expand): New function.
15314 (bibtex-find-entry-globally): New command.
15315 (bibtex-summary-function): New variable.
15316 (bibtex-summary): Default value of bibtex-summary-function.
15317 (bibtex-find-crossref): New optional args pnt and split.
15318 (bibtex-complete-key-cleanup): Call bibtex-summary-function.
15319 (bibtex-copy-summary-as-kill): New command bound to C-cC-t.
15320 (bibtex-validate): Fix docstring. Check only abbreviated month fields.
15321 Fix handling of required and alternative fields.
15322 Identify duplicate keys even if bibtex-maintain-sorted-entries is nil.
15323 Use cons and display-buffer.
15324 (bibtex-validate-globally): New command.
15325 (bibtex-clean-entry): Use bibtex-files-expand. Do not call
15326 bibtex-parse-keys and bibtex-parse-strings for updating
15327 bibtex-reference-keys and bibtex-strings.
15328 (bibtex-realign): Remove blank lines past the last entry.
15329 (bibtex-reformat): Use bibtex-entry-format as default.
15330 (bibtex-choose-completion-string): Remove.
15331 (bibtex-complete): Do not use bibtex-choose-completion-string.
15332 (bibtex-url): Simplify.
15333
153342004-10-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
15335
15336 * x-dnd.el (x-dnd-test-function, x-dnd-protocol-alist)
15337 (x-dnd-types-alist, x-dnd-open-file-other-window)
15338 (x-dnd-known-types): Add :version.
15339
153402004-10-31 John Paul Wallington <jpw@gnu.org>
15341
15342 * ibuffer.el (group ibuffer): Add :version keyword.
15343
153442004-10-31 Kim F. Storm <storm@cua.dk>
15345
15346 * ido.el (group ido): Add :version keyword.
15347 (ido-mode): Remove :version keyword.
15348
15349 * emulation/cua-base.el (group cua): Add :version keyword.
15350 (cua-mode): Remove :version keyword.
15351
153522004-10-30 Luc Teirlinck <teirllm@auburn.edu>
15353
15354 * autorevert.el (auto-revert-tail-mode-text): Add :version keyword.
15355
15356 * help-at-pt.el (help-at-pt-timer): Move defvar up to avoid
15357 compiler warning.
15358 (help-at-pt-timer-delay): Add :initialize keyword. Simplify :set
15359 function.
15360 (help-at-pt-display-when-idle): Remove autoload.
15361
153622004-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
15363
15364 * makefile.w32-in (custom-deps, autoloads): Fix *-hooks -> *-hook.
15365
153662004-10-30 Juri Linkov <juri@jurta.org>
15367
15368 * help.el (function-called-at-point):
15369 * help-fns.el (variable-at-point): Read -> intern.
15370
153712004-10-30 Simon Josefsson <jas@extundo.com>
15372
15373 * progmodes/autoconf.el (autoconf-font-lock-keywords):
15374 Recognize AS_* too.
15375
153762004-10-29 Simon Josefsson <jas@extundo.com>
15377
15378 * subr.el (read-passwd): Move back from password.el.
15379
15380 * password.el: Remove, not ready yet.
15381
153822004-10-29 Andreas Schwab <schwab@suse.de>
15383
15384 * speedbar.el (speedbar-frame-parameters): Improve customize type.
15385
153862004-10-29 Sam Steingold <sds@gnu.org>
15387
15388 * mouse.el (mouse-show-mark): Replace the last occurrence of
15389 x-lost-selection-hooks with x-lost-selection-functions.
15390
153912004-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
15392
15393 * mouse.el (mouse-show-mark): Adjust to new name and don't assume
15394 x-lost-selection-functions is bound.
15395
15396 * mouse-sel.el (mouse-sel-mode):
15397 * emacs-lisp/lselect.el: Adjust to new names for
15398 x-(lost|sent)-selection-functions.
15399
15400 * subr.el (x-lost-selection-hooks, x-sent-selection-hooks):
15401 New obsolete aliases of x-lost-selection-functions and
15402 x-sent-selection-functions.
15403
154042004-10-28 Kim F. Storm <storm@cua.dk>
15405
15406 * imenu.el (imenu-scanning-message): Remove.
15407 (imenu-progress-message): Make it a no-op.
15408
154092004-10-28 John Paul Wallington <jpw@gnu.org>
15410
15411 * files.el (set-auto-mode): Call `throw' correctly.
15412
154132004-10-28 Juri Linkov <juri@jurta.org>
15414
15415 * info.el (Info-file-list-for-emacs): Add ("Info" . "info")
15416 to search `Info-...' commands in `info' manual.
15417 (Info-goto-emacs-command-node, Info-goto-emacs-key-command-node):
15418 Add 'info-file "emacs" property.
15419 (Info-find-emacs-command-nodes): Fix index line number regexp.
15420 Set real line number (instead of fake 0) in first element of the
15421 returned list.
15422 (Info-goto-emacs-command-node): Use line number of first element
15423 to set point in the first found Info node.
15424
15425 * progmodes/grep.el (grep-regexp-alist): Move match highlighting
15426 code to `grep-mode-font-lock-keywords'.
15427 (grep-mode-font-lock-keywords): Delete grep markers instead
15428 of making them invisible.
15429
154302004-10-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
15431
15432 * mail/emacsbug.el (report-emacs-bug): Insert x-server-vendor
15433 and x-server-version in bug report.
15434
154352004-10-28 Daniel Pfeiffer <occitan@esperanto.org>
15436
15437 * files.el (set-auto-mode-0): New function.
15438 (set-auto-mode): Use it to handle aliased modes and to
15439 be consistent between C-x C-f and C-x C-w.
15440
154412004-10-28 Kenichi Handa <handa@m17n.org>
15442
15443 * international/utf-8.el (utf-translate-cjk-charsets):
15444 Add katakana-jisx0201.
15445
15446 * international/subst-jis.el: Add data for JISX0201.
15447
154482004-10-27 Stefan Monnier <monnier@iro.umontreal.ca>
15449
15450 * obsolete/hilit19.el (hilit-mode): New function.
15451 Move all the toplevel side-effecting stuff into it, so that loading
15452 hilit19 doesn't mess everything up any more.
15453
154542004-10-27 Richard M. Stallman <rms@gnu.org>
15455
15456 * add-log.el (add-change-log-entry): Set up mailing address
15457 and full name later, and don't alter add-log-mailing-address
15458 or add-log-full-name.
15459
15460 * elide-head.el (elide-head): Change error to message.
15461 (elide-head-show): Likewise.
15462
15463 * apropos.el (apropos-macrop): Doc fix.
15464
15465 * mouse.el (mouse-show-mark): Do most processing the same
15466 regardless of transient-mark-mode.
15467
15468 * shadowfile.el (shadow-copy-files): Use interactive-p
15469 only to control whether to print a message.
15470
15471 * tar-mode.el (tar-mode): Use write-contents-functions,
15472 not write-contents-hooks.
15473
15474 * eshell/em-unix.el (eshell-du-sum-directory): Don't use
15475 directory-sep-char.
15476
154772004-10-27 Richard M. Stallman <rms@gnu.org>
15478
15479 * strokes.el (strokes-unload-hook): Fix previous change.
15480
15481 * type-break.el (type-break-run-at-time): Always use run-at-time;
15482 forget the alternatives.
15483 (type-break-cancel-function-timers): Always use cancel-function-timers;
15484 forget the alternatives.
15485
15486 * pcomplete.el (pcomplete-entries): Don't use directory-sep-char.
15487
154882004-10-27 Kenichi Handa <handa@m17n.org>
15489
15490 * international/subst-jis.el: Use utf-translate-cjk-substitutable-p.
15491
15492 * international/subst-gb2312.el: Likewise.
15493
15494 * international/subst-big5.el: Likewise.
15495
15496 * international/subst-ksc.el: Likewise.
15497
15498 * international/utf-8.el (utf-translate-cjk-unicode-range-string):
15499 New variable.
15500 (utf-translate-cjk-set-unicode-range): New function.
15501 (utf-translate-cjk-unicode-range): Make it customizable.
15502 (utf-8-post-read-conversion):
15503 Use utf-translate-cjk-unicode-range-string.
15504 (ccl-decode-mule-utf-8): Check utf-subst-table-for-decode for more
15505 Unicode ranges.
15506
155072004-10-26 Daniel Pfeiffer <occitan@esperanto.org>
15508
15509 * files.el (auto-mode-alist): Add pod, js, xbm and xpm and group
15510 trivial variants to shorten the list.
15511 (xml-based-modes): New var.
15512 (set-auto-mode): Give interpreter-mode-alist or <?xml or <!DOCTYPE
15513 declaration higher priority than auto-mode-alist.
15514
15515 * find-file.el (cc-other-file-alist): Bring it in line with
15516 cc-mode's auto-mode-alist entries and use \' instead of $.
15517
15518 * textmodes/sgml-mode.el (sgml-mode): Fix imenu-generic-expression
15519 and add "Id" and "Name" submenus to it.
15520
15521 * imenu.el (imenu--generic-function): Skip matches in comments.
15522
155232004-10-26 Jay Belanger <belanger@truman.edu>
15524
15525 * calc/calc.el (calc,full-calc, calc-quit, calc-keypad)
15526 (full-calc-keypad, calc-trail-display): Use an extra argument
15527 instead of `interactive-p'.
15528
15529 * calc/calc-misc.el (calc-other-window): Use an extra argument
15530 instead of `interactive-p'.
15531
15532 * calc/calc-rewr.el (calc-match): Use an extra argument instead of
15533 `interactive-p'.
15534
155352004-10-26 Kim F. Storm <storm@cua.dk>
15536
15537 * help.el (describe-key): Describe both down-event and up-event
15538 for a mouse click.
15539
155402004-10-26 Richard M. Stallman <rms@gnu.org>
15541
15542 * woman.el (woman): Don't call interactive-p.
15543
15544 * pcomplete.el (pcomplete): Instead of interactive-p,
15545 use an arg set non-nil by the interactive spec.
15546
15547 * menu-bar.el (menu-bar-make-toggle): Instead of interactive-p,
15548 use an arg set non-nil by the interactive spec.
15549
15550 * man.el (Man-cleanup-manpage): Instead of interactive-p,
15551 use an arg set non-nil by the interactive spec.
15552
155532004-10-26 Pavel Kobiakov <pk_at_work@yahoo.com>
15554
15555 * progmodes/flymake.el (flymake-split-string):
15556 Use `flymake-split-string-remove-empty-edges' in any case.
15557
155582004-10-26 Masatake YAMATO <jet@gyve.org>
15559
15560 * progmodes/flymake.el (flymake-err-line-patterns):
15561 Use `compilation-error-regexp-alist-alist' instead of
15562 `compilation-error-regexp-alist'.
15563
155642004-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
15565
15566 * textmodes/tex-mode.el (tex-font-lock-keywords-1): Fix up the spurious
15567 verbatim face on the \ of \end{verbatim}.
15568
155692004-10-25 Jay Belanger <belanger@truman.edu>
15570
15571 * calc/calc-incom.el (calc-digit-dots): Inhibit read-only before
15572 erasing minibuffer.
15573
155742004-10-25 Simon Josefsson <jas@extundo.com>
15575
15576 * subr.el (read-passwd): Move to net/password.el.
15577
15578 * net/password.el (read-passwd): Add. Autoload it.
15579
155802004-10-25 Kai Grossjohann <kai.grossjohann@gmx.net>
15581
15582 * mouse-sel.el (mouse-sel-mode): Specify custom group.
15583
15584 * simple.el (process-file): Fix logic.
15585
155862004-10-24 Luc Teirlinck <teirllm@auburn.edu>
15587
15588 * indent.el (set-left-margin, set-right-margin): Delete redundant code.
15589 (increase-right-margin): Remove erroneous call to `interactive-p'.
15590
155912004-10-24 Kim F. Storm <storm@cua.dk>
15592
15593 * help.el (describe-mode): Fix 2004-10-13 change.
15594 Copy pure "Auto Fill" string so it can be propertized later
15595 without causing a read-only error.
15596
155972004-10-24 Luc Teirlinck <teirllm@auburn.edu>
15598
15599 * info.el (Info-find-emacs-command-nodes): Adapt to Texinfo-4.7
15600 style indexes.
15601
156022004-10-24 Kai Grossjohann <kai.grossjohann@gmx.net>
15603
15604 * simple.el (process-file): Accept nil for INFILE. Reported by
15605 Luc Teirlinck.
15606
156072004-10-24 Masatake YAMATO <jet@gyve.org>
15608
15609 * progmodes/gdb-ui.el (gdb-assembler-font-lock-keywords):
15610 Handle periods and underscores in a function name.
15611 Remove the address fontification.
15612
156132004-10-24 Masatake YAMATO <jet@gyve.org>
15614
15615 * progmodes/asm-mode.el (asm-font-lock-keywords):
15616 Use font-lock-variable-name-face for registers.
15617
156182004-10-24 Nick Roberts <nickrob@snap.net.nz>
15619
15620 * progmodes/gdb-ui.el (gdb-get-create-buffer): Allow modes to run
15621 kill-all-local-variables.
15622 (gdb-breakpoints-mode, gdb-frames-mode, gdb-threads-mode)
15623 (gdb-registers-mode, gdb-locals-mode, gdb-assembler-mode):
15624 Use kill-all-local-variables and provide mode-hooks.
15625 (gdb-assembler-font-lock-keywords): New font lock keywords definition.
15626 (gdb-assembler-mode): Use 'gdb-assembler-font-lock-keywords'.
15627 Suggested by Masatake YAMATO <jet@gyve.org>.
15628
156292004-10-23 Kai Grossjohann <kai.grossjohann@gmx.net>
15630
15631 * simple.el (process-file): New function, similar to call-process
15632 but supports file handlers.
15633 * vc.el (vc-do-command): Use it, instead of call-process.
15634 * net/tramp-vc.el (vc-do-command): Do not advise it if
15635 process-file is fboundp.
15636 * net/tramp.el (tramp-file-name-handler-alist): Add entry for
15637 process-file.
15638 (tramp-handle-process-file): New function.
15639 (tramp-file-name-for-operation): Support process-file.
15640
156412004-10-23 Ulf Jasper <ulf.jasper@web.de>
15642
15643 * calendar/icalendar.el (icalendar--weekday-array): New constant.
15644 (icalendar-weekdayabbrev-table)
15645 (icalendar-monthnumber-table): Delete.
15646 (icalendar--get-month-number): Use calendar-month-name-array.
15647 (icalendar--get-weekday-number): New function.
15648 (icalendar--get-weekday-abbrev) Use calendar-day-name-array.
15649 (icalendar-export-region): Handle multi-line entries.
15650 (icalendar--convert-ical-to-diary): Use calendar-day-name-array.
15651
156522004-10-23 John Paul Wallington <jpw@gnu.org>
15653
15654 * ibuffer.el (ibuffer-find-file): Remove `interactive-p' call;
15655 `wildcards' set to t in interactive spec.
15656
15657 * ibuf-ext.el (ibuffer-jump-to-buffer): Read buffer name in
15658 interactive spec rather than use `interactive-p'.
15659 (ibuffer-kill-line): Set arg `interactive-p' in interactive spec
15660 rather than use function `interactive-p'.
15661
156622004-10-21 Jay Belanger <belanger@truman.edu>
15663
15664 * calc/calc-aent.el (calc-alg-ent-map, calc-alg-ent-esc-map):
15665 Declare these variables with defvar.
15666
15667 * calc/calc-aent.el (calc-do-alg-entry): Since `calc-alg-ent-map'
15668 is bound, only check to see if it is bound.
15669
156702004-10-21 Stefan Monnier <monnier@iro.umontreal.ca>
15671
15672 * textmodes/tex-mode.el (tex-compilation-parse-errors):
15673 Don't output messages.
15674
15675 * calc/calc-help.el (calc-describe-bindings): Fix last change.
15676
156772004-10-21 John Paul Wallington <jpw@gnu.org>
15678
15679 * calc/calc-graph.el (calc-graph-init):
15680 Use `set-process-query-on-exit-flag'.
15681
156822004-10-21 Daniel Pfeiffer <occitan@esperanto.org>
15683
15684 * progmodes/compile.el (compilation-start): Rely on `cd' to get
15685 dir right and also allow argumentless cd.
15686
156872004-10-19 Richard M. Stallman <rms@gnu.org>
15688
15689 * textmodes/flyspell.el (flyspell-mode): Doc fix.
15690
15691 * eshell/em-unix.el (eshell-grep):
15692 Don't bind compilation-process-setup-function.
15693
15694 * comint.el (comint-insert-input): Use @ in `interactive'.
15695 (comint-input-filter-functions): Doc fix.
15696 (comint-kill-whole-line, comint-get-source): Doc fix.
15697
15698 * progmodes/compile.el (compilation-setup):
15699 Don't set buffer-read-only if MINOR is non-nil.
15700
157012004-10-19 Jay Belanger <belanger@truman.edu>
15702
15703 * calc/calc.el (calc-emacs-type-19, calc-emacs-type-epoch)
15704 (calc-emacs-type-gnu19): Remove.
15705 (calc-digit-map, calc-read-key-sequence, calc-read-key):
15706 Remove check for old emacs versions.
15707
15708 * calc/calc-ext.el (calc-fancy-prefix): Remove emacs version check.
15709 (calc-init-extensions): Define `calc-alg-map' and `calc-alg-esc-map'
15710 for current Emacs.
15711
15712 * calc/calc-aent.el (calcAlg-previous): Check to see if looking at
15713 the end of the minibuffer.
15714 (calc-do-alg-entry): Remove Emacs version check. Use `copy-keymap' to
15715 copy `esc-map'.
15716
15717 * calc/calc-graph.el (calc-graph-plot): Remove emacs version check.
15718
15719 * calc/calc-mode.el (calc-total-algebraic-mode): Remove error
15720 call that would be given when the current emacs was used.
15721
157222004-10-19 Ulf Jasper <ulf.jasper@web.de>
15723
15724 * calendar/icalendar.el: Set coding to utf-8.
15725 (icalendar-version): Increase to 0.07.
15726 (icalendar-monthnumber-table): Change March pattern.
15727 (icalendar-get-all-event-properties)
15728 (icalendar-set-event-property): Delete.
15729 (icalendar-all-events): No longer interactive.
15730 (icalendar-convert-diary-to-ical)
15731 (icalendar-extract-ical-from-buffer): Make obsolete, and alias to
15732 their replacements.
15733 (icalendar-export-file, icalendar-export-region): New functions;
15734 essentially old `icalendar-convert-diary-to-ical' but appending to
15735 target rather than overwriting.
15736 (icalendar-import-file): Append to target file rather than
15737 overwriting. Fourth arg deleted.
15738 (icalendar-import-buffer): New name for old
15739 `icalendar-extract-ical-from-buffer'.
15740 (icalendar--convert-string-for-import): New name for
15741 old `icalendar-convert-for-import'.
15742 (include-icalendar-files): Delete.
15743 Prefix for all internal functions changed from `icalendar-'
15744 to `icalendar--'.
15745
157462004-10-19 Richard M. Stallman <rms@gnu.org>
15747
15748 * paths.el (news-path): Fix previous change.
15749
157502004-10-18 Jay Belanger <belanger@truman.edu>
15751
15752 * calc/calc-help.el (calc-describe-bindings):
15753 Set `buffer-read-only' to nil while working in the keybindings buffer;
15754 remove some extra information from the keybindings buffer.
15755
157562004-10-18 David Ponce <david@dponce.com>
15757
15758 * mouse.el (mouse-drag-move-window-top): New function.
15759 (mouse-drag-mode-line-1): Use it.
15760
157612004-10-18 Thien-Thi Nguyen <ttn@gnu.org>
15762
15763 * info.el (Info-fontify-node): For multiline refs,
15764 arrange to unfontify newline and surrounding whitespace.
15765
157662004-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
15767
15768 * vc-arch.el (vc-arch-workfile-version): Don't burp if the patch-log
15769 directory is missing.
15770
157712004-10-17 John Paul Wallington <jpw@gnu.org>
15772
15773 * ibuffer.el (ibuffer-default-display-maybe-show-predicates):
15774 New customizable variable; whether to display buffers that match
15775 `ibuffer-maybe-show-predicates' by default.
15776 (ibuffer-maybe-show-predicates): Mention it in docstring.
15777 (ibuffer-display-maybe-show-predicates): New variable.
15778 (ibuffer-update): Prefix arg now toggles whether buffers that
15779 match `ibuffer-maybe-show-predicates' should be displayed.
15780 (ibuffer-mode): Set `ibuffer-display-maybe-show-predicates'
15781 locally to heed `ibuffer-default-display-maybe-show-predicates'.
15782 (ibuffer-redisplay-engine): Rename optional second arg to `ignore'.
15783
157842004-10-17 Michael Albinus <michael.albinus@gmx.de>
15785
15786 * net/tramp.el: Redo sync with Tramp 2.0.45. Last commit did not
15787 work correctly.
15788
157892004-10-17 Daniel Pfeiffer <occitan@esperanto.org>
15790
15791 * buff-menu.el (Buffer-menu-revert-function): Emulate save-excursion.
15792 (Buffer-menu-beginning): New helper function.
15793 (Buffer-menu-execute): Use it.
15794 (Buffer-menu-select): Use it.
15795 (Buffer-menu-sort): Use it and also keep markers.
15796
157972004-10-17 Richard M. Stallman <rms@gnu.org>
15798
15799 * paths.el (news-directory): Rename from news-path. Old name alias.
15800 (rmail-spool-directory): Use defvar.
15801 (sendmail-program): Use defcustom.
15802 (remote-shell-program): Use defcustom.
15803 (term-file-prefix): Use defvar.
15804 (abbrev-file-name): Use defvar.
15805
15806 * term.el: Add maintainer.
15807
15808 * subr.el (with-local-quit): Return nil if there's a quit.
15809 (read-passwd): Use with-local-quit. Doc fix.
15810
15811 * strokes.el (strokes-list-strokes): Don't try to delete char at eob.
15812 (strokes-unload-hook): Set as a variable with add-hook.
15813
15814 * startup.el (fancy-splash-tail, normal-splash-screen):
15815 Update copyright year.
15816
15817 * shadowfile.el (shadowfile-unload-hook): Set as variable w/ add-hook.
15818
15819 * server.el (server-unload-hook): Set as a variable with add-hook.
15820
15821 * help-at-pt.el (help-at-pt-unload-hook): Use add-hook; no defvar.
15822
15823 * frame.el (special-display-popup-frame):
15824 Make the buffer current as its frame is created.
15825
15826 * delsel.el (delsel-unload-hook): Set as a variable.
15827
15828 * comint.el (comint-output-filter-functions):
15829 Add comint-watch-for-password-prompt.
15830 (comint-read-noecho): Function deleted.
15831 (send-invisible): Use read-passwd.
15832
15833 * fringe.el (fringe-mode-initialize): New function.
15834 (fringe-mode): Use fringe-mode-initialize as :initialize.
15835
158362004-10-17 Kim F. Storm <storm@cua.dk>
15837
15838 * language/indian.el (indian-script-language-alist): Swap value
15839 and doc.
15840 (indian-font-char-index-table): Doc fix.
15841
158422004-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
15843
15844 * vc-hooks.el (vc-find-file-hook): Call vc-backend with absolute name.
15845
158462004-10-16 Juri Linkov <juri@jurta.org>
15847
15848 * progmodes/compile.el (compilation-start): Move let-binding of
15849 `process-environment' into `with-current-buffer' body.
15850 Reported by Matt Hodges <MPHodges@member.fsf.org>.
15851
158522004-10-16 Richard M. Stallman <rms@gnu.org>
15853
15854 * pcvs-util.el (cvs-bury-buffer):
15855 Don't call get-buffer-window for effect.
15856
15857 * outline.el (hide-other): Call outline-up-heading with INVISIBLE-OK=t.
15858
15859 * newcomment.el (comment-auto-fill-only-comments): Add autoload.
15860
15861 * msb.el (msb-unload-hook): Set the variable.
15862
15863 * mouse.el (mouse-yank-at-click, mouse-yank-secondary):
15864 Use * to err if buffer is readonly.
15865
15866 * subr.el (looking-back): Return only t or nil.
15867
15868 * whitespace.el (whitespace-unload-hook): Set the variable.
15869
15870 * view.el (view-mode-enable): Set view-page-size and
15871 view-half-page-size to nil.
15872 (view-set-half-page-size-default): view-half-page-size = nil
15873 means the default.
15874 (View-scroll-page-forward): Use view-page-size-default.
15875 (View-scroll-page-backward): Likewise.
15876 (view-page-size, view-half-page-size): Doc fixes.
15877
15878 * emacs-lisp/elp.el (elp-unload-hook): Set the variable.
15879
15880 * emacs-lisp/cl.el (cl-unload-hook): Don't defvar it, just set it.
15881
15882 * emacs-lisp/bytecomp.el (byte-compile-eval): Don't process
15883 "cl" like other files. Instead, call byte-compile-find-cl-functions.
15884 (byte-compile-log-1): Bind inhibit-read-only.
15885 (byte-compile-warning-prefix, byte-compile-log-file): Likewise.
15886 (byte-compile-log-warning): Likewise.
15887 (byte-compile-file-form-require): Detect "cl" from the arg value.
15888
15889 * progmodes/compile.el (compilation-start): Assume compilation-mode
15890 will make the buffer read-only.
15891 (compilation-mode): Take arg name-of-mode.
15892 (compilation-setup): Make buffer read-only.
15893 (compilation-handle-exit): Bind inhibit-read-only.
15894
15895 * textmodes/ispell.el (ispell-command-loop): Use with-no-warnings.
15896 (ispell-message): Likewise.
15897 (ispell-show-choices): Don't call get-buffer-window uselessly.
15898 (ispell-init-process): Use set-process-query-on-exit-flag.
15899
159002004-10-16 Kim F. Storm <storm@cua.dk>
15901
15902 * fringe.el (fringe-bitmaps): Only initialize when defined.
15903
15904 * pcvs.el (cvs-mode-view-file, cvs-mode-view-file-other-window): Add.
15905 (cvs-mode-find-file): Add optional `view' arg to enter view mode.
15906
15907 * pcvs-defs.el (cvs-mode-map): Bind v to cvs-mode-view-file.
15908
159092004-10-15 Simon Josefsson <jas@extundo.com>
15910
15911 * net/password.el: Add.
15912
159132004-10-14 Masatake YAMATO <jet@gyve.org>
15914
15915 * progmodes/gud.el (gdb-script-beginning-of-defun): New function.
15916 (gdb-script-end-of-defun): New function.
15917 (gdb-script-mode): Use `gdb-script-beginning-of-defun' and
15918 `gdb-script-end-of-defun' as *-of-defun-function.
15919
159202004-10-13 Daniel Pfeiffer <occitan@esperanto.org>
15921
15922 * button.el (button-activate): Allow a marker to display as an action.
15923
15924 * help-fns.el (describe-variable): Use it to make "below" a hyperlink.
15925
15926 * help.el (describe-mode): Use it to make minor mode list into
15927 hyperlinks.
15928
159292004-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
15930
15931 * vc.el (vc-annotate-display-select): Fix typo.
15932
15933 * subr.el (substitute-key-definition-key): New function.
15934 (substitute-key-definition): Use it with map-keymap.
15935 (event-modifiers): Use push.
15936 (mouse-movement-p, with-temp-buffer): Simplify.
15937
159382004-10-12 Jay Belanger <belanger@truman.edu>
15939
15940 * calc/calc-help.el (calc-help-function-list, calc-help-variable-list):
15941 New variables.
15942 (calc-help-index-entries): New function.
15943 (calc-describe-function): Use `calc-help-function-list' instead of
15944 obarray for completion.
15945 (calc-describe-variable): Use `calc-help-variable-list' instead
15946 of obarray for completion.
15947
159482004-10-12 Richard M. Stallman <rms@gnu.org>
15949
15950 * info-look.el (info-lookup-file): Add info-file property.
15951 (info-lookup-symbol): Likewise.
15952
15953 * info.el (info-xref): Add underlining.
15954 (info): Add info-file property.
15955 (Info-find-emacs-command-nodes): Specify case-sensitive search.
15956
159572004-10-12 Michael Albinus <michael.albinus@gmx.de>
15958
15959 Sync with Tramp 2.0.45.
15960
15961 * net/tramp.el (top): Apply `def-edebug-spec' only if function is
15962 defined. This is not the case for XEmacs without package "edebug".
15963 (tramp-set-auto-save-file-modes): Set permissions of autosaved
15964 remote files to the permissions of the original file. This is not
15965 the case for Emacs < 21.3.50 and XEmacs < 21.5. Add function to
15966 `auto-save-hook'. Reported by Thomas Prokosch <thomas@nadev.net>.
15967 (tramp-perl-decode): Fix an error in Perl implementation.
15968 $pending must be cleared every loop. Reported by Benjamin Place
15969 <benjaminplace@sprintmail.com>
15970
15971 * net/tramp-smb.el (tramp-smb-advice-PC-do-completion):
15972 Don't activate advice during definition. This is done later on,
15973 depending on test result of `substitute-in-file-name'.
15974 Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
15975
159762004-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
15977
15978 * pcvs-parse.el (cvs-parse-commit): Fix parsing for new commit message.
15979
15980 * emacs-lisp/lisp.el (mark-sexp): Preserve direction when repeating.
15981
159822004-10-12 David Ponce <david@dponce.com>
15983
15984 * recentf.el (recentf-edit-list): Update the menu when the recentf
15985 list has been modified.
15986
159872004-10-12 Simon Josefsson <jas@extundo.com>
15988
15989 * net/tls.el (tls-certtool-program): New variable.
15990 (tls-certificate-information): New function, based on
15991 ssl-certificate-information.
15992
159932004-10-12 Kenichi Handa <handa@m17n.org>
15994
15995 * international/mule.el (coding-system-equal): Move from mule-util.el.
15996
15997 * international/mule-util.el (coding-system-equal): Move to mule.el.
15998
159992004-10-12 Kim F. Storm <storm@cua.dk>
16000
16001 * kmacro.el (kmacro-insert-counter, kmacro-add-counter): Use and
16002 reset kmacro-initial-counter-value if set.
16003 (kmacro-set-counter): Only set kmacro-counter if defining or executing
16004 macro. Set kmacro-initial-counter-value otherwise. Never set both.
16005 (kmacro-display): Show macro counter if non-zero.
16006
16007 * subr.el (substitute-key-definition): Mention command remapping
16008 in doc string.
16009
160102004-10-11 Jay Belanger <belanger@truman.edu>
16011
16012 * calc/calc-misc.el (calc-info-goto-node): New function.
16013 (calc-tutorial, calc-info-summary): Go to appropriate Calc info
16014 node in one step.
16015 (calc-describe-copying, calc-describe-distribution)
16016 (calc-describe-thing, calc-describe-no-warranty, calc-describe-key):
16017 Go to appropriate info node in one step.
16018
160192004-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
16020
16021 * pcvs-defs.el (pcl-cvs-load-hook): Remove unused var.
16022
16023 * font-lock.el (font-lock-apply-highlight): Fix last change.
16024
160252004-10-11 Simon Josefsson <jas@extundo.com>
16026
16027 * mail/smtpmail.el (smtpmail-open-stream): Look for
16028 starttls-gnutls-program instead of starttls-program iff
16029 starttls-use-gnutls is non-nil.
16030 (smtpmail-open-stream): Don't overwrite user settings of
16031 starttls-extra-arguments and starttls-extra-args.
16032
160332004-10-10 Stefan Monnier <monnier@iro.umontreal.ca>
16034
16035 * comint.el (comint-mouse-insert-input): Remove.
16036 (comint-insert-input): Make it work for mouse bindings.
16037 (comint-mode-map): Move defs into the declaration.
16038 (comint-output-filter): Typo.
16039
16040 * diff-mode.el (diff-current-defun): Fix 2004-06-13's change.
16041
160422004-10-10 Kai Grossjohann <kai.grossjohann@gmx.net>
16043
16044 * net/ange-ftp.el (ange-ftp-remote-shell): Remove variable.
16045 (ange-ftp-call-chmod): Reference remote-shell-program instead of
16046 ange-ftp-remote-shell.
16047
160482004-10-10 Andreas Schwab <schwab@suse.de>
16049
16050 * emacs-lisp/byte-opt.el (byte-optimize-backward-word): Optimize
16051 `(backward-word)' to `(forward-word -1)', not `(forward-char -1)'.
16052 Reported by <sri@asu.edu>.
16053
160542004-10-10 Benjamin Rutt <brutt@bloomington.in.us>
16055
16056 * vc.el (vc-annotate-mode): Remove variable.
16057 (vc-annotate-display-select): Only call vc-annotate-mode
16058 if we're not in that mode already.
16059
160602004-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
16061
16062 * imenu.el (imenu--completion-buffer): Don't return t for rescan.
16063 (imenu-choose-buffer-index): Check here for rescan instead.
16064
16065 * font-lock.el (font-lock-apply-highlight): Explicitly check the case
16066 where the face expression evals to nil.
16067
16068 * textmodes/tex-mode.el (tex-font-lock-append-prop): New fun.
16069 (tex-font-lock-keywords-2): Use it.
16070 (tex-font-lock-syntactic-keywords): Fix the `verbatim' treatment.
16071
16072 * emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix backslashes.
16073
160742004-10-09 Kim F. Storm <storm@cua.dk>
16075
16076 * subr.el (progress-reporter-update): Define before first usage.
16077 (make-progress-reporter): Doc fix.
16078
160792004-10-09 Luc Teirlinck <teirllm@auburn.edu>
16080
16081 * textmodes/paragraphs.el (sentence-end-double-space)
16082 (sentence-end-without-period, sentence-end-without-space)
16083 (sentence-end): Doc fixes.
16084
160852004-10-08 Peter Seibel <peter@javamonkey.com> (tiny change)
16086
16087 * emacs-lisp/lisp-mode.el (lisp-fill-paragraph):
16088 Change paragraph-start regexp so we don't fill code starting with #'(.
16089
160902004-10-08 Sebastien Kirche <seki@seki.fr> (tiny change)
16091
16092 * mail/mail-extr.el (mail-extr-ignore-realname-equals-mailbox-name):
16093 New defcustom.
16094 (extract-address-components): Use it.
16095
160962004-10-08 Paul Pogonyshev <pogonyshev@gmx.net>
16097
16098 * subr.el (make-progress-reporter, progress-reporter-update)
16099 (progress-reporter-force-update, progress-reporter-do-update)
16100 (progress-reporter-done): New functions.
16101
16102 * tar-mode.el (tar-summarize-buffer): Use progress reporter.
16103
16104 * progmodes/etags.el (etags-tags-completion-table): Use progress
16105 reporter.
16106 (etags-tags-apropos): Likewise.
16107
161082004-10-08 Alan Mackenzie <acm@muc.de>
16109
16110 * isearch.el (isearch-yank-line): C-y yanks to next EOL, not end
16111 of current line.
16112
161132004-10-08 Masatake YAMATO <jet@gyve.org>
16114
16115 * server.el (server-process-filter): Wrap `process-send-region'
16116 by `condition-case' to guard the case when the pipe to PROC is closed.
16117
161182004-10-07 Mark A. Hershberger <mah@everybody.org>
16119
16120 * xml.el (xml-substitute-special): Limit handling of external entities.
16121
161222004-10-06 Nick Roberts <nickrob@snap.net.nz>
16123
16124 * progmodes/gdb-ui.el (gdb-ann3): (Re-)initialize gdb-input-queue.
16125
161262004-10-06 John Paul Wallington <jpw@gnu.org>
16127
16128 * xml.el (xml-parse-dtd): Fix `error' call.
16129
161302004-10-05 Mark A. Hershberger <mah@everybody.org>
16131
16132 * xml.el (xml-substitute-special): Return a single string instead
16133 of a list of strings if an entity substitution is made.
16134
161352004-10-05 Ulf Jasper <ulf.jasper@web.de>
16136
16137 * calendar/icalendar.el: New file.
16138
161392004-10-05 Juri Linkov <juri@jurta.org>
16140
16141 * isearch.el (isearch-done): Set mark after running hook.
16142 Reported by Drew Adams <drew.adams@oracle.com>.
16143
16144 * info.el (Info-history, Info-toc): Fix Info headers.
16145 (Info-toc): Narrow buffer before Info-fontify-node.
16146 (Info-build-toc): Don't check for special Info file names.
16147 Set main-file to nil if Info-find-file returns a symbol.
16148
161492004-10-05 Emilio C. Lopes <eclig@gmx.net>
16150
16151 * calendar/calendar.el (calendar-goto-iso-week): Add autoload.
16152 (calendar-mode-map): Add binding for `calendar-goto-iso-week'.
16153 * calendar/cal-menu.el (calendar-mode-map): Ditto.
16154
161552004-10-05 Glenn Morris <gmorris@ast.cam.ac.uk>
16156
16157 * calendar/cal-iso.el (calendar-iso-read-args): New function,
16158 for old interactive spec from calendar-goto-iso-date.
16159 (calendar-goto-iso-date): Use it.
16160 (calendar-goto-iso-week): New function. Suggested by Emilio
16161 C. Lopes <eclig@gmx.net>.
16162
161632004-10-04 Luc Teirlinck <teirllm@auburn.edu>
16164
16165 * textmodes/enriched.el (enriched-mode-map): Give `set-left-margin' and
16166 `set-right-margin' bindings that follow the minor mode conventions.
16167
161682004-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
16169
16170 * textmodes/tex-mode.el (tex-dvi-view-command): Use `yap' on w32.
16171 (tex-font-lock-keywords-1): Add url and nolinkurl for args with `_'.
16172 (latex-block-args-alist): Add minipage and picture.
16173 (latex-block-body-alist): Use reftex-label if enabled.
16174 (latex-insert-block): Don't insert a \n if not necessary.
16175 (tex-compile-commands): Make sure dvips doesn't send to printer.
16176 (tex-compile-default): Handle the case where no executable is found.
16177 (latex-noindent-environments): New var.
16178 (latex-find-indent): Use it. Take an empty line as an arg-breaker.
16179 If tex-indent-allhanging is non-nil, make sure we only align for macros
16180 at beginning of line.
16181
161822004-10-03 Daniel Pfeiffer <occitan@esperanto.org>
16183
16184 * newcomment.el (comment-beginning): Doc fix and don't choke on
16185 unset `comment-end-skip' when at beginning of comment.
16186
161872004-10-02 Dan Nicolaescu <dann@ics.uci.edu>
16188
16189 * term.el (term-adjust-current-row-cache): Don't allow the current
16190 row to become negative.
16191 (term-emulate-terminal): Fix insert mode. Handle tab insertion at
16192 the end of the line. Fix scroll down. Add comments.
16193 (term-handle-ansi-escape): Don't exceed terminal width when moving
16194 right.
16195 (term-scroll-region): Move the cursor after setting the scroll region.
16196
161972004-10-01 Luc Teirlinck <teirllm@auburn.edu>
16198
16199 * indent.el (set-left-margin, set-right-margin): Rename `lm' arg
16200 to `width' for consistency with docstring. Doc fix.
16201
162022004-10-01 Martin Stjernholm <bug-cc-mode@gnu.org>
16203
16204 * progmodes/cc-langs.el: Load cl here since cc-defs doesn't do it.
16205 This is necessary for derived modes.
16206
162072004-09-30 Kim F. Storm <storm@cua.dk>
16208
16209 * kmacro.el (kmacro-lambda-form, kmacro-extract-lambda): Add.
16210 (kmacro-bind-to-key, kmacro-name-last-macro): Use kmacro-lambda-form.
16211
16212 * edmacro.el: Require kmacro to use the new kmacro-lambda-form and
16213 kmacro-extract-lambda functions.
16214 (edit-kbd-macro): Handle kmacro lambda forms.
16215 Include counter and counter format in edit buffer.
16216 (edmacro-finish-edit): Get counter and format from edit buffer and
16217 update kmacro bindings when found.
16218
162192004-09-29 Luc Teirlinck <teirllm@auburn.edu>
16220
16221 * textmodes/paragraphs.el (forward-paragraph):
16222 Avoid args-out-of-range error when point winds up at the beginning of
16223 the buffer and hard newlines are enabled.
16224
16225 * newcomment.el (comment-multi-line): Doc fix.
16226
162272004-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
16228
16229 * diff-mode.el (diff-file-header-re): Tighten up regexp a tiny bit.
16230 (diff-fixup-modifs): Catch unified-diff file-headers.
16231
162322004-09-29 Kim F. Storm <storm@cua.dk>
16233
16234 * progmodes/gdb-ui.el (breakpoint): Define as fringe bitmap.
16235 (gdb-mouse-toggle-breakpoint): Fix fringe-bitmaps-at-pos usage.
16236 (gdb-put-breakpoint-icon): Use breakpoint bitmap.
16237
16238 * fringe.el (fringe-bitmap-p): New macro.
16239 (fringe-bitmaps): Add standard fringe bitmaps on load.
16240
162412004-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
16242
16243 * dired.el (dired-view-command-alist): Use more efficient regexps.
16244 Remove dubious arguments.
16245 (dired-align-file): New function.
16246 (dired-insert-directory): Use it.
16247 (dired-move-to-end-of-filename): Make the " -> " search more specific.
16248 (dired-buffers-for-dir): Remove unused var `pattern'.
16249
162502004-09-28 Matthew Mundell <matt@mundell.ukfsn.org>
16251
16252 * calendar/diary-lib.el (list-diary-entries): Save diary buffer
16253 from diary display excursion. Store diary buffer's point for
16254 `simple-diary-display'.
16255 (simple-diary-display): Set window point and start when
16256 displaying buffer, to preserve point.
16257
162582004-09-27 Luc Teirlinck <teirllm@auburn.edu>
16259
16260 * textmodes/enriched.el (enriched-translations): Replace defconst
16261 with defvar.
16262
162632004-09-26 Vinicius Jose Latorre <viniciusjl@ig.com.br>
16264
16265 * printing.el: Doc fix.
16266 (pr-version): New version number (6.8.1).
16267 (pr-ps-file-using-ghostscript): Use make-temp-file instead of
16268 make-temp-name.
16269 (pr-delete-file): Check if file exists before deleting it.
16270 Reported by Lennart Borgman <lennart.borgman.073@student.lu.se>.
16271
162722004-09-26 Stefan Monnier <monnier@iro.umontreal.ca>
16273
16274 * term.el (term-display-table): New variable.
16275 (term-mode): Use it.
16276 (term-exec-1): Set the coding system to binary.
16277 (term-emulate-terminal): Decode the string before inserting it.
16278
162792004-09-26 Dan Nicolaescu <dann@ics.uci.edu>
16280
16281 * term.el (term-ansi-at-eval-string, term-ansi-default-fg)
16282 (term-ansi-default-bg, term-ansi-current-temp): Delete unused vars.
16283 (map): Bind S-prior, S-next and S-insert.
16284 (term-mode): Set `indent-tabs-mode' to nil.
16285 (term-paste): New function to be bound to S-insert.
16286 (term-send-del, term-send-backspace): Change the strings sent.
16287 (term-termcap-format): Synchronize with etc/e/eterm.ti.
16288 (term-handle-colors-array): Fix handling of underline and reverse.
16289 (term-handle-ansi-escape): Do not handle smcup/rmcup. Add comments.
16290 (term-erase-in-line): Fix comparison.
16291 (term-emulate-terminal): Fix line wrap handling.
16292 (term-start-output-log): Rename from `term-set-output-log'.
16293 (term-stop-output-log): Rename from `term-stop-photo'.
16294 (term-switch-to-alternate-sub-buffer): Comment out, unused.
16295
162962004-09-25 Stefan Monnier <monnier@iro.umontreal.ca>
16297
16298 * dired.el (dired-move-to-filename): Don't output a message if
16299 raise-error is non-nil. Fix return position and value.
16300
16301 * files.el (insert-directory): Obey --dired even with symlinks.
16302
163032004-09-25 Lars Hansen <larsh@math.ku.dk>
16304
16305 * ls-lisp.el (ls-lisp-format): Mark file names with property
16306 dired-filename.
16307
163082004-09-25 Kim F. Storm <storm@cua.dk>
16309
16310 * ido.el (ido-max-directory-size): New defcustom.
16311 (ido-decorations): Add "too big" element.
16312 (ido-directory-too-big): New dynamic var.
16313 (ido-may-cache-directory): Don't cache big directories.
16314 (ido-directory-too-big-p): New defun.
16315 (ido-set-current-directory): Update ido-directory-too-big.
16316 (ido-read-internal): Make empty ido-cur-item if too-big.
16317 (ido-buffer-internal): Use ido-read-internal directly instead of
16318 ido-read-buffer.
16319 (ido-file-internal): Init ido-directory-too-big.
16320 (ido-complete): <TAB> If ido-directory-too-big is set, clear it,
16321 and redo completion with full list.
16322 (ido-toggle-ignore): <C-a> If ido-directory-too-big is set, clear
16323 it, and show completions.
16324 (ido-all-completions): Let bind ido-directory-too-big to nil.
16325 (ido-exhibit): Handle ido-directory-too-big.
16326 (ido-read-buffer): Handle fallback to read-buffer.
16327 Init ido-directory-too-big.
16328 (ido-read-file-name, ido-read-directory-name, ido-completing-read):
16329 Init ido-directory-too-big.
16330
163312004-09-24 Luc Teirlinck <teirllm@auburn.edu>
16332
16333 * subr.el (delay-mode-hooks): Doc fix.
16334
163352004-09-23 Luc Teirlinck <teirllm@auburn.edu>
16336
16337 * textmodes/enriched.el
16338 (enriched-default-text-properties-local-flag): New variable.
16339 (enriched-mode): Make sure that enabling and disabling the mode is
16340 a no-op. Doc fix.
16341
163422004-09-23 H,Ae(Bkon Malmedal <hmalmedal@yahoo.no> (tiny change)
16343
16344 * calendar/holidays.el (holiday-advent): Report on a specified day
16345 offset from advent, not just advent.
16346 (holiday-easter-etc): Report on one specified day offset from
16347 easter, not all easter holidays. Various Easter holidays moved to
16348 `christian-holidays' variable in calendar.el.
16349 * calendar/calendar.el (christian-holidays): Adapt for new
16350 behavior of `holiday-advent' and `holiday-easter-etc' functions.
16351
163522004-09-23 Kim F. Storm <storm@cua.dk>
16353
16354 * image.el (insert-sliced-image): Add doc string.
16355
16356 * ido.el (ido-choice-list): New dynamic var for `list' context.
16357 (ido-context-switch-command): New dynamic var.
16358 (ido-define-mode-map): Generalize switch between file/buffer contexts.
16359 (ido-read-internal): Handle new `list' context.
16360 Handle insert-buffer and insert-file ido-exit values.
16361 (ido-buffer-internal): New arg switch-cmd. Use it to setup
16362 ido-context-switch-command. Handle insert-file ido-exit value.
16363 (ido-read-buffer): Set ido-context-switch-command to 'ignore
16364 unless it is already bound by caller.
16365 (ido-file-internal): New arg switch-cmd. Use it to setup
16366 ido-context-switch-command. Handle insert-buffer ido-exit value.
16367 (ido-enter-insert-buffer, ido-enter-insert-file): New commands
16368 used for context switching.
16369 (ido-all-completions): Handle new `list' context.
16370 (ido-make-choice-list): Return choices for `list' context.
16371 (ido-find-file-in-dir, ido-display-file, ido-write-file)
16372 (ido-display-buffer, ido-kill-buffer): Disable context switching.
16373 (ido-insert-buffer, ido-insert-file): Setup context switching.
16374 (ido-exhibit): Handle `list' context.
16375 (ido-read-file-name): Disable context switching. Handle fallback.
16376 (ido-read-directory-name): Disable context switching.
16377 (ido-completing-read): New defun like completing-read. Setup and
16378 use new `list' context.
16379
163802004-09-20 Jesper Harder <harder@ifa.au.dk>
16381
16382 * progmodes/tcl.el (inferior-tcl): Use pop-to-buffer.
16383
163842004-09-21 Jay Belanger <belanger@truman.edu>
16385
16386 * calc/calc-graph.el (calc-graph-add-curve): Move the call to
16387 `calc-graph-set-styles' so the gnuplot buffer will appear in a
16388 separate window.
16389
163902004-09-21 Luc Teirlinck <teirllm@auburn.edu>
16391
16392 * subr.el (after-change-major-mode-hook): Doc fix.
16393
163942004-09-21 Vinicius Jose Latorre <viniciusjl@ig.com.br>
16395
16396 * printing.el: Doc fix. Add a new tip about the use of gsprint instead
16397 of ghostscript for monochrome PostScript file in Windows.
16398
163992004-09-21 Kenichi Handa <handa@m17n.org>
16400
16401 * descr-text.el (describe-char): Checking of quail activation fixed.
16402
164032004-09-21 Jay Belanger <belanger@truman.edu>
16404
16405 * calc/calc.el (calc-mode-var-list): Remove unnecessary quotes.
16406
164072004-09-20 Luc Teirlinck <teirllm@auburn.edu>
16408
16409 * subr.el (run-mode-hooks): Run `after-change-major-mode-hook'
16410 after the mode hooks instead of before. Doc fix.
16411
164122004-09-20 Jason Rumney <jasonr@gnu.org>
16413
16414 * startup.el (command-line) [windows-nt]: Try .emacs first, then
16415 _emacs, but revert to .emacs if neither exists in home directory.
16416
164172004-09-20 John Paul Wallington <jpw@gnu.org>
16418
16419 * bindings.el (completion-ignored-extensions): Add .dfsl.
16420
164212004-09-20 Richard M. Stallman <rms@gnu.org>
16422
16423 * bindings.el (scroll-left): Make it disabled.
16424
16425 * files.el (enable-local-eval): Doc fix.
16426
16427 * indent.el (move-to-left-margin): Special case for minibuffer.
16428
16429 * term.el (term-emulate-terminal): Turn off undo for output.
16430 Use with-current-buffer and save-selected-window.
16431
16432 * eshell/esh-ext.el (eshell-explicit-command-char): Doc fix.
16433
16434 * progmodes/make-mode.el (makefile-fill-paragraph):
16435 Don't insist on spaces when looking for comments. # is enough.
16436
16437 * files.el (hack-local-variables): Copy the variables list
16438 to another buffer, strip prefixes and suffixes there, then read.
16439 (enable-local-eval): Doc fix.
16440 (ignored-local-variables): Initialize to nil.
16441 (risky-local-variable-p): Don't check ignored-local-variables here.
16442 (hack-one-local-variable): Ignore var if in ignored-local-variables.
16443
164442004-09-20 Dan Nicolaescu <dann@ics.uci.edu>
16445
16446 * progmodes/sh-script.el (sh-mode-default-syntax-table): Set syntax
16447 of = to "." (punctuation).
16448
164492004-09-19 Stefan Monnier <monnier@iro.umontreal.ca>
16450
16451 * subr.el (event-basic-type): Fix mask (extend to 22bits).
16452
164532004-09-18 Luc Teirlinck <teirllm@auburn.edu>
16454
16455 * textmodes/enriched.el (enriched-rerun-flag): New variable.
16456 (enriched-before-change-major-mode): New function.
16457 Add it to `change-major-mode-hook'.
16458 (enriched-after-change-major-mode): New function.
16459 Add it to `after-change-major-mode-hook'.
16460 (enriched-mode): Make it work correctly if called from
16461 `after-change-major-mode-hook'.
16462 No longer set `indent-line-function'.
16463
16464 * simple.el (fundamental-mode): Run `after-change-major-mode-hook'.
16465
16466 * subr.el (after-change-major-mode-hook): New variable.
16467 (run-mode-hooks): Implement it.
16468
164692004-09-18 Stefan Monnier <monnier@iro.umontreal.ca>
16470
16471 * battery.el (battery-linux-proc-apm): Use string-to-number.
16472 (battery-linux-proc-acpi): Ignore all hidden files in the battery dir.
16473 Use dolist (and less indentation). Use erase-buffer.
16474 Pre-initialize `design-capacity', `warn', and `low'.
16475 (battery-format): Use replace-regexp-in-string.
16476
164772004-09-18 Ralph Schleicher <rs@nunatak.allgaeu.org>
16478
16479 * battery.el: Delete superfluous empty lines.
16480 (battery-linux-proc-acpi): Attempt to gather information from all
16481 battery subdirectories regardless of their file name.
16482 (battery-linux-proc-apm): Replace all occurrences of
16483 battery-hex-to-int-2 with string-to-int (base 16).
16484 (battery-hex-to-int-2, battery-hex-to-int): Delete functions.
16485 (battery-hex-map): Delete variable.
16486
164872004-09-18 John Paul Wallington <jpw@gnu.org>
16488
16489 * calc/calc-units.el (calc-quick-units): Fix overzealous
16490 s/or/unless/.
16491
164922004-09-17 Jay Belanger <belanger@truman.edu>
16493
16494 * calc/calc.el (calc-mode-var-list): Fix the value of
16495 `calc-matrix-brackets'.
16496
164972004-09-17 Romain Francoise <romain@orebokech.com>
16498
16499 * ibuf-ext.el (define-ibuffer-filter filename):
16500 Expand dired-directory since buffer-file-name is absolute.
16501
165022004-09-17 Dan Nicolaescu <dann@ics.uci.edu>
16503
16504 * ediff-init.el (ediff-current-diff-face-A)
16505 (ediff-current-diff-face-B, ediff-current-diff-face-C)
16506 (ediff-current-diff-face-Ancestor)
16507 (ediff-fine-diff-face-A, ediff-fine-diff-face-B)
16508 (ediff-fine-diff-face-C, ediff-fine-diff-face-Ancestor)
16509 (ediff-even-diff-face-A, ediff-even-diff-face-B)
16510 (ediff-even-diff-face-C, ediff-even-diff-face-Ancestor)
16511 (ediff-odd-diff-face-A, ediff-odd-diff-face-B)
16512 (ediff-odd-diff-face-C, ediff-odd-diff-face-Ancestor):
16513 Use min-colors.
16514
16515 * term.el (term-down): Perform vertical motion if DOWN is negative.
16516 (term-exec-1): Set both TERMCAP and TERMINFO unconditionally.
16517 (term-termcap-format): Synchronize with the eterm terminfo entry
16518 in etc/e/eterm.ti.
16519 (term-handle-colors-array): If the current foreground or
16520 background are zero (i.e. unspecified), use the foreground and
16521 background of the default face for reverse video.
16522 (term-ansi-at-eval-string, term-ansi-default-fg)
16523 (term-ansi-default-bg, term-ansi-current-temp): Delete unused variable.
16524 (term-mem): Delete unused function.
16525 (term-protocol-version): Increment.
16526 (term-current-face): Set to default.
16527
165282004-09-15 Jay Belanger <belanger@truman.edu>
16529
16530 * calc/calc.el (calc-mode-var-list): Define this variable.
16531 (calc-always-load-extensions, calc-line-numbering)
16532 (calc-line-breaking, calc-display-just, calc-display-origin)
16533 (calc-number-radix, calc-leading-zeros, calc-group-digits)
16534 (calc-group-char, calc-point-char, calc-frac-format)
16535 (calc-prefer-frac, calc-hms-format, calc-date-format)
16536 (calc-float-format, calc-full-float-format, calc-complex-format)
16537 (calc-complex-mode, calc-infinite-mode, calc-display-strings)
16538 (calc-matrix-just, calc-break-vectors, calc-full-vectors)
16539 (calc-full-trail-vectors, calc-vector-commas, calc-vector-brackets)
16540 (calc-matrix-brackets, calc-language, calc-language-option)
16541 (calc-left-label, calc-right-label, calc-word-size)
16542 (calc-previous-modulo, calc-simplify-mode, calc-auto-recompute)
16543 (calc-display-raw, calc-internal-prec, calc-angle-mode)
16544 (calc-algebraic-mode, calc-incomplete-algebraic-mode)
16545 (calc-symbolic-mode, calc-matrix-mode, calc-shift-prefix)
16546 (calc-window-height, calc-display-trail, calc-show-selections)
16547 (calc-use-selections, calc-assoc-selections)
16548 (calc-display-working-message, calc-auto-why, calc-timing)
16549 (calc-mode-save-mode, calc-standard-date-formats)
16550 (calc-autorange-units, calc-was-keypad-mode, calc-full-mode)
16551 (calc-user-parse-tables, calc-gnuplot-default-device)
16552 (calc-gnuplot-default-output, calc-gnuplot-print-device)
16553 (calc-gnuplot-print-output, calc-gnuplot-geometry)
16554 (calc-graph-default-resolution, calc-graph-default-resolution-3d)
16555 (calc-invocation-macro, calc-show-banner): Give these values as
16556 part of `calc-mode-var-list's initialization after the variables
16557 are declared with defvar.
16558 (calc-bug-address): Change email address to send bug reports to.
16559 Change the maintainer address at the top.
16560 (calc-mode): Compare `calc-settings-file' to `user-init-file' rather
16561 than "\\.emacs" to determine if it is the user-init-file.
16562
16563 * calc/calc-embed.el (calc-embedded-set-modes): Use
16564 `calc-mode-var-list' correctly.
16565
165662004-09-15 Thien-Thi Nguyen <ttn@gnu.org>
16567
16568 * vc.el (annotate-time): Document point handling.
16569 (vc-annotate-display-autoscale): Doc fix.
16570
165712004-09-15 Miles Bader <miles@gnu.org>
16572
16573 * generic.el (generic-make-keywords-list): Use symbol rather than
16574 word anchors in regexp.
16575
165762004-09-14 Sean O'Rourke <sorourke@cs.ucsd.edu>
16577
16578 * ibuf-ext.el (define-ibuffer-filter filename): If buffer has
16579 no file name consider `dired-directory'.
16580
165812004-09-14 Kim F. Storm <storm@cua.dk>
16582
16583 * faces.el (cursor): Add face-no-inherit property. Doc fix.
16584
165852004-09-14 Simon Josefsson <jas@extundo.com>
16586
16587 * files.el (auto-mode-alist): Map .soa and .zone to dns-mode.
16588
16589 * textmodes/dns-mode.el: Add.
16590
165912004-09-13 Stefan Monnier <monnier@iro.umontreal.ca>
16592
16593 * novice.el (disabled-command-hook): Use shorthand for obsolescence.
16594 (disabled-command-function): Make the ?\ char more obvious.
16595
16596 * vc-arch.el (vc-arch-root, vc-arch-registered):
16597 * vc-mcvs.el (vc-mcvs-root, vc-mcvs-registered): Use vc-find-root.
16598
165992004-09-13 Hovav Shacham <hovav@sha1.stanford.edu>
16600
16601 * windmove.el (windmove-frame-edges): Report coordinates of
16602 outside edges of frame, not inside edges.
16603 (windmove-coordinates-of-position): Convert into wrapper to new
16604 function `windmove-coordinates-of-window-position';
16605 `compute-motion' always applies to selected window.
16606 (windmove-coordinates-of-position): Update documentation to refer
16607 to Emacs 21 Lisp Reference Manual.
16608 (windmove-find-other-window): Fix off-by-one errors for max x,y.
16609
166102004-09-13 Kim F. Storm <storm@cua.dk>
16611
16612 * isearch.el (isearch-resume-in-command-history): Rename from
16613 isearch-resume-enabled and change default to nil.
16614
166152004-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
16616
16617 * vc-hooks.el (vc-ignore-dir-regexp): New var.
16618 (vc-registered): Use it.
16619 (vc-find-root): New fun.
16620
16621 * emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
16622 Don't tell to use \\{...} when it's already done.
16623
16624 * textmodes/bibtex.el (bibtex-generate-url-list): Change format.
16625 Provide a sample complex default.
16626 (bibtex-url, bibtex-font-lock-url): Adapt to new format.
16627 (bibtex-entry): Use mapc.
16628
166292004-09-12 Kim F. Storm <storm@cua.dk>
16630
16631 * kmacro.el (kmacro-step-edit-prompt): Add "%s" format to message.
16632
16633 * emulation/cua-rect.el (cua--rectangle-operation): Let bind
16634 inhibit-field-text-motion to t so rectangles work in comint buffers.
16635
16636 * simple.el (choose-completion-string): Set buffer before running
16637 choose-completion-string-functions hook so it can be buffer-local.
16638
166392004-09-12 Daniel Pfeiffer <occitan@esperanto.org>
16640
16641 * progmodes/compile.el (compilation-start): Parse command to see
16642 if it starts with a cd, and if so perform it for the *compilation*
16643 buffer. Change the header to reflect this.
16644
166452004-09-11 Kim F. Storm <storm@cua.dk>
16646
16647 * ido.el (ido-enable-dot-prefix): Doc fix.
16648 (ido-enable-dot-prefix): New defcustom.
16649 (ido-set-matches1): Use it.
16650
166512004-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
16652
16653 * textmodes/bibtex.el (bibtex-mark-active)
16654 (bibtex-run-with-idle-timer): Move the `if' inside the defun.
16655
166562004-09-10 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
16657
16658 * textmodes/bibtex.el (bibtex-autokey-titleword-ignore): Regexp is
16659 used in a case insensitive environment.
16660 (bibtex-mode-map): Rearrange order of menus.
16661 (bibtex-quoted-string-re): Obsolete.
16662 (bibtex-complete-key-cleanup): Variable replaced by new function.
16663 (bibtex-font-lock-keywords): Use backquotes.
16664 (bibtex-font-lock-url-regexp): New internal variable.
16665 (bibtex-name-in-field): New optional arg remove-opt-alt to remove
16666 "OPT" and "ALT".
16667 (bibtex-insert-current-kill, bibtex-make-field)
16668 (bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless.
16669 (bibtex-parse-field-text): Simplify.
16670 (bibtex-string=): New helper function.
16671 (bibtex-member-of-regexp): Merge with bibtex-autokey-get-title.
16672 (bibtex-map-entries): Use bibtex-string=.
16673 (bibtex-search-entry): Use not.
16674 (bibtex-enclosing-field): Fix docstring.
16675 (bibtex-assoc-regexp): Obsolete.
16676 (bibtex-format-entry): Use assoc-string and bibtex-string=.
16677 (bibtex-autokey-get-names): Handle empty name field.
16678 (bibtex-parse-strings): Use assoc-string and unless.
16679 (bibtex-complete-string-cleanup): Expansion list is passed as an arg.
16680 Use assoc-string.
16681 (bibtex-pop): Simplify.
16682 (bibtex-mode): Set font-lock-extra-managed-props.
16683 (bibtex-entry-update): Use assoc-string.
16684 (bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD.
16685 (bibtex-autofill-entry): Use bibtex-string=.
16686 (bibtex-print-help-message): Simplify.
16687 (bibtex-find-entry): New optional arg START.
16688 (bibtex-validate): Use bibtex-string= and assoc-string.
16689 Do not call obsolete function compilation-parse-errors.
16690 (bibtex-remove-delimiters): Only remove delimiters if present.
16691 (bibtex-copy-entry-as-kill): Add docstring.
16692 (bibtex-clean-entry): Use bibtex-string=. Handle empty keys.
16693 Detect duplicate keys if bibtex-maintain-sorted-entries is nil.
16694 (bibtex-complete): Use bibtex-predefined-month-strings,
16695 bibtex-string=, and new function bibtex-complete-key-cleanup.
16696 (bibtex-generate-url-list): New variable.
16697 (bibtex-url): New command bound to C-c C-l and mouse-2.
16698 (bibtex-url-map): New local keymap for bibtex-url-mouse.
16699 (bibtex-font-lock-url): New function.
16700
167012004-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
16702
16703 * progmodes/grep.el (grep-mode): Remove unnecessary autoload.
16704
167052004-09-09 Kim F. Storm <storm@cua.dk>
16706
16707 * kmacro.el (kmacro-bind-to-key): Associate dedicated macro
16708 counter and format with binding.
16709 (kmacro-name-last-macro): New defun. Like name-last-kbd-macro, but
16710 the declared macro uses own macro counter and format. Give symbol
16711 kmacro property.
16712 (kmacro-keymap): Bind kmacro-name-last-macro to n.
16713 (kmacro-start-macro, kmacro-end-macro, kmacro-call-macro)
16714 (kmacro-end-and-call-macro): Doc fix.
16715
167162004-09-09 Lars Hansen <larsh@math.ku.dk>
16717
16718 * desktop.el (desktop-clear-preserve-buffers):
16719 Remove make-obsolete-variable.
16720
167212004-09-08 Richard M. Stallman <rms@gnu.org>
16722
16723 * buff-menu.el (list-buffers-noselect): Call format-mode-line
16724 with the buffer as argument.
16725
167262004-09-08 Stefan Monnier <monnier@iro.umontreal.ca>
16727
16728 * vc-arch.el (vc-arch-state): Fix parsing for `names' method.
16729
167302004-09-08 Juri Linkov <juri@jurta.org>
16731
16732 * replace.el (perform-replace): Use `query-replace-descr'.
16733
16734 * cus-start.el (history-delete-duplicates): Specify customization.
16735
16736 * diff-mode.el (diff-mode-map):
16737 * progmodes/compile.el (compilation-mode-map):
16738 * progmodes/grep.el (grep-mode-map):
16739 * replace.el (occur-mode-map): Rename `next-error-follow-mode'
16740 to `next-error-follow-minor-mode'.
16741
167422004-09-08 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16743
16744 * isearch.el (isearch-lazy-highlight-update): Take into account
16745 the case of zero-length match at the search bound.
16746
167472004-09-08 Kim F. Storm <storm@cua.dk>
16748
16749 * emulation/cua-rect.el (cua--highlight-rectangle): Fix last
16750 change. Use zero width overlays when necessary.
16751
167522004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16753
16754 * subr.el (split-string): Docfix.
16755
167562004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16757
16758 * emacs-lisp/bytecomp.el (byte-compile-generate-call-tree): Doc fix.
16759 (display-call-tree): Ensure newline after caller/calls blocks.
16760
167612004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16762
16763 * startup.el (command-line-1): Make option
16764 --directory/-L modify `load-path' straight away.
16765
167662004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16767
16768 * progmodes/grep.el (grep-mode): Use normal autoload cookie.
16769
167702004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16771
16772 * emacs-lisp/autoload.el (make-autoload):
16773 Handle `define-compilation-mode'.
16774
16775 * emacs-lisp/lisp-mode.el (define-compilation-mode):
16776 Specify `doc-string-elt' property.
16777
167782004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16779
16780 * bs.el (bs-mode): Doc fix.
16781
167822004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16783
16784 * info.el (Info-insert-dir): Fix temp buffer leak bug.
16785
167862004-09-08 Thien-Thi Nguyen <ttn@gnu.org>
16787
16788 * play/blackbox.el (bb-trace-ray): Avoid double tracing.
16789
167902004-09-08 Kenichi Handa <handa@m17n.org>
16791
16792 * ps-mule.el: Fix old function calls (ps-mule-chars-in-string ->
16793 length, ps-mule-string-char -> aref, ps-mule-next-index -> 1+,
16794 ps-mule-next-point -> 1+).
16795
16796 * composite.el (encode-composition-rule): Add autoload cookie.
16797
167982004-09-07 Luc Teirlinck <teirllm@auburn.edu>
16799
16800 * format.el (buffer-auto-save-file-format): Make it permanent local.
16801
168022004-09-07 Kim F. Storm <storm@cua.dk>
16803
16804 * emacs-lisp/authors.el (authors-aliases): Add more aliases.
16805 (authors-fixed-entries): Fix typo.
16806 (authors-canonical-author-name): Compact multiple spaces.
16807 Ignore trivial names (e.g. only first name).
16808
16809 * term.el (term-window-width): Only use full window width on
16810 window system if overflow-newline-into-fringe is enabled.
16811 (term-mode): Don't disable overflow-newline-into-fringe.
16812
168132004-09-07 Stefan Monnier <monnier@iro.umontreal.ca>
16814
16815 * term/xterm.el (function-key-map): Add bindings for C- and S- cursor
16816 motion as seen on my Mac OS X xterms.
16817
16818 * newcomment.el (uncomment-region-default, comment-region-default):
16819 New functions extracted from uncomment-region and comment-region.
16820 (comment-region, comment-region-function, uncomment-region)
16821 (uncomment-region-function): Use them.
16822
16823 * pcvs-util.el (cvs-string-prefix-p): Use compare-strings.
16824
16825 * pcvs-info.el (cvs-states): Allow `ignore' on NEED-UPDATE.
16826 It's not crucial but can make sense at times.
16827
16828 * vc-arch.el (vc-arch-workfile-version): Handle the special case before
16829 the first commit.
16830
16831 * vc.el (vc-buffer-context, vc-restore-buffer-context):
16832 Disable obsolete code.
16833
168342004-09-07 Juri Linkov <juri@jurta.org>
16835
16836 * progmodes/grep.el (grep-highlight-matches): Change default from
16837 `t' to `auto-detect', and type from `boolean' to `choice'. Doc fix.
16838 (grep-compute-defaults): Set `grep-highlight-matches' to `t'
16839 if grep option `--color' is available, or to `nil' otherwise.
16840 (grep-process-setup): Call `grep-compute-defaults' if
16841 `grep-highlight-matches' is not computed. Set env-vars only
16842 if `grep-highlight-matches' is `t'.
16843 (grep-use-null-device): Remove redundant type `boolean' (`choice'
16844 is already defined).
16845
16846 * progmodes/compile.el (compilation-start): Use copy of
16847 `process-environment' created by `copy-sequence' to not
16848 modify env-vars in the global `process-environment'.
16849
168502004-09-06 Eli Zaretskii <eliz@gnu.org>
16851
16852 * simple.el (next-error-follow-minor-mode): Fix last change.
16853
168542004-09-05 Luc Teirlinck <teirllm@auburn.edu>
16855
16856 * textmodes/paragraphs.el (use-hard-newlines): Make it into a
16857 permanent local.
16858
168592004-09-04 Richard M. Stallman <rms@gnu.org>
16860
16861 * isearch.el (isearch-lazy-highlight-new-loop): Don't invoke
16862 highlighting if the search string is empty.
16863
168642004-09-04 Luc Teirlinck <teirllm@auburn.edu>
16865
16866 * facemenu.el (facemenu-active-faces): Change condition of inner
16867 `while' loop to also check the first two elements of `face-atts'
16868 and `mask-atts'.
16869
168702004-09-04 John Paul Wallington <jpw@gnu.org>
16871
16872 * thumbs.el (thumbs-view-image-mode-map): Fix command name typo.
16873 (thumbs-view-image-mode): Make buffer read-only.
16874
168752004-09-04 Christopher J. Madsen <cjm@pobox.com>
16876
16877 * textmodes/ispell.el (ispell-really-aspell): New defvar.
16878 (ispell-check-version): Set it.
16879 (ispell-send-replacement): New function.
16880 (ispell-process-line): Call ispell-send-replacement.
16881
168822004-09-04 Matt Hodges <matt@stchem.bham.ac.uk> (tiny change)
16883
16884 * eshell/em-pred.el (eshell-predicate-help-string): Doc fix.
16885 Support choosing seconds with "s".
16886
168872004-09-04 Jari Aalto <jari.aalto@poboxes.com>
16888
16889 * terminal.el (te-escape): Show `?' in prompt for help key.
16890
168912004-09-04 Emilio C. Lopes <eclig@gmx.net>
16892
16893 * emacs-lisp/lisp.el (kill-backward-up-list): New function.
16894
168952004-09-04 Dan Nicolaescu <dann@ics.uci.edu>
16896
16897 * simple.el (next-error-follow-minor-mode)
16898 (next-error-follow-mode-post-command-hook): New functions.
16899 (next-error-follow-last-line): New defvar.
16900
16901 * diff-mode.el (diff-mode-map): Bind next-error-follow-mode.
16902 * progmodes/compile.el (compilation-mode-map): Likewise.
16903 * progmodes/grep.el (grep-mode-map): Likewise.
16904 * replace.el (occur-mode-map): Likewise.
16905
16906 * newcomment.el (uncomment-region): Bind comment-use-global-state
16907 to nil.
16908
169092004-09-03 Luc Teirlinck <teirllm@auburn.edu>
16910
16911 * autorevert.el (auto-revert-handler): Bind `buffer-read-only'
16912 locally around the call to `revert-buffer'.
16913
169142004-09-03 Juri Linkov <juri@jurta.org>
16915
16916 * isearch.el (isearch-toggle-regexp): Set `isearch-success' and
16917 `isearch-adjusted' to `t'.
16918 (isearch-toggle-case-fold): Set `isearch-success' to `t'.
16919 (isearch-message-prefix): Add "pending" for isearch-adjusted.
16920 (isearch-other-meta-char): Restore isearch-point unconditionally.
16921 (isearch-query-replace): Add new arg `regexp-flag' and use it.
16922 Set point to start of match if region is not active in transient
16923 mark mode (to include the current match to region boundaries).
16924 Push the search string to `query-replace-from-history-variable'.
16925 Add prompt "Query replace regexp" for isearch-regexp.
16926 Add region beginning/end as last arguments of `perform-replace.'
16927 (isearch-query-replace-regexp): Replace code by the call to
16928 `isearch-query-replace' with arg `t'.
16929
169302004-09-03 Richard M. Stallman <rms@gnu.org>
16931
16932 * startup.el (normal-top-level): Undo previous TERM change.
16933
169342004-09-03 Kim F. Storm <storm@cua.dk>
16935
16936 * emulation/cua-rect.el (cua--overlay-keymap): New keymap for
16937 highlight overlays; allow using RET when cursor is over a button.
16938 (cua--highlight-rectangle): Use it.
16939 (cua--rectangle-set-corners): Don't move backwards at eol.
16940 (cua--forward-line): Don't move into void after eob.
16941
16942 * emulation/cua-rect.el (cua--rectangle-set-corners): Ensure that
16943 point is set (and displayed) inside rectangle.
16944 (cua--rectangle-operation): Fix for highlight of empty lines.
16945 (cua--highlight-rectangle): Fix highlight for tabs.
16946 Position cursor at left/right edge of rectangle using new `cursor'
16947 property on overlay strings.
16948 (cua--indent-rectangle): Don't tabify.
16949 (cua-rotate-rectangle): Ignore that point has moved.
16950
169512004-09-02 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16952
16953 * term/mac-win.el: Add ASCII equivalents for some function keys.
16954 (mode-line-frame-identification): Sync with x-win.el.
16955
169562004-09-02 Juri Linkov <juri@jurta.org>
16957
16958 * progmodes/compile.el (compilation-buffer-name): Compare major
16959 mode with second element of compilation-arguments instead of third
16960 to reflect latest changes in compilation-arguments structure.
16961 (recompile): Use global variable `compilation-directory' to get
16962 recent compilation directory only when `recompile' is invoked NOT
16963 in the compilation buffer. Otherwise, use `default-directory' of
16964 the compilation buffer.
16965 (compilation-error-properties): Allow to funcall col and end-col.
16966 (compilation-mode-font-lock-keywords): Check col and end-col by
16967 `integerp'.
16968 (compilation-goto-locus): If end-mk is non-nil in transient mark
16969 mode don't activate the mark (and don't display message in
16970 push-mark), but highlight overlay between mk and end-mk.
16971
16972 * progmodes/grep.el (grep-highlight-matches): New defcustom.
16973 (grep-regexp-alist): Add rule to highlight grep matches.
16974 (grep-process-setup): Set env-vars GREP_OPTIONS and GREP_COLOR.
16975
16976 * info.el (Info-fontify-node): Don't compute other-tag
16977 if Info-hide-note-references=hide.
16978
16979 * help.el (function-called-at-point):
16980 * help-fns.el (variable-at-point):
16981 Try `find-tag-default' when other methods failed.
16982
16983 * emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
16984 Do not push mark if inhibit-mark-movement is non-nil.
16985
16986 * textmodes/ispell.el (ispell-html-skip-alists):
16987 Fix backslashes in docstring.
16988
169892004-09-01 Juri Linkov <juri@jurta.org>
16990
16991 * isearch.el (isearch-wrap-function)
16992 (isearch-push-state-function): New defvars.
16993 (isearch-pop-fun-state): New defsubst.
16994 (isearch-top-state): Call function saved in `isearch-pop-fun-state'.
16995 (isearch-push-state): Set the result of calling
16996 `isearch-push-state-function' to the `isearch-pop-fun-state' field.
16997 (isearch-cancel): Call function saved in `isearch-pop-fun-state' to
16998 restore the mode-specific starting point of terminated search.
16999 (isearch-abort): Call `isearch-cancel' instead of its duplicated code.
17000 (isearch-repeat): Call `isearch-wrap-function' if defined.
17001 (isearch-message-prefix): Don't add prefix "over" to the message
17002 for wrapped search if `isearch-wrap-function' is defined.
17003 (isearch-search): Call function saved in `isearch-pop-fun-state' to
17004 restore the mode-specific starting point of failed search.
17005
17006 * info.el (Info-search-whitespace-regexp): Fix backslashes.
17007 (Info-search): Add new optional arguments for the sake of isearch.
17008 Replace whitespace in Info-search-whitespace-regexp literally.
17009 Add backward search. Don't call `Info-select-node' if regexp is
17010 found in the same Info node. Don't add node to Info-history for
17011 wrapped isearch.
17012 (Info-search-backward, Info-isearch-search, Info-isearch-wrap)
17013 (Info-isearch-push-state, Info-isearch-pop-state): New funs.
17014 (Info-mode): Set local variables `isearch-search-fun-function',
17015 `isearch-wrap-function', `isearch-push-state-function',
17016 `search-whitespace-regexp'.
17017
17018 * isearch.el: Remove ancient Change Log section.
17019 (isearch-string, isearch-message-string, isearch-point)
17020 (isearch-success, isearch-forward-flag, isearch-other-end)
17021 (isearch-word, isearch-invalid-regexp, isearch-wrapped)
17022 (isearch-barrier, isearch-within-brackets)
17023 (isearch-case-fold-search): Add suffix `-state' to state-related
17024 defsubsts to avoid name clashes with other function names.
17025
17026 * simple.el (next-error): New defgroup and defface.
17027 (next-error-highlight, next-error-highlight-no-select):
17028 New defcustoms.
17029 (next-error-no-select): Let-bind next-error-highlight to the value
17030 of next-error-highlight-no-select before calling `next-error'.
17031
17032 * progmodes/compile.el (compilation-goto-locus):
17033 Use `next-error' face instead of `region'. Set 4-th argument of
17034 `move-overlay' to `current-buffer' to move overlay to different
17035 source buffers. Use new variable `next-error-highlight'.
17036
17037 * simple.el (next-error-find-buffer): Move the rule
17038 "if current buffer is a next-error capable buffer" after the
17039 rule "if next-error-last-buffer is set to a live buffer".
17040 Simplify to test all rules in one `or'.
17041 (next-error): Doc fix.
17042 (next-error, previous-error, first-error)
17043 (next-error-no-select, previous-error-no-select):
17044 Make arguments optional.
17045
170462004-08-31 Luc Teirlinck <teirllm@auburn.edu>
17047
17048 * macros.el (apply-macro-to-region-lines): Make it operate on all
17049 lines that begin in the region, rather than on all complete lines
17050 in the region.
17051
170522004-08-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
17053
17054 * x-dnd.el (x-dnd-protocol-alist): Document update.
17055 (x-dnd-known-types): Defcustom it.
17056 (x-dnd-handle-motif): Print message-atom in error message.
17057
170582004-08-30 John Paul Wallington <jpw@gnu.org>
17059
17060 * textmodes/tex-mode.el (tex-validate-buffer): Use distinct
17061 strings rather than programatically constructing message.
17062
170632004-08-30 Richard M. Stallman <rms@gnu.org>
17064
17065 * emacs-lisp/lisp-mode.el (prin1-char): Don't turn S-a into A.
17066 Don't return a string that would read as the wrong character code.
17067
170682004-08-29 Kim F. Storm <storm@cua.dk>
17069
17070 * emulation/cua-base.el (cua-auto-expand-rectangles):
17071 Remove automatic rectangle padding feature; replace by non-destructive
17072 virtual rectangle edges feature.
17073 (cua-virtual-rectangle-edges): New defcustom.
17074 (cua-auto-tabify-rectangles): New defcustom.
17075 (cua-paste): If paste into a marked rectangle, insert rectangle at
17076 current column, even if virtual; also paste exactly as many lines
17077 as has been marked (ignore additional lines or add empty lines),
17078 but paste whole source if only one line is marked.
17079 (cua--update-indications): No longer use overwrite-cursor to
17080 indicate rectangle padding
17081
17082 * emulation/cua-rect.el (cua--rectangle-padding): Remove.
17083 (cua--rectangle-virtual-edges): New defun.
17084 (cua--rectangle-get-corners): Remove optional PAD arg.
17085 (cua--rectangle-set-corners): Never do padding.
17086 (cua--forward-line): Remove optional PAD arg. Simplify.
17087 (cua-resize-rectangle-right, cua-resize-rectangle-left)
17088 (cua-resize-rectangle-down, cua-resize-rectangle-up):
17089 (cua-resize-rectangle-bot, cua-resize-rectangle-top)
17090 (cua-resize-rectangle-page-up, cua-resize-rectangle-page-down)
17091 (cua--rectangle-move): Never do padding. Simplify.
17092 (cua--tabify-start): New defun.
17093 (cua--rectangle-operation): Add tabify arg. All callers changed.
17094 (cua--pad-rectangle): Remove.
17095 (cua--delete-rectangle): Handle delete with virtual edges.
17096 (cua--extract-rectangle): Add spaces if rectangle has virtual edges.
17097 (cua--insert-rectangle): Handle insert at virtual column.
17098 Perform auto-tabify if necessary.
17099 (cua--activate-rectangle): Remove optional FORCE arg.
17100 Never do padding. Simplify.
17101 (cua--highlight-rectangle): Enhance for virtual edges.
17102 (cua-toggle-rectangle-padding): Remove command.
17103 (cua-toggle-rectangle-virtual-edges): New command.
17104 (cua-sequence-rectangle): Add optional TABIFY arg. Callers changed.
17105 (cua--rectangle-post-command): Don't force rectangle padding.
17106 (cua--init-rectangles): Bind M-p to cua-toggle-rectangle-virtual-edges.
17107
171082004-08-28 Luc Teirlinck <teirllm@auburn.edu>
17109
17110 * indent.el (edit-tab-stops-buffer): Doc fix.
17111
171122004-08-28 Richard M. Stallman <rms@gnu.org>
17113
17114 * progmodes/grep.el (grep-default-command): Use find-tag-default.
17115 (grep-tag-default): Function deleted.
17116
17117 * subr.el (find-tag-default): Move from etags.el.
17118
17119 * progmodes/etags.el (find-tag-default): Move to subr.el.
17120
17121 * emacs-lisp/lisp-mode.el (prin1-char): Put `shift' modifier
17122 into the basic character if it has an uppercase form.
17123
171242004-08-27 Kenichi Handa <handa@m17n.org>
17125
17126 * international/utf-8.el (utf-8-post-read-conversion): If the
17127 buffer is unibyte, temporarily make it multibyte.
17128
171292004-08-27 Masatake YAMATO <jet@gyve.org>
17130
17131 * calendar/time-date.el (time-to-seconds): Add autoload cookies.
17132
171332004-08-25 John Paul Wallington <jpw@gnu.org>
17134
17135 * textmodes/tex-mode.el (tex-validate-buffer): Distinguish between
17136 0, 1, and many mismatches in message.
17137 (tex-start-shell): Use `set-process-query-on-exit-flag'.
17138
17139 * ielm.el (ielm-tab, ielm-complete-symbol): Doc fix.
17140 (inferior-emacs-lisp-mode): Use `set-process-query-on-exit-flag'.
17141
171422004-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
17143
17144 * vc-svn.el (vc-svn-diff): Treat options from vc-svn-diff-switches and
17145 vc-diff-switches differently.
17146
171472004-08-22 Luc Teirlinck <teirllm@auburn.edu>
17148
17149 * speedbar.el (speedbar-file-regexp): Give it a phony defvar
17150 before and a real defvar after
17151 `speedbar-supported-extension-expressions'. This is to silence
17152 the compiler without breaking bootstrapping.
17153
171542004-08-22 Richard M. Stallman <rms@gnu.org>
17155
17156 * textmodes/flyspell.el (flyspell-word):
17157 Use set-process-query-on-exit-flag.
17158 (flyspell-highlight-duplicate-region): Take POSS as arg.
17159 (flyspell-word): Pass POSS as arg.
17160
17161 * progmodes/ada-xref.el: Many doc and style fixes.
17162 (ada-find-any-references): Use compilation-start.
17163 (ada-get-ali-file-name): Improve error msg.
17164 (ada-get-ada-file-name): Likewise.
17165
17166 * net/ange-ftp.el (ange-ftp-gwp-start, ange-ftp-nslookup-host)
17167 (ange-ftp-start-process): Use set-process-query-on-exit-flag.
17168
17169 * mail/mail-extr.el (mail-extr-all-top-level-domains):
17170 Add forward defvar.
17171
17172 * whitespace.el (global-whitespace-mode): New alias
17173 for whitespace-global-mode.
17174
17175 * speedbar.el (speedbar-file-regexp): Move definition up.
17176 (speedbar-mode, speedbar-set-mode-line-format):
17177 Use with-no-warnings.
17178 (speedbar-emacs-popup-kludge): Delete Emacs 19 alternative.
17179
17180 * simple.el (shell-command-on-region): New arg DISPLAY-ERROR-BUFFER
17181 controls whether to display the error buffer.
17182
17183 * ps-mule.el: Delete compatibility code for old Emacsen.
17184 (ps-mule-find-wrappoint): Don't use chars-in-region.
17185
17186 * frame.el (display-mouse-p, display-selections-p):
17187 Use with-no-warnings.
17188
17189 * font-lock.el (font-lock-set-defaults): Use with-no-warnings.
17190
171912004-08-22 David Kastrup <dak@gnu.org>
17192
17193 * textmodes/reftex-auc.el, progmodes/meta-mode.el: Update AUCTeX
17194 information.
17195
17196 * speedbar.el, iswitchb.el, ido.el: Update AUCTeX information.
17197
171982004-08-22 Andreas Schwab <schwab@suse.de>
17199
17200 * cvs-status.el: Require pcvs during byte-compiling for defun-cvs-mode.
17201
172022004-08-22 Masatake YAMATO <jet@gyve.org>
17203
17204 * cvs-status.el (cvs-status-checkout): New function.
17205 (cvs-status-mode-map): Add a key definition for `cvs-status-checkout'.
17206
172072004-08-21 David Kastrup <dak@gnu.org>
17208
17209 * net/ange-ftp.el (ange-ftp-hash-entry-exists-p)
17210 (ange-ftp-file-entry-p, ange-ftp-file-symlink-p): Since the code
17211 has been converted to use hashtables, the relation `nil=none' is
17212 no longer valid, as `nil' is not a hashtable. This patch tries to
17213 reduce the number of resulting errors.
17214
172152004-08-21 John Paul Wallington <jpw@gnu.org>
17216
17217 * subr.el (process-kill-without-query): Made obsolete in
17218 version 21.4, not 21.5.
17219
17220 * log-edit.el (vc-comment-ring, vc-comment-ring-index)
17221 (vc-previous-comment, vc-next-comment)
17222 (vc-comment-search-reverse, vc-comment-search-forward)
17223 (vc-comment-to-change-log): Likewise.
17224
17225 * international/latin1-disp.el (latin1-char-displayable-p): Likewise.
17226
172272004-08-21 Peter Seibel <peter@javamonkey.com> (tiny patch)
17228
17229 * emacs-lisp/cl-indent.el (lisp-indent-defmethod):
17230 Correct indentation of DEFMETHODS with non-standard method
17231 combinations (e.g., PROGN, MIN, MAX).
17232
172332004-08-20 Stefan Monnier <monnier@iro.umontreal.ca>
17234
17235 * startup.el (normal-top-level-add-subdirs-to-load-path):
17236 Avoid unnecessarily checking system-type.
17237 (normal-top-level): Set TERM to "dumb". Simplify.
17238
17239 * avoid.el (mouse-avoidance-ignore-p): New fun.
17240 Also ignore switch-frame, select-window, double, and triple clicks.
17241 (mouse-avoidance-banish-hook, mouse-avoidance-exile-hook)
17242 (mouse-avoidance-fancy-hook): Use it.
17243
172442004-08-20 Zoran Milojevic <zoran@sipquest.com> (tiny change)
17245
17246 * avoid.el (mouse-avoidance-nudge-mouse)
17247 (mouse-avoidance-banish-destination): Stay within the current window
17248 to avoid problems with mouse-autoselect-window.
17249
172502004-08-19 Stefan Monnier <monnier@iro.umontreal.ca>
17251
17252 * pcvs-parse.el (cvs-parse-table, cvs-parse-commit): Try to adapt to
17253 the newer format of some messages in cvs-1.12.1.
17254
172552004-08-19 Masatake YAMATO <jet@gyve.org>
17256
17257 * emacs-lisp/elp.el (elp-results-symname-map): New keymap.
17258 (elp-results-jump-to-definition-by-mouse)
17259 (elp-results-jump-to-definition, elp-output-insert-symname): New funs.
17260 (elp-output-result): Use elp-output-insert-symname.
17261
172622004-08-18 Kenichi Handa <handa@m17n.org>
17263
17264 * language/cyrillic.el: Register koi8-r in
17265 ctext-non-standard-encodings-alist.
17266 ("Cyrillic-KOI8"): Add ctext-non-standard-encoding.
17267
172682004-08-17 Luc Teirlinck <teirllm@auburn.edu>
17269
17270 * emacs-lisp/copyright.el (copyright-update-year): Delete code
17271 that replaces 20xy with xy.
17272
172732004-08-17 John Paul Wallington <jpw@gnu.org>
17274
17275 * emacs-lisp/re-builder.el (reb-mode-map): Define within defvar.
17276 (reb-force-update): Doc fix.
17277
172782004-08-16 Richard M. Stallman <rms@gnu.org>
17279
17280 * progmodes/which-func.el (which-func-update-1): Doc fix.
17281
17282 * progmodes/sh-script.el (sh-set-shell): Use sh-mode-abbrev-table.
17283 (sh-mode-abbrev-table): New variable.
17284
17285 * progmodes/compile.el (compilation-mode): Doc fix.
17286
17287 * emacs-lisp/lisp-mode.el (eval-last-sexp):
17288 Don't cons a new symbol each time.
17289 (eval-last-sexp-fake-value): New variable.
17290
17291 * emacs-lisp/copyright.el (copyright-years-regexp): New variable.
17292 (copyright-update-year): Detect continuation of list of years.
17293
17294 * term.el (term-default-fg-color, term-default-bg-color)
17295 (ansi-term-color-vector): Use `unspecified', not nil, as default.
17296
17297 * imenu.el: Several doc fixes: don't say variables are buffer-local.
17298
172992004-08-16 Davis Herring <herring@lanl.gov>
17300
17301 * isearch.el (isearch-string, isearch-message-string, isearch-point)
17302 (isearch-success, isearch-forward-flag, isearch-other-end)
17303 (isearch-word, isearch-invalid-regexp, isearch-wrapped)
17304 (isearch-barrier, isearch-within-brackets)
17305 (isearch-case-fold-search): Fix broken `nth'-like calls to `aref'.
17306
173072004-08-16 Kenichi Handa <handa@m17n.org>
17308
17309 * ps-mule.el (ps-mule-font-info-database): Fix docstring.
17310
173112004-08-15 Kenichi Handa <handa@m17n.org>
17312
17313 * term/x-win.el (x-selection-value): If utf8 was successful but
17314 ctext was not, use utf8 string.
17315
173162004-08-14 Davis Herring <herring@lanl.gov>
17317
17318 * isearch.el: Remove accidental changes of March 4. Fix backing
17319 up when a regexp isearch is made more general. Use symbolic
17320 accessor functions for isearch stack frames to make usage clearer.
17321 (search-whitespace-regexp): Made groups in documentation shy (as
17322 is the group in the default value).
17323 (isearch-fallback): New function, addresses problems with regexps
17324 liberalized by `\|', adds support for liberalization by `\}' (the
17325 general repetition construct), and incorporates behavior for
17326 `*'/`?'.
17327 (isearch-}-char): New command, calls `isearch-fallback' with
17328 arguments appropriate to a typed `}'.
17329 (isearch-*-char, isearch-|-char): Now just call `isearch-fallback'
17330 appropriately.
17331 (isearch-mode-map): Bind `}' to `isearch-}-char'.
17332 (isearch-string, isearch-message,string, isearch-point)
17333 (isearch-success, isearch-forward-flag, isearch-other-end)
17334 (isearch-word, isearch-invalid-regexp, isearch-wrapped)
17335 (isearch-barrier, isearch-within-brackets, isearch-case-fold-search):
17336 New inline functions to read fields of a stack frame.
17337
173382004-08-14 Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> (tiny change)
17339
17340 * battery.el (battery-linux-proc-acpi): Look into battery
17341 directories matching the literal string "CMB", too (required for
17342 Linux kernel version 2.6.7).
17343
173442004-08-14 John Paul Wallington <jpw@gnu.org>
17345
17346 * cus-start.el (read-file-name-completion-ignore-case): Add.
17347 (blink-cursor-alist): Change version to "21.4".
17348
17349 * emacs-lisp/bytecomp.el (forward-word): Allow 0 args.
17350
173512004-08-11 Daniel Pfeiffer <occitan@esperanto.org>
17352
17353 * speedbar.el (speedbar-scan-subdirs): New option.
17354 (speedbar-file-lists): Don't ignore file-name case on Unix and use
17355 dolist.
17356 (speedbar-insert-files-at-point): Take an extra argument and use
17357 it to optionally find out if a subdir is empty. Also unreadable
17358 files don't get expand buttons.
17359 (speedbar-directory): New image (unused pixmap already existed).
17360 (speedbar-expand-image-button-alist): Use it.
17361
173622004-08-11 Martin Stjernholm <bug-cc-mode@gnu.org>
17363
17364 CC Mode update to 5.30.9:
17365
17366 * progmodes/cc-defs.el, progmodes/cc-vars.el (c-emacs-features):
17367 Move from cc-vars to cc-defs for dependency reasons. Fix the
17368 POSIX char class test to check that it works in
17369 `skip-chars-(forward|backward)' too.
17370
17371 * progmodes/cc-align.el (c-lineup-arglist): Fix bug when the
17372 first argument starts with a special brace list.
17373
17374 * progmodes/cc-engine.el (c-forward-type): Fix promotion bug
17375 when `c-opt-type-concat-key' is used (i.e. in Pike).
17376
17377 * progmodes/cc-engine.el (c-looking-at-special-brace-list):
17378 Fix bug when the inner char pair doesn't have paren syntax,
17379 i.e. "(<>)".
17380
17381 * progmodes/cc-align.el (c-lineup-multi-inher): Made it syntactic
17382 whitespace safe.
17383
17384 * progmodes/cc-engine.el (c-guess-basic-syntax): Fix anchor
17385 position for `arglist-intro', `arglist-cont-nonempty' and
17386 `arglist-close' when there are two arglist open parens on the same
17387 line and there's nothing in front of the first.
17388
17389 * progmodes/cc-fonts.el (c-basic-matchers-before): Fix font
17390 locking of qualified names in Java, which previously could fontify
17391 common indexing expressions in many cases. The standard Java
17392 naming conventions are used to tell them apart.
17393
17394 * progmodes/cc-align.el (c-lineup-whitesmith-in-block):
17395 Fix inconsistency wrt opening parens on the first line inside a paren
17396 block.
17397
17398 * progmodes/cc-defs.el (c-langs-are-parametric): Must be known at
17399 compile time for the sake of `c-major-mode-is'.
17400
17401 (c-mode-is-new-awk-p): Made it a macro to delay expansion of
17402 `c-major-mode-is' in the event that this is used inside a
17403 `c-lang-defconst'.
17404
17405 * progmodes/cc-defs.el (c-major-mode-is): Fix expansion inside
17406 `c-lang-defconst' so that it works better with fallback languages.
17407
17408 * progmodes/cc-defs.el (c-add-language): Fix a typo that caused
17409 it to fail to record the base mode.
17410
17411 * progmodes/cc-engine.el (c-syntactic-re-search-forward):
17412 Fix bug so that it doesn't go past the closing paren when PAREN-LEVEL
17413 is used. Reorder the syntax checks to get more efficient
17414 skipping in some situations.
17415
17416 * progmodes/cc-cmds.el (c-electric-brace): Don't trip up on a line
17417 continuation which might precede the newly inserted '{'.
17418
17419 * progmodes/cc-engine.el (c-syntactic-re-search-forward):
17420 Fix cases where it could loop indefinitely.
17421
17422 * progmodes/cc-fonts.el (c-font-lock-declarators): Handle array
17423 size specs correctly. Only fontify identifiers in front of '('
17424 with as functions - don't accept any paren char. Tighten up
17425 initializer skipping to stop before function and class blocks.
17426
17427 * progmodes/cc-engine.el (c-beginning-of-decl-1): Fix bug where
17428 the point could be left directly after an open paren when finding
17429 the beginning of the first decl in the block.
17430
17431 * progmodes/cc-engine.el (c-parse-state): Don't use the syntax
17432 table when filtering out legitimate open parens to be recorded.
17433 This could cause cache inconsistencies when e.g.
17434 `c++-template-syntax-table' was temporarily in use.
17435
17436 * progmodes/cc-engine.el (c-on-identifier)
17437 (c-simple-skip-symbol-backward): Small fix for handling "-"
17438 correctly in `skip-chars-backward'. Affected the operator lfun
17439 syntax in Pike.
17440
17441 * progmodes/cc-engine.el (c-invalidate-sws-region-after):
17442 Fix bug that could cause an error from `after-change-functions' when
17443 the changed region is at bob.
17444
174452004-08-11 Alan Mackenzie <bug-cc-mode@gnu.org>
17446
17447 CC Mode update to 5.30.9:
17448
17449 * progmodes/cc-cmds.el, progmodes/cc-vars.el: Amend doc(-strings)
17450 to say that <TAB> doesn't insert WS into a CPP line.
17451 (c-indent-command, c-tab-always-indent): Amend doc strings.
17452
17453 * progmodes/cc-styles.el, progmodes/cc-engine.el: Add in two
17454 checks for user errors, thus eliminating cryptic and unhelpful
17455 Emacs error messages. (1) Check the arg to `c-set-style' is a
17456 string. (2) Check that settings to `c-offsets-alist' are not
17457 spuriously quoted.
17458
17459 * progmodes/cc-cmds.el (c-electric-brace): Don't delete a comment
17460 which precedes the newly inserted `{'.
17461
174622004-08-10 Michael Albinus <michael.albinus@gmx.de>
17463
17464 Sync with Tramp 2.0.44.
17465
17466 * net/tramp.el (tramp-post-connection): Quote $1 and $2 of shell
17467 function "tramp_file_attributes". Otherwise, file names
17468 containing spaces are misinterpreted. Reported by Magnus Henoch
17469 <mange@freemail.hu>.
17470 (tramp-handle-file-truename): FILENAME must be expanded first.
17471 Otherwise, parameters like "/ssh:deego@gnufans.net:~" will return
17472 obscure results. Reported by D. Goel <deego@gnufans.org>.
17473 (tramp-handle-verify-visited-file-modtime): If file does not
17474 exist, say it is not modified if and only if that agrees with the
17475 buffer's record. Check whether a file is visiting the buffer, or
17476 the buffer has no recorded last modification time. Return t in
17477 case the visiting file doesn't exist. Suggested by Luc Teirlinck
17478 <teirllm@auburn.edu>.
17479 (tramp-handle-write-region): Pass modtime explicitly to
17480 `set-visited-file-modtime', because filename can be different
17481 from (buffer-file-name) if `file-precious-flag' is set.
17482 `set-visited-file-modtime' must be called always when `visit' is t
17483 or a string. Suggested by Luc Teirlinck <teirllm@auburn.edu>.
17484 (tramp-handle-set-visited-file-modtime): If `time-list' is not
17485 nil, don't apply the whole body. If the file doesn't exists, set
17486 modtime to '(-1 65535). Suggested by Luc Teirlinck
17487 <teirllm@auburn.edu>.
17488
174892004-08-09 Luc Teirlinck <teirllm@auburn.edu>
17490
17491 * help.el (describe-bindings): Doc fix.
17492
17493 * subr.el (kbd): Doc fix.
17494
174952004-08-08 John Paul Wallington <jpw@gnu.org>
17496
17497 * ibuffer.el (define-ibuffer-column size): Use `string-to-number'
17498 instead of `string-to-int'.
17499 (define-ibuffer-column mode): Fix indentation.
17500
175012004-08-08 Lars Hansen <larsh@math.ku.dk>
17502
17503 * wid-edit.el (widget-sexp-validate): Allow whitespace after
17504 expression.
17505
175062004-08-08 Luc Teirlinck <teirllm@auburn.edu>
17507
17508 * subr.el (global-unset-key, local-unset-key): Doc fixes.
17509
17510 * novice.el (disabled-command-function): New variable renamed from
17511 `disabled-command-hook'.
17512 (disabled-command-hook): Keep the _variable_ as alias for
17513 `disabled-command-function' and make obsolete.
17514 (disabled-command-function): Function renamed from
17515 `disabled-command-hook'. Adapt code to name change of the variable.
17516
175172004-08-07 Satyaki Das <satyaki@theforce.stanford.edu> (tiny change)
17518
17519 * simple.el (completion-root-regexp): New defvar.
17520 (completion-setup-function): Use it instead of a literal string.
17521
175222004-08-07 John Paul Wallington <jpw@gnu.org>
17523
17524 * emacs-lisp/re-builder.el (reb-re-syntax): Add `rx' syntax.
17525 (reb-lisp-mode): Require `rx' feature when `re-reb-syntax' is `rx'.
17526 (reb-lisp-syntax-p, reb-change-syntax): `rx' is a Lisp syntax.
17527 (reb-cook-regexp): Call `rx-to-string' when `re-reb-syntax' is `rx'.
17528
175292004-08-05 Katsumi Yamaoka <yamaoka@jpl.org> (tiny change)
17530
17531 * mail/mail-extr.el (mail-extr-disable-voodoo): New variable.
17532 (mail-extr-voodoo): Check mail-extr-disable-voodoo.
17533
175342004-08-04 Kenichi Handa <handa@m17n.org>
17535
17536 * international/encoded-kb.el (encoded-kbd-setup-keymap):
17537 Fix previous change.
17538
175392004-08-03 Kenichi Handa <handa@m17n.org>
17540
17541 * international/encoded-kb.el: The following changes are to
17542 utilize key-translation-map instead of minor mode map.
17543 (encoded-kbd-iso2022-non-ascii-map): Delete it.
17544 (encoded-kbd-coding, encoded-kbd-handle-8bit): Delete them.
17545 (encoded-kbd-last-key): New function.
17546 (encoded-kbd-iso2022-single-shift): New function.
17547 (encoded-kbd-iso2022-designation)
17548 (encoded-kbd-self-insert-iso2022-7bit)
17549 (encoded-kbd-self-insert-iso2022-8bit)
17550 (encoded-kbd-self-insert-sjis, encoded-kbd-self-insert-big5)
17551 (encoded-kbd-self-insert-ccl): Make them suitable for bindings in
17552 key-translation-map.
17553 (encoded-kbd-setup-keymap): Setup key-translation-map.
17554 (saved-key-translation-map): New variable.
17555 (encoded-kbd-mode): Save/restore key-translation-map.
17556 Adjust for the change of encoded-kbd-setup-keymap.
17557
175582004-08-02 Kim F. Storm <storm@cua.dk>
17559
17560 * avoid.el (mouse-avoidance-point-position): Use window-inside-edges
17561 and call compute-motion with nil for topos and width to get proper
17562 usable width and height for both window and non-window systems.
17563
17564 * windmove.el (windmove-coordinates-of-position): Let compute-motion
17565 calculate usable window width and height.
17566
17567 * window.el (window-buffer-height): Call compute-motion with nil width.
17568
175692004-08-01 David Kastrup <dak@gnu.org>
17570
17571 * replace.el (query-replace-read-from):
17572 Use `query-replace-compile-replacement'.
17573 (query-replace-compile-replacement): New function.
17574 (query-replace-read-to): Use `query-replace-compile-replacement'
17575 for repeating the last command.
17576
175772004-08-01 John Paul Wallington <jpw@gnu.org>
17578
17579 * printing.el (toplevel, pr-ps-fast-fire, pr-ps-set-utility)
17580 (pr-ps-set-printer, pr-txt-set-printer, pr-eval-setting-alist)
17581 (pr-switches): Remove period from end of error messages.
17582
17583 * help-mode.el (help-go-back): Likewise.
17584
17585 * abbrev.el (only-global-abbrevs): Doc fix.
17586 (edit-abbrevs-map): Define within defvar.
17587 (quietly-read-abbrev-file): Doc fix.
17588
175892004-07-31 Luc Teirlinck <teirllm@auburn.edu>
17590
17591 * novice.el (enable-command, disable-command): Doc fixes.
17592
17593 * subr.el (event-modifiers, event-basic-type): Doc fixes.
17594
175952004-07-30 Richard M. Stallman <rms@gnu.org>
17596
17597 * subr.el (with-local-quit): Doc fix.
17598
175992004-07-30 Luc Teirlinck <teirllm@auburn.edu>
17600
17601 * international/utf-8.el (utf-translate-cjk-mode): Doc fix.
17602
176032004-07-28 Luc Teirlinck <teirllm@auburn.edu>
17604
17605 * custom.el (defcustom): Doc fix.
17606
176072004-07-28 Masatake YAMATO <jet@gyve.org>
17608
17609 * progmodes/etags.el (etags-tags-apropos): Show building progress.
17610
176112004-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
17612
17613 * imenu.el (imenu-prev-index-position-function)
17614 (imenu-extract-index-name-function, imenu-name-lookup-function)
17615 (imenu--index-alist): Docstring redundancy fix.
17616
176172004-07-25 Lars Hansen <larsh@math.ku.dk>
17618
17619 * wdired.el (wdired-finish-edit): Require dired-aux before locally
17620 binding dired-backup-overwrite.
17621
176222004-07-25 John Paul Wallington <jpw@gnu.org>
17623
17624 * subr.el (butlast, event-modifiers, event-basic-type): Doc fixes.
17625
176262004-07-24 Luc Teirlinck <teirllm@auburn.edu>
17627
17628 * term/tty-colors.el (tty-color-approximate): Doc fix.
17629
17630 * select.el (x-get-selection, x-set-selection): Doc fixes.
17631
17632 * frame.el (make-frame): Doc fix.
17633
176342004-07-24 Richard M. Stallman <rms@gnu.org>
17635
17636 * mail/rmail.el (rmail-mime-charset-pattern):
17637 Don't include semicolon in the charset value.
17638
17639 * replace.el (occur-next-error): Call set-window-point.
17640 (occur-engine): Handle negative NLINES.
17641
176422004-07-23 Luc Teirlinck <teirllm@auburn.edu>
17643
17644 * frame.el (modify-all-frames-parameters): Minor doc fix.
17645 (set-frame-configuration): Doc fix.
17646
176472004-07-23 Matt Hodges <matt@stchem.bham.ac.uk> (tiny change)
17648
17649 * simple.el (completion-setup-function): Compute the common parts
17650 and the first difference place correctly when
17651 partial-completion-mode is on.
17652
176532004-07-22 Vinicius Jose Latorre <viniciusjl@ig.com.br>
17654
17655 * ps-print.el: Doc fix.
17656 (ps-print-version): New version 6.6.5.
17657 (ps-printing-region): Doc fix.
17658 (ps-generate-string-list): Comment fix.
17659 (ps-message-log-max): Code fix.
17660
176612004-07-22 Michael Piotrowski <mxp@dynalabs.de> (tiny change)
17662
17663 * ps-print.el (ps-begin-file): Improve the DSC compliance of the
17664 generated PostScript.
17665
176662004-08-17 Reiner Steib <Reiner.Steib@gmx.de>
17667
17668 * net/tls.el (tls-process-connection-type): Fix docstring. (Sync
17669 with Gnus v5_10 branch.)
17670
176712004-08-16 Reiner Steib <Reiner.Steib@gmx.de>
17672
17673 * calendar/time-date.el (time-to-number-of-days): New function.
17674 Imported from Gnus.
17675
176762004-07-22 Kim F. Storm <storm@cua.dk>
17677
17678 * progmodes/make-mode.el: Fix comments.
17679
176802004-07-21 Vinicius Jose Latorre <viniciusjl@ig.com.br>
17681
17682 * printing.el: Doc fix.
17683
176842004-07-20 Luc Teirlinck <teirllm@auburn.edu>
17685
17686 * frame.el (modify-all-frames-parameters): Minor doc fix.
17687
176882004-07-20 Richard M. Stallman <rms@gnu.org>
17689
17690 * textmodes/fill.el (fill-nobreak-p): If this break point is
17691 at the end of the line, don't consider the newline which follows
17692 as a reason to return t.
17693
176942004-07-19 John Paul Wallington <jpw@gnu.org>
17695
17696 * dired-aux.el (dired-file-set-difference): Don't use `caddr'.
17697
176982004-07-18 Luc Teirlinck <teirllm@auburn.edu>
17699
17700 * dired-aux.el (dired-do-kill-lines): Expand docstring.
17701 Delete irrelevant code.
17702
177032004-07-17 Kai Grossjohann <kai.grossjohann@gmx.net>
17704
17705 * net/tramp.el (tramp-handle-verify-visited-file-modtime):
17706 New docstring. From Luc Teirlinck.
17707
177082004-07-17 Luc Teirlinck <teirllm@auburn.edu>
17709
17710 * autorevert.el: Describe `Auto Revert Tail Mode' in `Commentary'
17711 section.
17712 (auto-revert-handler): Do not check `auto-revert-tail-mode' for
17713 non-file buffers. We know it is nil.
17714
177152004-07-17 Kai Grossjohann <kai.grossjohann@gmx.net>
17716
17717 Sync with Tramp 2.0.43.
17718
17719 * net/tramp.el (tramp-handle-verify-visited-file-modtime):
17720 Remove outdated comment.
17721 (tramp-locked, tramp-locker): New variables for implementing a
17722 global lock.
17723 (tramp-sh-file-name-handler): Use them to implement the global lock.
17724
177252004-07-13 Michael Albinus <michael.albinus@gmx.de>
17726
17727 * net/tramp.el (all): Code cleanup. Change all `tramp-handle-xxx'
17728 calls to respective `xxx` calls.
17729 (tramp-process-alive-regexp): Precise doc string.
17730 (tramp-multi-action-process-alive): New defun.
17731 (tramp-multi-actions): Use it.
17732 (tramp-handle-find-backup-file-name): `copy-tree' is available
17733 since Emacs 22.1 only (XEmacs has it). Implementation rewritten
17734 in order to avoid this function.
17735 (tramp-handle-write-region): Set current buffer. If connection
17736 wasn't open, `file-modes' has changed it accidentally. Reported by
17737 David Kastrup <dak@gnu.org>.
17738 (tramp-enter-password, tramp-read-passwd): New arguments USER and
17739 HOST.
17740 (tramp-action-password, tramp-multi-action-password): Apply it.
17741 (tramp-open-connection-rsh): If a port is given, the Tramp buffer
17742 name must still contain the port number. Otherwise, we have two
17743 Tramp buffers, with all the confusion. Reported by Myron Selby
17744 <myron@xytech.com> and Rolf Dubitzky
17745 <Dubitzky@physi.uni-heidelberg.de>.
17746
17747 * net/tramp-smb.el (tramp-smb-open-connection): Apply USER and
17748 HOST to `tramp-enter-passwd'.
17749
17750 * net/tramp-vc.el (all): Code cleanup. Change all
17751 `tramp-handle-xxx' calls to respective `xxx` calls.
17752
177532004-07-17 Jonathan Yavner <jyavner@member.fsf.org>
17754
17755 * emacs-lisp/testcover.el: New category "potentially-1valued" for
17756 functions that are not erroneous if either 1-valued or
17757 multi-valued. Detect functions in this class.
17758 (testcover-1value-functions, testcover-compose-functions)
17759 (testcover-progn-functions) Add some additional functions to lists.
17760 (testcover-mark): Bugfix when marking up the definition for an
17761 empty function.
17762
177632004-07-17 Richard M. Stallman <rms@gnu.org>
17764
17765 * replace.el (occur-read-primary-args): Pass default to
17766 read-from-minibuffer.
17767
17768 * mail/footnote.el (footnote-section-tag): Use defcustom.
17769
17770 * font-lock.el (font-lock-add-keywords, font-lock-remove-keywords):
17771 Compile font-lock-keywords, not KEYWORDS.
17772 (lisp-font-lock-keywords-2): Add multiple-value-prog1, go.
17773 Add warn, check-type. Handle cerror like error.
17774
177752004-07-14 Daniel Pfeiffer <occitan@esperanto.org>
17776
17777 * progmodes/which-func.el (which-func-keymap): New var.
17778 (which-func-face): New face.
17779 (which-func-format): Use them.
17780
177812004-07-16 Stephan Stahl <stahl@eos.franken.de> (tiny change)
17782
17783 * buff-menu.el (list-buffers-noselect): Append the buffer's
17784 process status to its mode name.
17785
177862004-07-16 Kim F. Storm <storm@cua.dk>
17787
17788 * simple.el (inhibit-mark-movement): New defvar.
17789 (beginning-of-buffer, end-of-buffer): Do not push mark if
17790 inhibit-mark-movement is non-nil or C-u prefix is given.
17791
17792 * emulation/cua-base.el (cua--preserve-mark-commands): New defvar.
17793 Init to beginning-of-buffer and end-of-buffer.
17794 (cua--undo-push-mark): New defvar.
17795 (cua--pre-command-handler): Set inhibit-mark-movement if mark is
17796 already active and command is in cua--preserve-mark-commands.
17797 Also fix check for shift modifier on non-window systems.
17798 (cua--post-command-handler): Clear inhibit-mark-movement if set.
17799
178002004-07-14 Luc Teirlinck <teirllm@auburn.edu>
17801
17802 * calendar/cal-dst.el (calendar-time-from-absolute): Return a list
17803 of two integers, instead of a cons.
17804
17805 * net/tramp.el (tramp-handle-verify-visited-file-modtime):
17806 `visited-file-modtime' now returns a list of two integers, instead
17807 of a cons.
17808
17809 * dired.el (dired-directory-changed-p): Ditto.
17810
17811 * progmodes/grep.el (grep): Doc fix.
17812
178132004-07-14 Daniel Pfeiffer <occitan@esperanto.org>
17814
17815 * autorevert.el (auto-revert-tail-mode)
17816 (auto-revert-tail-mode-text, auto-revert-tail-pos): New vars.
17817 (auto-revert-mode): Turn off auto-revert-tail-mode, so we're not
17818 in both at the same time.
17819 (auto-revert-tail-mode): New command.
17820 (turn-on-auto-revert-tail-mode, auto-revert-tail-handler): New funs.
17821 (auto-revert-handler): Revert only either tail or whole file.
17822
17823 * bindings.el (mode-line-mode-menu): Fix alphabetical ordering and
17824 add auto-revert-tail-mode.
17825
178262004-07-12 Vinicius Jose Latorre <viniciusjl@ig.com.br>
17827
17828 * printing.el: Doc fix. Change name of some funs.
17829 (pr-dosify-file-name): New fun. Replace ps-dosify-path.
17830 (pr-unixify-file-name): New fun. Replace ps-unixify-path.
17831 (pr-standard-file-name): New fun. Replace pr-standard-path.
17832 (pr-call-process): Code fix.
17833
178342004-07-12 Luc Teirlinck <teirllm@auburn.edu>
17835
17836 * subr.el (with-selected-window): Doc fix.
17837
178382004-07-11 Luc Teirlinck <teirllm@auburn.edu>
17839
17840 * subr.el (get-buffer-window-list): Doc fix.
17841
178422004-07-10 Luc Teirlinck <teirllm@auburn.edu>
17843
17844 * files.el (switch-to-buffer-other-window): Doc fix.
17845
17846 * window.el (save-selected-window, one-window-p)
17847 (split-window-keep-point, split-window-vertically)
17848 (split-window-horizontally): Doc fixes.
17849
178502004-07-10 Vinicius Jose Latorre <viniciusjl@ig.com.br>
17851
17852 * printing.el: Doc fix. Now it uses call-process instead of
17853 shell-command for low command execution.
17854 (pr-version): New version number (6.8).
17855 (pr-shell-file-name): Option removed.
17856 (pr-shell-command): Fun removed.
17857 (pr-call-process): New fun. Replace pr-shell-command.
17858 (pr-standard-path, pr-remove-nil-from-list): New funs.
17859 (zmacs-region-stays, current-mouse-event, current-menubar): New var.
17860 (pr-ps-file-preview, pr-ps-file-using-ghostscript, pr-ps-file-print)
17861 (pr-setup, pr-ps-set-printer, pr-txt-set-printer)
17862 (pr-ps-utility-process, pr-txt-print): Code fix.
17863
178642004-07-10 Stephan Stahl <stahl@eos.franken.de> (tiny change)
17865
17866 * ediff-mult.el (ediff-meta-truncate-filenames): Change type to
17867 boolean.
17868
178692004-07-09 Lars Hansen <larsh@math.ku.dk>
17870
17871 * wid-edit.el (widget-field-buffer): Doc fix.
17872
178732004-07-09 John Paul Wallington <jpw@gnu.org>
17874
17875 * emacs-lisp/re-builder.el (reb-update-overlays):
17876 Distinguish between one and several matches in message.
17877
178782004-07-09 Richard M. Stallman <rms@gnu.org>
17879
17880 * mouse.el (mouse-set-region-1): If transient-mark-mode
17881 is `identity', change it to `only'.
17882
17883 * simple.el (current-word): Doc fix.
17884
178852004-07-09 Mark A. Hershberger <mah@everybody.org>
17886
17887 * progmodes/cperl-mode.el (cperl-mode): Adapt defun-prompt-regexp
17888 so that it is more understanding of whitespace.
17889
17890 * xml.el (xml-maybe-do-ns, xml-parse-tag): Produce elements in the form
17891 (("ns" . "element") (attr-list) children) instead of
17892 ((:ns . "element") (attr-list) children) in order to reduce the
17893 number of symbols used.
17894 (xml-skip-dtd): Change to use xml-parse-dtd but set
17895 xml-validating-parsing to nil.
17896 (xml-parse-dtd): Parse entity declarations in DOCTYPEs.
17897 (xml-substitute-entity): Remove in favor of new entity substitution.
17898 (xml-substitute-special): Rewrite in to substitute complex
17899 entities from DOCTYPE declarations.
17900 (xml-parse-fragment): Parse fragments from entity declarations.
17901 (xml-parse-region, xml-parse-tag, xml-parse-attlist)
17902 (xml-parse-dtd, xml-substitute-special): Make validity checks
17903 conditioned on xml-validating-parser. Add "Not Well Formed" to
17904 error messages about well-formedness.
17905
179062004-07-08 Steven Tamm <steventamm@mac.com>
17907
17908 * term/mac-win.el (mac-scroll-ignore-events, mac-scroll-down)
17909 (mac-scroll-down-line, mac-scroll-up, mac-scroll-up-line):
17910 Do not treat double clicks and triple clicks specially in the
17911 scroll bar (preventing strange repositioning problems)
17912
179132004-07-06 Stefan Monnier <monnier@iro.umontreal.ca>
17914
17915 * replace.el (query-replace-regexp-eval): Fix last change.
17916
179172004-07-05 Stefan Monnier <monnier@iro.umontreal.ca>
17918
17919 * replace.el (query-replace-descr): New fun.
17920 (query-replace-read-from, query-replace-read-args): Default to the
17921 previous from&to.
17922 (query-replace-read-to): Quote the `from' string when displaying it.
17923 (query-replace-regexp-eval): Immediately check read-only status.
17924 Use query-replace-read-from to get the \n checking.
17925 Quote the `from' string when displaying it.
17926 (map-query-replace-regexp, occur-read-primary-args):
17927 Quote the `from' string when displaying it.
17928
17929 * isearch.el (isearch-query-replace): Pass the regexp-ness and
17930 delimited-ness of the search to query-replace.
17931
17932 * replace.el (query-replace-read-from, query-replace-read-to):
17933 New funs extracted from query-replace-read-args.
17934 (query-replace-read-args): Use them.
17935
17936 * replace.el (query-replace-interactive, query-replace-read-args):
17937 Remove the `initial' special value.
17938 (query-replace-regexp-eval, map-query-replace-regexp): Simplify.
17939 (occur-engine): Remove unused var `matchend'.
17940
17941 * isearch.el (isearch-query-replace, isearch-query-replace-regexp):
17942 Use the search string without prompting.
17943
179442004-07-05 Kenichi Handa <handa@m17n.org>
17945
17946 * international/mule.el (decode-coding-inserted-region):
17947 Set last-coding-system-used only when coding is nil.
17948
179492004-07-03 Eli Zaretskii <eliz@gnu.org>
17950
17951 * progmodes/grep.el (grep-compute-defaults, grep-command)
17952 (grep-program, find-program, grep-find-use-xargs, grep-history)
17953 (grep-find-history, grep-tag-default, grep-find-command)
17954 (grep-regexp-alist, grep-process-setup, grep-compute-defaults):
17955 Add autoload cookies, for unbundled packages that load `compile'
17956 and expect all grep-related symbols to become defined.
17957
179582004-07-03 KOSEKI Yoshinori <kose@meadowy.org>
17959
17960 * iimage.el (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
17961 (iimage-mode-image-search-path): New user option to search the
17962 image file.
17963 (iimage-locate-file): New function. Emacs21.3 or earlier does not
17964 have locate-file.
17965 (iimage-mode-buffer): Use it.
17966
179672004-07-03 Nick Roberts <nickrob@gnu.org>
17968
17969 * progmodes/gdb-ui.el (gdb-goto-breakpoint): String match more
17970 carefully.
17971 (gdb-delete-breakpoint, gdb-toggle-breakpoint): Handle gdbmi.
17972
179732004-07-03 Juri Linkov <juri@jurta.org>
17974
17975 * replace.el (query-replace-read-args): Swallow space after 'foo,
17976 not after (quote foo). Match space only immediately after symbol,
17977 not anywhere in the whole string.
17978
179792004-07-02 Richard M. Stallman <rms@gnu.org>
17980
17981 * replace.el (query-replace-read-args): Swallow space after
17982 symbols, not after closeparens. But avoid error if string ends there.
17983
17984 * progmodes/python.el (python-beginning-of-statement):
17985 Exit the loop if backward-up-list gets error.
17986
17987 * textmodes/enriched.el (enriched-encode): Bind inhibit-read-only.
17988
179892004-07-02 Andre Spiegel <spiegel@gnu.org>
17990
17991 * vc-rcs.el (vc-rcs-checkout-model): Look at the version headers
17992 only if vc-consult-headers is non-nil.
17993
179942004-07-02 Juri Linkov <juri@jurta.org>
17995
17996 * pcvs.el (cvs-mode-diff-repository): New command.
17997
17998 * pcvs-defs.el (cvs-mode-diff-map): Bind r to cvs-mode-diff-repository.
17999
180002004-07-01 Juri Linkov <juri@jurta.org>
18001
18002 * isearch.el (isearch-mode-map): Bind C-M-w to isearch-del-char,
18003 C-M-y to isearch-yank-char. Bind M-% to isearch-query-replace,
18004 C-M-% to isearch-query-replace-regexp.
18005 (minibuffer-local-isearch-map): Add arrow key bindings.
18006 Bind C-f to isearch-yank-char-in-minibuffer.
18007 (isearch-forward): Doc fix.
18008 (isearch-edit-string): Doc fix.
18009 (isearch-query-replace, isearch-query-replace-regexp): New funs.
18010 (isearch-del-char): Add optional arg. Set isearch-yank-flag to t.
18011 (isearch-yank-char): Add optional arg.
18012 (isearch-yank-char-in-minibuffer): New fun.
18013
18014 * replace.el (query-replace-interactive): Change type from boolean
18015 to choice. Add value `initial'.
18016 (query-replace-read-args): Handle value `initial' of
18017 query-replace-interactive.
18018
180192004-06-29 Kim F. Storm <storm@cua.dk>
18020
18021 * progmodes/gdb-ui.el (breakpoint-enabled-bitmap-face)
18022 (breakpoint-disabled-bitmap-face): Add :group 'gud.
18023
18024 * progmodes/ada-xref.el (ada-tight-gvd-integration):
18025 Add :group 'ada.
18026
18027 * vc-arch.el (vc-arch-mode-line-rewrite): Add :group 'vc.
18028
180292004-06-29 Juri Linkov <juri@jurta.org>
18030
18031 * replace.el (query-replace-read-args): Swallow a space after
18032 everything except )]" which in most cases means after a symbol.
18033
18034 * emacs-lisp/pp.el (pp-buffer): Add autoload.
18035
180362004-06-28 Richard M. Stallman <rms@gnu.org>
18037
18038 * font-lock.el (font-lock-fontify-syntactic-keywords-region):
18039 More changes to go with previous change in font-lock.el.
18040
180412004-06-26 David Kastrup <dak@gnu.org>
18042
18043 * replace.el (perform-replace): Highlight the match even in
18044 non-query mode if there is potential replace string editing.
18045
180462004-06-26 Kai Grossjohann <kai.grossjohann@gmx.net>
18047
18048 * net/tramp.el (tramp-handle-file-remote-p): New implementation to
18049 agree with new return value of `file-remote-p'.
18050 This syncs with Tramp 2.0.42.
18051
18052 * net/ange-ftp.el (ange-ftp-file-remote-p): New return value,
18053 according to new documentation of `file-remote-p'.
18054
18055 * files.el (file-remote-p): Fix doc to say that return value is
18056 identification of remote system, if not nil.
18057 (file-relative-name): Use new return value of `file-remote-p'.
18058
180592004-06-26 Nick Roberts <nickrob@gnu.org>
18060
18061 * progmodes/gdb-ui.el (gdb-toggle-breakpoint)
18062 (gdb-goto-breakpoint): Fix breakage.
18063
180642004-06-26 Eli Zaretskii <eliz@gnu.org>
18065
18066 * man.el (Man-getpage-in-background): Add windows-nt to the list
18067 of systems where shell-file-name should be used instead of
18068 literal "sh".
18069
180702004-06-25 Sam Steingold <sds@gnu.org>
18071
18072 * add-log.el (change-log-font-lock-keywords): Support Common Lisp
18073 function names `(setf symbol)'.
18074
180752004-06-24 Richard M. Stallman <rms@gnu.org>
18076
18077 * replace.el (query-replace-read-args): Swallow space after \,SYMBOL.
18078
18079 * font-lock.el (font-lock-keywords): Change format of compiled values.
18080 Document it.
18081 (font-lock-add-keywords): If font-lock-keywords is compiled,
18082 extract the uncompiled version, modify, then recompile.
18083 (font-lock-remove-keywords): Likewise.
18084 (font-lock-fontify-keywords-region): Handle changed format.
18085 (font-lock-compile-keywords): Handle changed format.
18086 (font-lock-set-defaults): Compile the keywords explicitly here.
18087
180882004-06-24 David Kastrup <dak@gnu.org>
18089
18090 * replace.el (query-replace-read-args): Implement `\,' and `\#'
18091 replacements here.
18092 (query-replace-regexp): Doc string explaining this and the new
18093 `\?' replacement. Remove `\,' and `\#' implementation here, as it
18094 is better placed in `query-replace-read-args'.
18095 (replace-regexp): Explain `\,', `\#' and `\?'.
18096 (replace-match-data): New function for thorough reuse/destruction
18097 of old match-data.
18098 (replace-match-maybe-edit): Function for implementing `\?' editing.
18099 (perform-replace): Fix maintaining of the match stack including
18100 already matched regions, implement `\?', fix various problems
18101 with regions while editing and other stuff.
18102 (replace-highlight): Simplify.
18103
181042004-06-24 Daniel Pfeiffer <occitan@esperanto.org>
18105
18106 * progmodes/grep.el (grep-error-screen-columns): New variable.
18107 (grep-regexp-alist): Give it the full functionality of gnu style
18108 compilation messages with line and column ranges. Ask me for the
18109 perl script I'm working on, that uses these.
18110
181112004-06-23 Nick Roberts <nickrob@gnu.org>
18112
18113 * comint.el (comint-insert-clicked-input, comint-copy-old-input):
18114 Remove.
18115 (comint-insert-input, comint-mouse-insert-input): New functions
18116 based on comint-insert-clicked-input for two bindings but just
18117 one functionality.
18118
181192004-06-23 Luc Teirlinck <teirllm@auburn.edu>
18120
18121 * net/goto-addr.el (goto-address-fontify): Fix help-echo text.
18122
181232004-06-23 Lars Hansen <larsh@math.ku.dk>
18124
18125 * files.el (write-contents-functions): Doc fix.
18126
181272004-06-21 Juanma Barranquero <lektu@terra.es>
18128
18129 * image.el (image-library-alist): Rewrite docstring in active voice.
18130
181312004-06-20 Richard M. Stallman <rms@gnu.org>
18132
18133 * mouse.el (mouse-set-region-1): Set transient-mark-mode to `only'.
18134
18135 * isearch.el (isearch-repeat): Avoid testing old match data.
18136 (isearch-message): Display trailing space in special font
18137 when search is failing.
18138 (isearch-search-fun-function): Doc fix.
18139
18140 * autorevert.el (global-auto-revert-non-file-buffers): Doc fix.
18141
181422004-06-19 Luc Teirlinck <teirllm@auburn.edu>
18143
18144 * frame.el (show-trailing-whitespace): Doc fix.
18145
18146 * cus-edit.el (custom-variable-documentation): New function.
18147 (custom-variable): Use it.
18148
181492004-06-19 Nick Roberts <nickrob@gnu.org>
18150
18151 * man.el (Man-getpage-in-background): Revert previous change but
18152 make cygwin a special case.
18153
181542004-06-18 Luc Teirlinck <teirllm@auburn.edu>
18155
18156 * autorevert.el (global-auto-revert-non-file-buffers):
18157 Update docstring.
18158
181592004-06-19 Daniel Pfeiffer <occitan@esperanto.org>
18160
18161 * progmodes/compile.el (compilation-error-properties): Store one
18162 more than end-col, if present, so that transient-mark-mode will
18163 highlight last char too.
18164 * progmodes/grep.el (grep-regexp-alist): Match columns and column
18165 ranges, if present.
18166
181672004-06-18 Jason Rumney <jasonr@gnu.org>
18168
18169 * makefile.w32-in: Double percent signs in for loops.
18170
181712004-06-17 David Kastrup <dak@gnu.org>
18172
18173 * replace.el (query-replace-read-args): Only warn about use of \n
18174 and \t when we are doing a regexp replacement and the actual
18175 escaped character is n or t.
18176 (query-replace-regexp): Add \, and \# interpretation to
18177 interactive call and document it.
18178 (query-replace-regexp-eval, replace-match-string-symbols): Add \#
18179 as shortkey for replace-count.
18180 (replace-quote): New function for doubling backslashes.
18181
181822004-06-17 Juanma Barranquero <lektu@terra.es>
18183
18184 * files.el (parse-colon-path, cd): Mention in docstring that the
18185 path separator is colon in GNU-like systems.
18186
18187 * newcomment.el (comment-region-internal): Fix docstring.
18188
18189 * emacs-lisp/ewoc.el (ewoc-create, ewoc-map, ewoc-locate)
18190 (ewoc-invalidate, ewoc-collect): Doc fixes.
18191 (ewoc--create-node, ewoc--delete-node-internal):
18192 Fix typos in docstring.
18193
181942004-06-15 Luc Teirlinck <teirllm@auburn.edu>
18195
18196 * files.el (buffer-stale-function): Add hyperlink to emacs-xtra
18197 manual to docstring.
18198
181992004-06-15 Vinicius Jose Latorre <viniciusjl@ig.com.br>
18200
18201 * ps-print.el (ps-time-stamp-iso8601): Comment doc string of defalias.
18202
182032004-06-15 Luc Teirlinck <teirllm@auburn.edu>
18204
18205 * dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
18206 Add hyperlink to emacs-xtra manual to docstring.
18207
18208 * autorevert.el (global-auto-revert-non-file-buffers):
18209 Add hyperlink to emacs-xtra manual to docstring, as well as an
18210 info-link.
18211
182122004-06-14 Juanma Barranquero <lektu@terra.es>
18213
18214 * image.el (image-library-alist): New variable to map image types
18215 to external libraries. Initialized to nil, unless system-specific
18216 configs change it.
18217 (image-type-available-p): Determine whether an image type is
18218 available by calling `init-image-library'.
18219
18220 * term/w32-win.el (image-library-alist): Initialize to a known set
18221 of probable library names.
18222
182232004-06-14 Kenichi Handa <handa@m17n.org>
18224
18225 * international/code-pages.el (windows-1256, cp1125): Fix tables
18226 for several characters.
18227
18228 * international/utf-8.el (ccl-encode-mule-utf-8): Fix previous change.
18229
182302004-06-13 Richard M. Stallman <rms@gnu.org>
18231
18232 * textmodes/paragraphs.el (sentence-end): Add 0x5397d as close brace.
18233
18234 * emulation/pc-select.el: Doc fixes: say "PC Selection mode",
18235 not "`pc-selection-mode'".
18236
18237 * emacs-lisp/bytecomp.el: Put `...' around symbols in warning messages.
18238
18239 * simple.el (previous-matching-history-element): Specify a default.
18240
18241 * hexl.el (hexl-mode): Catch errors in hexl-goto-address.
18242
18243 * cus-face.el (custom-declare-face): Simplify code.
18244
18245 * abbrev.el (abbrev-mode, edit-abbrevs-map): Doc fixes.
18246
182472004-06-13 Luc Teirlinck <teirllm@auburn.edu>
18248
18249 * files.el (before-save-hook): Add `time-stamp' to the options.
18250
18251 * time-stamp.el (time-stamp): Recommend adding it to
18252 `before-save-hook', rather than `write-file-functions'.
18253 Make a similar change in `Commentary' section.
18254
182552004-06-13 Kai Grossjohann <kai.grossjohann@gmx.net>
18256
18257 * diff-mode.el (diff-current-defun): If at start of hunk, use
18258 position of first change.
18259
182602004-06-13 Lars Hansen <larsh@math.ku.dk>
18261
18262 * dired-x.el (dired-mark-omitted): Bind to "*O".
18263
182642004-06-12 Karl Fogel <kfogel@red-bean.com>
18265
18266 * bookmark.el (bookmark-bmenu-relocate): New function, as
18267 suggested by David J. Biesack <David.Biesack@sas.com>.
18268 (bookmark-bmenu-mode-map): Bind `bookmark-bmenu-relocate' to "R".
18269 (bookmark-bmenu-mode): Describe binding in doc string.
18270 (bookmark-set-filename): Save the bookmark list if it's time.
18271
182722004-06-13 Kenichi Handa <handa@m17n.org>
18273
18274 * international/utf-8.el (ccl-decode-mule-utf-8): Fix previous change.
18275 (ccl-untranslated-to-ucs): Fix typo.
18276
182772004-06-12 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change)
18278
18279 * progmodes/python.el (python-open-block-statement-p):
18280 Fix indentation after a block opening that contains a comment.
18281
182822004-06-12 J,Ai(Br,At(Bme Marant <jerome@marant.org> (tiny change)
18283
18284 * bindings.el (completion-ignored-extensions): Add file extensions
18285 of Python byte-compiled files.
18286
182872004-06-12 Juri Linkov <juri@jurta.org>
18288
18289 * info.el (Info-goto-node): Add autoload.
18290 (Info-toc): Add substring-no-properties on Info file name.
18291 (Info-mode, info, Info-toc, Info-mode-menu): Doc fix.
18292 (Info-mode-map): Bind L to Info-history, T to Info-toc.
18293
182942004-06-12 Kenichi Handa <handa@m17n.org>
18295
18296 * international/mule-cmds.el (set-language-environment):
18297 Load subst tables if necessary.
18298
18299 * international/mule.el (decode-char): Load subst tables if necessary.
18300 (encode-char): Likewise.
18301
18302 * international/utf-16.el (utf-16-decode-ucs): Handle a surrogate
18303 pair correctly. Call ccl-mule-utf-untrans for untranslable chars.
18304 (utf-16le-decode-loop): Set r5 to -1 before loop.
18305 (utf-16be-decode-loop): Likewise.
18306 (ccl-decode-mule-utf-16le): Add EOF processing block.
18307 (ccl-decode-mule-utf-16be): Likewise.
18308 (ccl-decode-mule-utf-16le-with-signature): Likewise.
18309 (ccl-decode-mule-utf-16be-with-signature): Likewise.
18310 (ccl-decode-mule-utf-16): Likewise. Set r5 to -1 initially.
18311 (ccl-mule-utf-16-encode-untrans): New CCL.
18312 (utf-16-decode-to-ucs): Handle pre-read character.
18313 (utf-16le-encode-loop): Handle surrogate pair.
18314 (utf-16be-encode-loop): Likewise.
18315 (ccl-encode-mule-utf-16le-with-signature): Adjust for the change
18316 of utf-16le-encode-loop.
18317 (ccl-encode-mule-utf-16be-with-signature): Adjust for the change
18318 of utf-16be-encode-loop.
18319 (mule-utf-16-post-read-conversion):
18320 Call utf-8-post-read-conversion at first.
18321 (mule-utf-16[{le|be}], mule-utf-16{le|be}-with-signature):
18322 Include CJK charsets in safe-charsets if utf-translate-cjk-mode is on.
18323 Add post-read-conversion and pre-write-conversion.
18324
18325 * international/utf-8.el (utf-translate-cjk-charsets): New variable.
18326 (utf-translate-cjk-unicode-range): New variable.
18327 (utf-translate-cjk-load-tables): New function.
18328 (utf-lookup-subst-table-for-decode): New function.
18329 (utf-lookup-subst-table-for-encode): New function.
18330 (utf-translate-cjk-mode): Init-value changed to t. Don't load
18331 tables here. Update safe-charsets of utf-* coding systems.
18332 (ccl-mule-utf-untrans): New CCL.
18333 (ccl-decode-mule-utf-8): Call ccl-mule-utf-untrans. Use `repeat'
18334 at end of each branch.
18335 (ccl-mule-utf-8-encode-untrans): New CCL.
18336 (ccl-encode-mule-utf-8): Call ccl-mule-utf-8-encode-untrans.
18337 (ccl-untranslated-to-ucs): Handle 2-byte encoding. Set r1 to the
18338 length of encoding. Don't return r0.
18339 (utf-8-compose): New arg hash-table. Handle 2-byte encoding.
18340 (utf-8-post-read-conversion): Narrow to region properly.
18341 If utf-translate-cjk-mode is on, load tables if necessary.
18342 Call utf-8-compose with hash-table arg if necessary.
18343 Call XXX-compose-region instead of XXX-post-read-conversion.
18344 (utf-8-pre-write-conversion): New function.
18345 (mule-utf-8): Include CJK charsets in safe-charsets if
18346 utf-translate-cjk-mode is on. Add pre-write-conversion.
18347
18348 * international/characters.el: Temporarily set
18349 utf-translate-cjk-mode to nil.
18350
18351 * language/devan-util.el (devanagari-compose-region):
18352 Add autoload cookie.
18353
18354 * international/ccl.el (ccl-dump-call): Fix printing the
18355 subroutine name.
18356
183572004-06-11 Luc Teirlinck <teirllm@auburn.edu>
18358
18359 * dired.el (dired-revert): If buffer is marked unmodified before
18360 reverting, keep it marked unmodified. Adapt to new conventions
18361 for commenting out code.
18362 (dired-make-relative): Adapt to new conventions for commenting out
18363 code.
18364
183652004-06-10 Miles Bader <miles@gnu.ai.mit.edu>
18366
18367 * eshell/esh-module.el (eshell-load-defgroups):
18368 Bind `vc-handled-backends' to nil when opening files.
18369
183702004-06-11 Juanma Barranquero <lektu@terra.es>
18371
18372 * files.el (parse-colon-path, cd): Doc fixes (refer to
18373 `path-separator', not colon).
18374
183752004-06-10 Juanma Barranquero <lektu@terra.es>
18376
18377 * newcomment.el (comment-search-forward)
18378 (comment-search-backward): Fix typos in docstring.
18379 (comment-region): Doc fix.
18380
183812004-06-10 Luc Teirlinck <teirllm@auburn.edu>
18382
18383 * dired.el (dired-insert-old-subdirs): Adapt to fact that the R
18384 switch is no longer stored in `dired-switches-alist'.
18385
18386 * dired-aux.el (dired-insert-subdir): Do not store R switch in
18387 `dired-switches-alist'.
18388
183892004-06-10 Kim F. Storm <storm@cua.dk>
18390
18391 * pcvs.el (cvs-mode-diff-yesterday): New command.
18392
18393 * pcvs-defs.el (cvs-mode-diff-map): Bind y to cvs-mode-diff-yesterday.
18394
183952004-06-10 Juri Linkov <juri@jurta.org>
18396
18397 * emacs-lisp/edebug.el (edebug-eval-defun):
18398 * emacs-lisp/lisp-mode.el (eval-defun-1): Add `defface'.
18399 Fix docstring.
18400
18401 * simple.el (eval-expression-print-format): Don't print additional
18402 information on the first call to `eval-print-last-sexp'.
18403 (next-error-find-buffer): Fix punctuation.
18404 (killing) <defgroup>: Fix punctuation.
18405 (yank-excluded-properties): Change group from editing to killing.
18406
18407 * replace.el (perform-replace): Use `limit' to terminate the
18408 while-loop explicitly.
18409
184102004-06-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
18411
18412 * toolbar/tool-bar.el (tool-bar-add-item, tool-bar-local-item):
18413 Use lc-*.xpm as prefix instead of *-locol.xpm.
18414
18415 * toolbar/lc-copy.xpm, toolbar/lc-cut.xpm
18416 * toolbar/lc-help.xpm, toolbar/lc-home.xpm
18417 * toolbar/lc-index.xpm, toolbar/lc-jump_to.xpm
18418 * toolbar/lc-left_arrow.xpm, toolbar/lc-new.xpm
18419 * toolbar/lc-open.xpm, toolbar/lc-paste.xpm
18420 * toolbar/lc-preferences.xpm, toolbar/lc-print.xpm
18421 * toolbar/lc-right_arrow.xpm, toolbar/lc-save.xpm
18422 * toolbar/lc-saveas.xpm, toolbar/lc-search.xpm
18423 * toolbar/lc-spell.xpm, toolbar/lc-undo.xpm
18424 * toolbar/lc-up_arrow.xpm:
18425 Rename from *-locol.xpm.
18426
184272004-06-09 Rajesh Vaidheeswarran <rv@gnu.org>
18428
18429 * ffap.el (ffap-string-at-point-mode-alist): Fix the url mode to
18430 include forms like &<str>; as valid url patterns.
18431
184322004-06-08 Luc Teirlinck <teirllm@auburn.edu>
18433
18434 * dired.el (dired-diff, dired-backup-diff)
18435 (dired-clean-directory, dired-do-chmod, dired-do-chgrp)
18436 (dired-do-chown, dired-do-touch, dired-do-print)
18437 (dired-do-shell-command, dired-do-kill-lines, dired-do-compress)
18438 (dired-do-byte-compile, dired-do-load, dired-do-redisplay)
18439 (dired-create-directory, dired-do-copy, dired-do-symlink)
18440 (dired-do-hardlink, dired-do-rename, dired-do-rename-regexp)
18441 (dired-do-copy-regexp, dired-do-hardlink-regexp)
18442 (dired-do-symlink-regexp, dired-upcase, dired-downcase)
18443 (dired-maybe-insert-subdir, dired-next-subdir)
18444 (dired-prev-subdir, dired-goto-subdir, dired-mark-subdir-files)
18445 (dired-kill-subdir, dired-tree-up, dired-tree-down)
18446 (dired-hide-subdir, dired-hide-all, dired-show-file-type)
18447 (dired-run-shell-command, dired-query): Remove redundant,
18448 or incorrect, autoloads.
18449
18450 * dired-aux.el (dired-kill-tree): Do not kill DIRNAME, even if it
18451 does not end in a slash. Add optional argument KILL-ROOT.
18452 Update docstring.
18453 (dired-do-touch, dired-clean-directory, dired-run-shell-command)
18454 (dired-query): Add autoloads.
18455
184562004-06-08 Daniel Pfeiffer <occitan@esperanto.org>
18457
18458 * progmodes/compile.el (compilation-set-window-height): Rearrange
18459 the save-* functions because a buffer can have several current
18460 point in different windows.
18461 (compilation-error-regexp-alist-alist): Recognize {standard input}
18462 GNU messages (for gcc --pipe) and more kinds of Oracle messages.
18463
184642004-06-08 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
18465
18466 * toolbar/copy-locol.xpm, toolbar/cut-locol.xpm
18467 * toolbar/help-locol.xpm, toolbar/home-locol.xpm
18468 * toolbar/index-locol.xpm, toolbar/jump_to-locol.xpm
18469 * toolbar/left_arrow-locol.xpm, toolbar/new-locol.xpm
18470 * toolbar/open-locol.xpm, toolbar/paste-locol.xpm
18471 * toolbar/preferences-locol.xpm, toolbar/print-locol.xpm
18472 * toolbar/right_arrow-locol.xpm, toolbar/save-locol.xpm
18473 * toolbar/saveas-locol.xpm, toolbar/search-locol.xpm
18474 * toolbar/spell-locol.xpm, toolbar/undo-locol.xpm
18475 * toolbar/up_arrow-locol.xpm:
18476 New versions of icons that uses fewer colors.
18477
18478 * toolbar/tool-bar.el (tool-bar-local-item)
18479 (tool-bar-local-item-from-menu): Try to use icons with fewer colors
18480 if display-color-cells is 256 or less.
18481
184822004-06-08 Kim F. Storm <storm@cua.dk>
18483
18484 * wid-edit.el (widget-specify-button): Use hand pointer rather
18485 than mouse-face as visible mouse-over effect.
18486
184872004-06-07 Karl Fogel <kfogel@red-bean.com>
18488
18489 * saveplace.el (save-place-alist-to-file): Bind `print-length'
18490 and `print-level' to nil when writing out `save-place-alist'.
18491 Thanks to Kai Grossjohann <kai@emptydomain.de> for enlightenment.
18492
184932004-06-07 Juanma Barranquero <lektu@terra.es>
18494
18495 * completion.el (completion-kill-region): Doc fix.
18496
18497 * format.el (format-insert-annotations)
18498 (format-annotate-location): Doc fixes.
18499 (format-subtract-regions): Make arguments match their use in docstring.
18500
18501 * simple.el (kill-region): Doc fix.
18502
18503 * subr.el (insert-buffer-substring-no-properties)
18504 (insert-buffer-substring-as-yank): Doc fixes.
18505
185062004-06-07 Luc Teirlinck <teirllm@auburn.edu>
18507
18508 * dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
18509 Update docstring.
18510 (dired-reset-subdir-switches): New function.
18511
18512 * dired.el (dired-undo): Call `dired-build-subdir-alist'.
18513 Limit scope of `buffer-read-only' binding.
18514
185152004-06-06 Emilio C. Lopes <eclig@gmx.net>
18516
18517 * eshell/esh-cmd.el (eshell/which): Respect commands quoted with
18518 eshell-explicit-command-char.
18519
185202004-06-06 Juanma Barranquero <lektu@terra.es>
18521
18522 * help-fns.el (help-argument-name): Inherit from italic face only
18523 if the frame supports it.
18524
185252004-06-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
18526
18527 * toolbar/alias.pbm, toolbar/close.pbm, toolbar/copy.pbm
18528 * toolbar/cut.pbm, toolbar/help.pbm, toolbar/home.pbm
18529 * toolbar/index.pbm, toolbar/jump_to.pbm, toolbar/left_arrow.pbm
18530 * toolbar/new.pbm, toolbar/open.pbm, toolbar/paste.pbm
18531 * toolbar/preferences.pbm, toolbar/print.pbm, toolbar/right_arrow.pbm
18532 * toolbar/save.pbm, toolbar/saveas.pbm, toolbar/search.pbm
18533 * toolbar/spell.pbm, toolbar/undo.pbm, toolbar/up_arrow.pbm:
18534 New conversions from xpm files.
18535
18536 * toolbar/README: New file.
18537
185382004-06-06 Richard M. Stallman <rms@gnu.org>
18539
18540 * isearch.el (isearch-mode-map): Undo previous change.
18541
185422004-06-05 Juri Linkov <juri@jurta.org>
18543
18544 * bindings.el (debug-ignored-errors): Add regexps for history
18545 related messages. Remove $ from "No further undo information".
18546 Move Ediff's messages to ediff.el.
18547
18548 * ediff.el: Move Ediff's debug-ignored-errors from bindings.el.
18549
18550 * cus-edit.el (custom-display): Add `min-colors'.
18551
18552 * custom.el (defface): Add `supports' to docstring.
18553
18554 * help-fns.el (help-argument-name): Add :group 'help.
18555
185562004-06-05 Luc Teirlinck <teirllm@auburn.edu>
18557
18558 * find-dired.el (find-ls-subdir-switches): New user option.
18559 (find-dired): No longer call `abbreviate-file-name' on DIR.
18560 Set `dired-subdir-switches' buffer-locally.
18561
18562 * locate.el: Merge the two `Commentary' sections.
18563 (locate-ls-subdir-switches): New user option.
18564 (locate): Update for other changes.
18565 (locate-mode-map): Restore Dired binding for mouse-2.
18566 Bind `locate-mouse-view-file' to M-mouse-2.
18567 Bind `l' to `locate-do-redisplay'.
18568 (locate-main-listing-line-p, locate-do-redisplay): New functions.
18569 (locate-mouse-view-file, locate-tags, locate-find-directory):
18570 Print message if used outside main listing.
18571 (locate-mode): Update docstring. Make `*Locate*' buffer read-only.
18572 Various changes to support inserted subdirectories.
18573 (locate-insert-header): Change header of *Locate* buffer.
18574
18575 * dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
18576 Change interactive default switches.
18577 (dired-rename-subdir-2): Update `dired-switches-alist'.
18578 (dired-insert-subdir, dired-kill-subdir):
18579 Handle `dired-switches-alist'. Do not mark buffer modified.
18580 (dired-insert-subdir-validate): Handle `dired-subdir-switches'.
18581 (dired-insert-subdir-doinsert): Omit messages.
18582 Handle `dired-subdir-switches'.
18583 (dired-hide-subdir, dired-hide-all): Do not mark buffer modified.
18584
18585 * dired.el (dired-subdir-switches, dired-switches-alist): New vars.
18586 (dired-insert-old-subdirs): Do not repeatedly delete and reinsert
18587 subdirs if -R switch is used for a subdir.
18588 (dired-mode): Set `dired-switches-alist'.
18589 (dired-build-subdir-alist): Only print number of directories in
18590 echo area when invoked interactively.
18591
185922004-06-05 Lars Hansen <larsh@math.ku.dk>
18593
18594 * dired-x.el (dired-omit-mode): Rename from
18595 dired-omit-files-p. Use define-minor-mode to define it.
18596 (dired-omit-files-p): Add as alias for dired-omit-mode.
18597 (dired-omit-toggle): Delete. Replaced by dired-omit-mode and
18598 dired-mark-omitted.
18599 (dired-mark-omitted): Add. Bind to M-O.
18600
186012004-06-05 Kenichi Handa <handa@m17n.org>
18602
18603 * ps-print.el: Fix typos (kein'ichi -> ken'ichi)
18604
186052004-06-05 Juanma Barranquero <lektu@terra.es>
18606
18607 * help-fns.el (help-argument-name): Reintroduce face.
18608 (help-default-arg-highlight): Use it, now that
18609 `face-differs-from-default-p' can be trusted.
18610
186112004-06-05 Matt Hodges <matt@stchem.bham.ac.uk> (tiny change)
18612
18613 * textmodes/table.el: Sentence commands added to Point Motion
18614 group; kill and backward-kill commands added to Extraction group.
18615
186162004-06-04 Mario Lang <mlang@delysid.org>
18617
18618 * battery.el (battery-linux-proc-acpi): `mA' was hardcoded, but some
18619 systems appear to use mW, make the code handle this. Fix a
18620 division-by-zero bug while at it, and handle kernels with
18621 a slightly different layout in /proc/acpi.
18622
186232004-06-04 Karl Fogel <kfogel@red-bean.com>
18624
18625 * vc-svn.el (vc-svn-checkin): Use `nconc' instead of `list*',
18626 because the latter is a CL-ism. This fixes the bug reported by
18627 Shawn Boyette <mdxi@collapsar.net> in
18628 http://lists.gnu.org/archive/html/emacs-devel/2004-05/msg00442.html.
18629
186302004-06-04 Miles Bader <miles@gnu.org>
18631
18632 * faces.el (display-supports-face-attributes-p): Function moved to
18633 C code. Previously only the tty-related portion of this function
18634 was done in C; however the previous attempt to do a halfway-proper
18635 job for non-tty displays in lisp didn't work properly because of
18636 funny conditions during Emacs startup.
18637 (face-differs-from-default-p): Simplify, now that
18638 display-supports-face-attributes-p works properly on all display
18639 types. Remove :stipple from comparison; it doesn't really work
18640 in emacs anyway.
18641
186422004-06-04 Miles Bader <miles@gnu.org>
18643
18644 * faces.el (face-differs-from-default-p): Use a different
18645 implementation, so we can really check whether FACE displays
18646 differently or not.
18647
186482004-06-04 Miles Bader <miles@gnu.org>
18649
18650 * faces.el (display-supports-face-attributes-p): Implement a
18651 `different from default' check for non-tty displays.
18652
186532004-06-03 David Kastrup <dak@gnu.org>
18654
18655 * woman.el (woman-mapcan): More concise code.
18656 (woman-topic-all-completions, woman-topic-all-completions-1)
18657 (woman-topic-all-completions-merge): Replace by a simpler and
18658 much faster implementation based on O(n log n) sort/merge instead
18659 of the old O(n^2) behavior.
18660
186612004-06-03 Miles Bader <miles@gnu.org>
18662
18663 * subr.el (read-number): Use canonical format for default in prompt.
18664
18665 * minibuf-eldef.el (minibuffer-default-in-prompt-regexps):
18666 Add regexp for " [...]" style defaults.
18667
186682004-06-02 Romain Francoise <romain@orebokech.com>
18669
18670 * ibuf-ext.el (ibuffer-jump-to-buffer): Add support for filter
18671 groups: if the user asks for a hidden buffer, open the
18672 corresponding filter group to expose it.
18673
18674 * ibuffer.el (ibuffer-mode-map): Add key binding `M-g' to
18675 `ibuffer-jump-to-buffer'.
18676 (ibuffer-jump-offer-only-visible-buffers): New user option.
18677
186782004-06-02 Juanma Barranquero <lektu@terra.es>
18679
18680 * faces.el (frame-update-faces): Add empty docstring so the one
18681 for `ignore' doesn't show through.
18682
18683 * subr.el (process-kill-without-query): Remove spurious "\n" on
18684 obsolescence string.
18685 (focus-frame, unfocus-frame): Add obsolescence declaration and
18686 empty docstring.
18687
18688 * international/mule.el (register-char-codings): Make alias for
18689 `ignore'. Move docstring to obsolescence info and remove redundancy.
18690
186912004-06-02 Kim F. Storm <storm@cua.dk>
18692
18693 * frame.el (blink-cursor-start): Turn cursor off initially so blink
18694 starts after blink-cursor-delay rather than 2*blink-cursor-delay.
18695
186962004-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
18697
18698 * comint.el (comint-replace-by-expanded-history-before-point):
18699 Obey `start' as the docstring says.
18700 (comint-send-input, comint-snapshot-last-prompt, comint-output-filter)
18701 (comint-update-fence): Prevent font-lock from running unnecessarily.
18702 (comint-dynamic-list-completions): Use with-current-buffer.
18703
187042004-06-01 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
18705
18706 * textmodes/bibtex.el (bibtex-format-entry): Fix regexps.
18707 (bibtex-parse-strings): Bugfix, use assoc instead of assoc-string.
18708 (bibtex-entry-update): Handle alternatives and optional fields.
18709 (bibtex-parse-entry): Bugfix, handle empty key.
18710
187112004-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
18712
18713 * vc-arch.el (vc-arch-state): Don't assume the file exists.
18714
187152004-05-31 Lars Hansen <larsh@math.ku.dk>
18716
18717 * desktop.el (desktop-save): Don't save minor modes without a
18718 known mode initialization function.
18719
187202004-05-30 Luc Teirlinck <teirllm@auburn.edu>
18721
18722 * replace.el (query-replace-interactive): Convert defvar -> defcustom.
18723
18724 * autorevert.el: Update `Commentary' section.
18725
187262004-05-30 Juanma Barranquero <lektu@terra.es>
18727
18728 * dos-fns.el (convert-standard-filename):
18729 * files.el (convert-standard-filename):
18730 * w32-fns.el (convert-standard-filename):
18731 Rework docstring (wording by Eli Zaretskii and Kai Grossjohann).
18732
187332004-05-30 Kai Grossjohann <kai.grossjohann@gmx.net>
18734
18735 Sync with Tramp.
18736
18737 * net/tramp.el (tramp-let-maybe): Reverse args of `get'.
18738 (tramp-let-maybe): Move to an earlier spot in the file.
18739 Patch by Andreas Schwab.
18740
187412004-05-30 Andreas Schwab <schwab@suse.de>
18742
18743 * dired.el (dired-get-filename): Don't use dired-re-dot.
18744
187452004-05-30 Richard M. Stallman <rms@gnu.org>
18746
18747 * files.el (find-file): Doc fix.
18748
18749 * font-lock.el (lisp-font-lock-keywords-2): Add multiple-value-bind.
18750
187512004-05-30 Nick Roberts <nickrob@gnu.org>
18752
18753 * progmodes/gdb-ui.el (gdb-current-frame, gud-watch)
18754 (gdb-locals-mode, gdb-frame-handler): Display current frame in the
18755 modeline of the locals buffer.
18756 (gdb-goto-breakpoint): Handle gdbmi.
18757 (gdb-get-frame-number): Change for gdbmi.
18758
187592004-05-30 Michael Albinus <michael.albinus@gmx.de>
18760
18761 * files.el (file-remote-p): Apply file name handler for operation
18762 `file-remote-p'. It isn't a property any longer.
18763 (file-relative-name): `fh' and `fd' get the required value via
18764 `find-file-name-handler' already.
18765
18766 * ange-ftp.el (ange-ftp-file-remote-p): New defun.
18767 (top): Remove setting of `file-remote-p' property for
18768 `ange-ftp-hook-function'. Add `ange-ftp' property to `file-remote-p'.
18769
187702004-05-29 Michael Albinus <michael.albinus@gmx.de>
18771
18772 Version 2.0.41 of Tramp released.
18773
18774 * tramp.el (tramp-wait-for-regexp, tramp-wait-for-output):
18775 Throw away if process has died.
18776 Reported by Luc Teirlinck <teirllm@dms.auburn.edu>.
18777 (tramp-out-of-band-prompt-regexp): Rename to
18778 `tramp-process-alive-regexp', because its usage is widen.
18779 (tramp-actions-copy-out-of-band): Apply it.
18780 (tramp-actions-before-shell, tramp-multi-actions):
18781 Add `tramp-action-process-alive' action.
18782 (tramp-action-process-alive): New defun.
18783 (tramp-file-name-handler-alist, tramp-file-name-for-operation):
18784 Add entry for `file-remote-p'.
18785 (tramp-handle-file-remote-p): New defun.
18786 (top): Remove setting of `file-remote-p'. Don't set
18787 `inhibit-file-name-handlers' and `inhibit-file-name-operation'.
18788
18789 * tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry for
18790 `file-remote-p'.
18791
18792 * tramp-uu.el (tramp-uuencode-region): Padding characters aren't
18793 counted for (last) line. [They should or they shouldn't? --Stef]
18794 Reported by Aaron Ucko <ucko@ncbi.nlm.nih.gov>.
18795
187962004-05-29 Kai Grossjohann <kai.grossjohann@gmx.net>
18797
18798 * tramp.el (tramp-initial-commands): Add "unset HISTFILE"; this is
18799 not really necessary but seems to keep the shell history smaller
18800 in some cases. It is no substitute for setting HISTFILE and
18801 HISTSIZE from tramp-open-connection-setup-interactive-shell,
18802 though. Suggested by Luc Teirlinck.
18803 (tramp-open-connection-setup-interactive-shell): Export variables
18804 HISTFILE and HISTSIZE, do not just set them. From Luc Teirlinck.
18805 (tramp-set-process-query-on-exit-flag): New compat function.
18806 (tramp-open-connection-multi, tramp-open-connection-su)
18807 (tramp-open-connection-rsh, tramp-open-connection-telnet)
18808 (tramp-do-copy-or-rename-file-out-of-band): Use it.
18809 (tramp-let-maybe): New macro, let-binds a variable only if it
18810 isn't obsolete.
18811 (tramp-check-ls-commands, tramp-handle-expand-file-name)
18812 (tramp-handle-file-truename): Use it.
18813 (tramp-completion-file-name-regexp-unified): Avoid matching
18814 filenames starting with "/:" -- those are reserved for
18815 file-name-non-special.
18816
18817 * tramp-smb.el (tramp-smb-open-connection):
18818 Use tramp-set-process-query-on-exit-flag compat function.
18819
188202004-05-29 Richard M. Stallman <rms@gnu.org>
18821
18822 * net/browse-url.el (browse-url-interactive-arg): Doc fix.
18823
18824 * emacs-lisp/lisp-mode.el (prin1-char): Catch errors from `string'.
18825 (eval-last-sexp-print-value): Print char equivalent regardless
18826 of standard-output value.
18827
18828 * thumbs.el (thumbs-subst-char-in-string): Delete.
18829 (thumbs-thumbname): Use subst-char-in-string.
18830 (thumbs-resize-image): Use condition-case, not ignore-errors.
18831 (thumbs-kill-buffer): Likewise.
18832
18833 * thumbs.el: Don't include cl. Don't bother with old Emacs versions.
18834 (thumbs-mode): Make buffer read-only.
18835 (thumbs-make-thumb): Unconditionally accept an existing file.
18836 (thumbs-insert-thumb): Add thumb-image-file property to the image.
18837 (thumbs-do-thumbs-insertion): Be smarter about where to put newlines.
18838 (thumbs-show-thumbs-list): Error if images not supported.
18839 (thumbs-save-current-image): Improve prompt string.
18840 (thumbs-mode-map): Define u, R, x.
18841 (thumbs-unmark): New command.
18842 (thumbs-emboss-image): Minor cleanup.
18843 (thumbs-forward-char, thumbs-backward-char): Skip chars with no image.
18844 (thumbs-rename-images): New command.
18845 (thumbs-show-image-num): Rewrite. Don't rename the buffer.
18846
18847 * thumbs.el (thumbs-current-image): New function.
18848 (thumbs-file-list, thumbs-file-alist): New functions.
18849 (thumbs-find-image): Delete arg L.
18850 Don't set up thumbs-fileL as buffer-local global var.
18851 (thumbs-find-image-at-point): Use thumbs-current-image.
18852 (thumbs-set-image-at-point-to-root-window): Likewise.
18853 (thumbs-delete-images): Use thumbs-current-image, thumbs-file-alist.
18854 Record and warn about errors. Update thumbs-markedL for deletions.
18855 (thumbs-next-image, thumbs-previous-image): Use thumbs-file-alist.
18856 (thumbs-redraw-buffer): Use thumbs-file-list.
18857 (thumbs-mark): Use thumbs-current-image.
18858 (thumbs-show-name): Use thumbs-current-image.
18859
18860 * imenu.el (imenu--menubar-select): Set imenu-menubar-modified-tick
18861 and imenu--last-menubar-index-alist.
18862
18863 * subr.el (with-selected-window): Undo previous change.
18864
188652004-05-29 John Paul Wallington <jpw@gnu.org>
18866
18867 * thumbs.el (thumbs-show-name): Do nothing if no image at point.
18868 (thumbs-mouse-find-image): New command.
18869 (thumbs-mode-map): Bind it to mouse-2.
18870 (thumbs-mode): Make mode-class special.
18871 (thumbs-view-image-mode): Likewise.
18872
188732004-05-29 Pavel Kobiakov <pk_at_work@yahoo.com>
18874
18875 * flymake.el: New file.
18876
188772004-05-28 Luc Teirlinck <teirllm@auburn.edu>
18878
18879 * files.el (find-file-noselect-1): Do not bind
18880 `inhibit-read-only' to t during execution of
18881 `find-file-not-found-functions'.
18882
188832004-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
18884
18885 * vc-mcvs.el (vc-mcvs-print-log, vc-mcvs-diff):
18886 * vc-arch.el (vc-arch-diff): Add optional `buffer' arg.
18887
188882004-05-28 Juri Linkov <juri@jurta.org>
18889
18890 * simple.el (eval-expression-print-format): New fun.
18891
18892 * simple.el (eval-expression):
18893 * emacs-lisp/lisp-mode.el (eval-last-sexp-print-value):
18894 * emacs-lisp/edebug.el (edebug-compute-previous-result)
18895 (edebug-eval-expression): Print additionally the value returned by
18896 `eval-expression-print-format'.
18897
18898 * emacs-lisp/lisp.el (insert-pair-alist): New var.
18899 (insert-pair): Make arguments optional. Find character pair
18900 from `insert-pair-alist' according to the last input event.
18901 (insert-parentheses): Make arguments optional.
18902 (raise-sexp, delete-pair): New funs.
18903
18904 * emacs-lisp/lisp-mode.el (indent-pp-sexp): New fun.
18905 (emacs-lisp-mode-map, lisp-interaction-mode-map):
18906 Bind C-M-q to `indent-pp-sexp'.
18907
18908 * emacs-lisp/pp.el (pp-buffer): New fun created from the code in
18909 `pp-to-string' modified to be able to format text with newlines.
18910 (pp-to-string): Move the buffer-formatting part of the code to
18911 `pp-buffer'. Call `pp-buffer'.
18912
18913 * info.el (Info-desktop-buffer-misc-data): Don't save information
18914 about virtual files.
18915 (Info-restore-desktop-buffer): Restore Info buffers in prepared
18916 buffers with names obtained from the desktop file instead of the
18917 default *info* buffer.
18918
189192004-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
18920
18921 * subr.el (with-selected-window): Only save/restore the selected
18922 window.
18923
18924 * progmodes/compile.el (compilation-error-regexp-alist):
18925 Use expand-file-name and data-directory.
18926
18927 * progmodes/grep.el (grep-tree): Rework previous fix.
18928
18929 * mouse.el (mouse-set-region-1): Use temporary transient-mark-mode
18930 after the user marked text with the mouse.
18931
18932 * startup.el (command-line): Keep the first regexp of
18933 auto-save-file-name-transforms intact.
18934
189352004-05-28 Juanma Barranquero <lektu@terra.es>
18936
18937 * cus-edit.el (customize-face, customize-face-other-window)
18938 (custom-face-edit-delete): Make arguments match their use in
18939 docstring.
18940 (custom-unloaded-symbol-p, custom-unloaded-widget-p): Fix typo in
18941 docstring.
18942
18943 * cvs-status.el (cvs-tree-merge, cvs-tags->tree): Use `butlast',
18944 not `cvs-butlast'.
18945
18946 * pcvs-util.el (cvs-butlast, cvs-nbutlast): Remove (`butlast' and
18947 `nbutlast' are in subr.el).
18948
18949 * w32-fns.el (w32-using-nt, w32-shell-dos-semantics)
18950 (set-w32-system-coding-system): Doc fixes.
18951
18952 * textmodes/artist.el (artist-last, artist-remove-nulls): Simplify.
18953 (artist-draw-ellipse-general, artist-draw-ellipse-with-0-height):
18954 Make arguments match their use in docstring.
18955 (artist-draw-region-trim-line-endings)
18956 (artist-mouse-choose-operation): Fix typo in docstring.
18957 (artist-key-set-point-common): Doc fix.
18958
189592004-05-28 Simon Josefsson <jas@extundo.com>
18960
18961 * mail/smtpmail.el (smtpmail-open-stream):
18962 Bind starttls-extra-arguments too, if starttls.el uses GNUTLS.
18963
189642004-05-26 Simon Josefsson <jas@extundo.com>
18965
18966 * starttls.el: Merge with my GNUTLS based starttls.el.
18967 (starttls-gnutls-program, starttls-use-gnutls)
18968 (starttls-extra-arguments, starttls-process-connection-type)
18969 (starttls-connect, starttls-failure, starttls-success): New variables.
18970 (starttls-program, starttls-extra-args): Doc fix.
18971 (starttls-negotiate-gnutls, starttls-open-stream-gnutls): New funs.
18972 (starttls-negotiate, starttls-open-stream): Check `starttls-use-gnutls'
18973 and pass on to corresponding *-gnutls function if it is set.
18974
189752004-05-27 Luc Teirlinck <teirllm@auburn.edu>
18976
18977 * autorevert.el (auto-revert-handler): Disable auto-reverting of
18978 remote files.
18979
189802004-05-27 Michael Albinus <michael.albinus@gmx.de>
18981
18982 * files.el (file-name-non-special): There are more operations
18983 which need handling: `find-backup-file-name',
18984 `insert-file-contents', `verify-visited-file-modtime',
18985 `write-region'. Rename t value of method to `add'. Add new
18986 methods `quote' and `unquote-then-quote' to file-arg-indices.
18987
189882004-05-25 Juri Linkov <juri@jurta.org>
18989
18990 * info.el (Info-toc): Call Info-mode on intermediate buffer.
18991 (Info-index-nodes): Enclose code in condition-case to catch errors.
18992 (Info-index-node): Don't search all index nodes if request is only
18993 for the current node and file is not in the cache of index nodes.
18994 (Info-mode-map): Bind Info-copy-current-node-name to `w'
18995 for consistency with dired-copy-filename-as-kill.
18996 Bind `S' to Info-search-case-sensitively.
18997 (Info-copy-current-node-name): New arg. With zero prefix arg put
18998 the name inside a function call to `info'. Display copied text in
18999 the echo area.
19000
190012004-05-25 Sam Steingold <sds@gnu.org>
19002
19003 * emacs-lisp/lisp-mode.el (lisp-find-tag-default): New function:
19004 strip the package prefix from the symbol name, if any.
19005 Make it the `find-tag-default-function' for `lisp-mode'.
19006
190072004-05-25 John Paul Wallington <jpw@gnu.org>
19008
19009 * gs.el (gs-load-image): Use `set-process-query-on-exit-flag'
19010 instead of obsolete `process-kill-without-query'.
19011
19012 * textmodes/texinfmt.el (texinfo-indexvar-alist):
19013 Declare as variable, not constant.
19014
190152004-05-25 Luc Teirlinck <teirllm@auburn.edu>
19016
19017 * files.el (find-file-noselect-1): Fix bug introduced by
19018 Revision 1.694. As a side effect, `inhibit-read-only'
19019 is again, by default, t during execution of
19020 `find-file-not-found-functions'.
19021 (insert-directory): Check that lines were really inserted by
19022 the --dired switch, before erasing them.
19023
190242004-05-24 Nick Roberts <nickrob@gnu.org>
19025
19026 * progmodes/gdb-ui.el (gdb-breakpoints-mode, gdb-frames-mode)
19027 (gdb-locals-mode): Check gud-minor-mode in gud-comint-buffer.
19028 (gdb-var-update, gdb-var-update-handler, gdb-var-delete)
19029 (gdb-edit-value, gdb-speedbar-expand-node): Handle new value for
19030 gud-minor-mode (gdbmi).
19031
190322004-05-24 Yoichi NAKAYAMA <yoichi@geiin.org> (tiny change)
19033
19034 * net/browse-url.el (browse-url-interactive-arg): Enable user to
19035 explicitly select the text to be taken as URL.
19036
190372004-05-23 Juri Linkov <juri@jurta.org>
19038
19039 * info.el (Info-index-nodes): New var and fun.
19040 (Info-goto-index, Info-index, info-apropos)
19041 (Info-find-emacs-command-nodes): Rewrite to use Info-index-nodes.
19042 (Info-index): Fix docstring. Store and restore Info-history-list.
19043 (Info-complete-nodes): New var.
19044 (Info-complete-menu-item): Use it.
19045 (Info-index-node): New fun.
19046 (Info-final-node, Info-forward-node, Info-backward-node)
19047 (Info-build-toc, Info-try-follow-nearest-node, Info-fontify-node):
19048 Use Info-index-node.
19049 (Info-extract-menu-item, Info-extract-menu-counting): Set second
19050 arg of `Info-extract-menu-node-name' to non-nil for index nodes.
19051 (Info-find-node-2): If a node with period in its name not found,
19052 try to find a node without the name part after period.
19053 (Info-select-node): Call Info-fontify-node only if
19054 Info-fontify-maximum-menu-size is not nil.
19055 (info-apropos): Set Info-fontify-maximum-menu-size to nil.
19056 (Info-find-emacs-command-nodes, Info-goto-emacs-command-node):
19057 Preserve Info-history-list.
19058 (Info-toc): Set Info-current-file.
19059 (Info-build-toc): Move point to the beginning of the buffer.
19060 Add main-file variable.
19061 (Info-dir-remove-duplicates, Info-history, Info-toc, info-apropos):
19062 Use backslashed representation of the control character ^_.
19063
19064 * textmodes/texinfmt.el (texinfo-print-index): Print index line
19065 numbers in the new Texinfo 4.7 format.
19066
19067 * add-log.el (change-log-font-lock-keywords): Remove `:' from
19068 regexps for function and variable names.
19069
19070 * descr-text.el (describe-property-list): Add [show] button for
19071 `syntax-table' property with action to pp to a separate buffer.
19072 (describe-char): Replace search-forward by re-search-forward with
19073 whitespace regexp after "character:" to not fail in too narrow windows.
19074
19075 * simple.el (next-error-find-buffer): Add a rule to return
19076 next-error capable buffer if one window on the selected frame
19077 displays such buffer.
19078
190792004-05-23 Nick Roberts <nickrob@gnu.org>
19080
19081 * progmodes/gdb-ui.el (gdb-server-prefix): New variable.
19082 (gud-watch, gdb-send-item, gdb-breakpoints-mode, gdb-frames-mode)
19083 (gdb-locals-mode, gdb-send-item, gdb-toggle-breakpoint)
19084 (gdb-delete-breakpoint, gdb-frames-select, gdb-threads-buffer)
19085 (gdb-registers-buffer, gdb-reset, gdb-assembler-buffer):
19086 Handle new value for gud-minor-mode (gdbmi).
19087 (gdb-buffer-type, gdb-input-queue, gdb-prompting)
19088 (gdb-output-sink, gdb-current-item, gdb-pending-triggers):
19089 Change from local to global gdb variable set.
19090 (gdb-ann3): Initialize above gdb variable set.
19091 (gdb-var-update, gdb-var-update-handler, gdb-enqueue-input)
19092 (gdb-dequeue-input, gdb-source, gdb-pre-prompt, gdb-prompt)
19093 (gdb-subprompt, gdb-starting, gdb-stopping, gdb-frame-begin)
19094 (gdb-stopped, gdb-post-prompt, gdb-concat-output)
19095 (def-gdb-auto-update-trigger, def-gdb-auto-update-handler)
19096 (gdb-info-locals-handler, gdb-invalidate-assembler)
19097 (gdb-get-current-frame, gdb-frame-handler): Handle gdb variable
19098 set as global variables.
19099 (gdb-get-create-buffer): Don't make gud-comint buffer-local.
19100 Handle gdbmi.
19101 (gdb-info-breakpoints-custom): Fix regexp.
19102 (def-gdb-var): Delete.
19103
19104 * progmodes/gud.el (gud-menu-map, gud-speedbar-menu-items)
19105 (gud-speedbar-buttons, gud-sentinel, gud-display-line)
19106 (gud-basic-call): Handle new value for gud-minor-mode (gdbmi) for
19107 a new mode. The file (gdb-mi.el) for this mode will be included
19108 with the GDB distribution (6.2 onwards) and will use GDB/MI as its
19109 primary interface.
19110
191112004-05-23 Jesper Harder <harder@ifa.au.dk>
19112
19113 * progmodes/grep.el (grep-tree): Ensure that DIR argument is
19114 interpreted as a directory.
19115
191162004-05-22 Richard M. Stallman <rms@gnu.org>
19117
19118 * textmodes/paragraphs.el (sentence-end): Match unicode curly quotes
19119 as a close quote.
19120
19121 * textmodes/bibtex.el: Use assoc-string, not assoc-ignore-case.
19122
19123 * progmodes/idlw-shell.el (idlwave-shell-get-object-class):
19124 Use assoc-string, not assoc-ignore-case.
19125
19126 * progmodes/ada-mode.el: Use assoc-string, not assoc-ignore-case.
19127
19128 * emacs-lisp/lisp.el (mark-defun, narrow-to-defun):
19129 If moving back then fwd gets a defun that ends before point,
19130 try again moving fwd then back.
19131
19132 * files.el (file-name-non-special): Allow t in file-arg-indices
19133 to mean requote the return value. Use `identity' as an element
19134 rather than as the whole value.
19135
19136 * gs.el (gs-options): Add -dSAFER. Mark it risky.
19137
191382004-05-22 Juanma Barranquero <lektu@terra.es>
19139
19140 * help-fns.el (help-add-fundoc-usage): Use %S only for output of
19141 `help-make-usage'.
19142 (help-highlight-arguments): Skip function name before searching
19143 for arguments.
19144
191452004-05-21 Juanma Barranquero <lektu@terra.es>
19146
19147 * allout.el (allout-chart-subtree, allout-rebullet-topic-grunt):
19148 Don't mention in the docstring these arguments meant for
19149 internal (recursive) use only.
19150 (allout-char-spec): Comment out (it's not implemented).
19151 (allout-old-expose-topic, allout-exposure): Fix docstring and add
19152 obsolescence declaration.
19153 (allout-flatten-exposed-to-buffer)
19154 (allout-indented-exposed-to-buffer): Fix typos in docstring.
19155 (my-mark-marker): Doc fix.
19156 (produce-allout-mode-map, allout-sibling-index)
19157 (allout-isearch-expose, allout-distinctive-bullet)
19158 (allout-open-topic, allout-reindent-body)
19159 (allout-rebullet-heading, allout-process-exposed)
19160 (allout-insert-listified, allout-latex-verb-quote)
19161 (allout-insert-latex-header, allout-insert-latex-trailer):
19162 Make arguments match their use in docstring.
19163 (allout-primary-bullet, allout-old-style-prefixes)
19164 (allout-inhibit-protection, allout-init, allout-mode)
19165 (allout-before-change-protect, allout-flag-region):
19166 Use "Emacs" instead of "emacs" in docstrings.
19167
191682004-05-21 Masayuki Ataka <ataka@milk.freemail.ne.jp> (tiny change)
19169
19170 * international/characters.el: Modify syntax of more characters.
19171
191722004-05-21 Masatake YAMATO <jet@gyve.org>
19173
19174 * progmodes/etags.el (tags-apropos, list-tags): Require apropos.
19175 (etags-tags-completion-table): Show parsing progress.
19176
191772004-05-20 Luc Teirlinck <teirllm@auburn.edu>
19178
19179 * locate.el (locate-prompt-for-command): Shorten first line of
19180 docstring.
19181 (locate-mode): Expand docstring and include keymap summary.
19182
19183 * files.el (find-file-noselect-1): Limit the scope of the
19184 `inhibit-read-only' binding. Make sure that `inhibit-read-only'
19185 is, by default, nil during the execution of
19186 `find-file-not-found-functions' and `find-file-hook'.
19187
191882004-05-20 Michael Mauger <mmaug@yahoo.com>
19189
19190 * facemenu.el (facemenu-color-name-equal): New function.
19191 (list-colors-display): Use it to compare colors instead of
19192 facemenu-color-equal.
19193
191942004-05-20 Dan Nicolaescu <dann@ics.uci.edu>
19195
19196 * compare-w.el (compare-windows-face): Use min-colors instead of
19197 checking for tty or pc types.
19198
191992004-05-19 Stefan Monnier <monnier@iro.umontreal.ca>
19200
19201 * simple.el (do-auto-fill): Remove unused vars `bol' and `opoint'.
19202 (completion-setup-function): Use with-current-buffer.
19203 Properly save excursion. Simplify.
19204 Don't assume there is necessarily a `mouse-face' property somewhere.
19205
19206 * progmodes/gud.el (gud-reset): Use unless & with-current-buffer.
19207
19208 * progmodes/gdb-ui.el (gdb-reset): Use unless. Fix regexp.
19209
19210 * emacs-lisp/bytecomp.el (byte-compile-log): Use backquotes.
19211 (byte-compile-log-1): Don't call (byte-goto-log-buffer).
19212 Use with-current-buffer.
19213 (byte-goto-log-buffer): Delete.
19214 (byte-compile-log-file): Call compilation-forget-errors.
19215
192162004-05-19 Takaaki Ota <Takaaki.Ota@am.sony.com> (tiny change)
19217
19218 * net/ldap.el (ldap-search-internal): Avoid mixing standard error
19219 output messages into the search result.
19220
192212004-05-19 Masatake YAMATO <jet@gyve.org>
19222
19223 * wid-edit.el (widget-radio-button-notify): Revert my last
19224 change. Reported by Katsumi Yamaoka <yamaoka@jpl.org>.
19225
192262004-05-19 Kenichi Handa <handa@m17n.org>
19227
19228 * international/characters.el: Fix syntax (open/close) of CJK chars.
19229
192302004-05-18 Karl Chen <quarl@hkn.eecs.berkeley.edu> (tiny change)
19231
19232 * help-mode.el (help-go-back): Don't depend on position of back button.
19233
192342004-05-18 Stefan Monnier <monnier@iro.umontreal.ca>
19235
19236 * files.el (auto-save-file-name-transforms): Make sure ange-ftp temp
19237 files don't contain an accidental additional /.
19238
19239 * textmodes/tex-mode.el (tex-compilation-parse-errors): Save excursion
19240 in source buffer.
19241
192422004-05-18 Masatake YAMATO <jet@gyve.org>
19243
19244 * wid-edit.el (widget-radio-button-notify): Don't pass `widget'
19245 to widget-apply. :action method assumes 2 arguments, not 3.
19246
192472004-05-17 Glenn Morris <gmorris@ast.cam.ac.uk>
19248
19249 * progmodes/f90.el (f90-end-block-re, f90-start-block-re):
19250 New constants.
19251 (hs-special-modes-alist): Add an f90-mode entry.
19252
192532004-05-17 Sam Steingold <sds@gnu.org>
19254
19255 * emacs-lisp/cl-indent.el (common-lisp-indent-function-1):
19256 Indent "without-" forms just like "with-" and "do-". Use regexp-opt.
19257
192582004-05-16 Kim F. Storm <storm@cua.dk>
19259
19260 * emacs-lisp/timer.el (timer-event-handler): Fix last change.
19261
192622004-05-15 John Wiegley <johnw@newartisans.com>
19263
19264 * eshell/esh-io.el (eshell-get-target): Whitespace changes.
19265 (eshell-output-object-to-target): Improve output speed 20% by not
19266 calling `eshell-stringify' if something is already known to be a
19267 string.
19268
192692004-05-15 Alex Ott <ott@jet.msk.su>
19270
19271 * textmodes/ispell.el (ispell-local-dictionary-alist):
19272 Add windows-1251 to the choice of coding systems.
19273 (ispell-dictionary-alist-6): Add support for "russianw.aff",
19274 encoded in cp1251.
19275
192762004-05-15 Dan Nicolaescu <dann@ics.uci.edu>
19277
19278 * progmodes/compile.el (compilation-warning-face)
19279 (compilation-info-face): Use min-colors.
19280
192812004-05-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
19282
19283 * toolbar/close.pbm, toolbar/close.xpm, toolbar/copy.pbm
19284 * toolbar/copy.xpm, toolbar/cut.pbm, toolbar/cut.xpm
19285 * toolbar/help.pbm, toolbar/help.xpm, toolbar/home.pbm
19286 * toolbar/home.xpm, toolbar/index.pbm, toolbar/index.xpm
19287 * toolbar/jump_to.pbm, toolbar/jump_to.xpm, toolbar/left_arrow.pbm
19288 * toolbar/left_arrow.xpm, toolbar/new.pbm, toolbar/new.xpm
19289 * toolbar/open.pbm, toolbar/open.xpm, toolbar/paste.pbm
19290 * toolbar/paste.xpm, toolbar/preferences.pbm, toolbar/preferences.xpm
19291 * toolbar/print.pbm, toolbar/print.xpm, toolbar/right_arrow.pbm
19292 * toolbar/right_arrow.xpm, toolbar/save.pbm, toolbar/save.xpm
19293 * toolbar/saveas.pbm, toolbar/saveas.xpm, toolbar/search.pbm
19294 * toolbar/search.xpm, toolbar/spell.pbm, toolbar/spell.xpm
19295 * toolbar/undo.pbm, toolbar/undo.xpm, toolbar/up_arrow.pbm
19296 * toolbar/up_arrow.xpm: New icons from GTK+ version 2.
19297
192982004-05-15 Kim F. Storm <storm@cua.dk>
19299
19300 * emacs-lisp/timer.el (timer-activate): Add optional arg triggered-p.
19301 Use it to set triggered-p element of timer.
19302 (timer-event-handler): Set triggered-p element non-nil while running
19303 the timer function.
19304
193052004-05-14 Stefan Monnier <monnier@iro.umontreal.ca>
19306
19307 * descr-text.el (describe-char-unicode-data)
19308 (describe-char-unicodedata-file): Re-enable the unicode code now that
19309 the licensing issues have been cleared in the unicode-4 license.
19310 (describe-text-properties-1): Remove unused `overlay' var.
19311 (describe-char): Remove unused var `buffer'.
19312
193132004-05-14 David Ponce <david@dponce.com>
19314
19315 * tree-widget.el: New file.
19316
193172004-05-13 Marcelo Toledo <marcelo@gnu.org>
19318
19319 * language/european.el ("Brazilian Portuguese"): Add support for
19320 Brazilian Portuguese.
19321
193222004-05-13 John Wiegley <johnw@newartisans.com>
19323
19324 * iswitchb.el (iswitchb-use-virtual-buffers): Only turn on
19325 `recentf-mode' if this variable has been customized to t.
19326
19327 * eshell/esh-test.el (eshell-test): Call the function
19328 `emacs-version' rather than trying to build a custom version string.
19329
193302004-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
19331
19332 * net/telnet.el (telnet-mode): Use define-derived-mode.
19333 Don't modify the global value of comint-prompt-regexp.
19334
193352004-05-13 John Paul Wallington <jpw@gnu.org>
19336
19337 * version.el (emacs-version): Check for `gtk' feature before
19338 `x-toolkit' feature.
19339
193402004-05-13 Juanma Barranquero <lektu@terra.es>
19341
19342 * files.el (file-truename): Don't mention COUNTER and PREV-DIRS
19343 arguments in the docstring, they're used only in recursive calls.
19344
19345 * help-fns.el (help-arg-highlighting-function)
19346 (help-argument-name): Delete.
19347 (help-default-arg-highlight): New function.
19348 (help-do-arg-highlighting): Use it.
19349
193502004-05-13 Glenn Morris <gmorris@ast.cam.ac.uk>
19351
19352 * calendar/appt.el (appt-disp-window):
19353 Use `calendar-set-mode-line' for a centered mode-line.
19354
193552004-05-13 Takaaki Ota <Takaaki.Ota@am.sony.com> (tiny change)
19356
19357 * calendar/appt.el (appt-disp-window): Do not split window
19358 excessively when `split-height-threshold' is low.
19359
193602004-05-12 Nick Roberts <nickrob@gnu.org>
19361
19362 * progmodes/gud.el (gud-mode): Add gud-kill-buffer-hook to
19363 kill-buffer-hook here and make it local.
19364 (gud-kill-buffer-hook): Use kill-process for a sure kill.
19365
193662004-05-12 Daniel Pfeiffer <occitan@esperanto.org>
19367
19368 * progmodes/compile.el (compilation-set-window-height):
19369 Use save-excursion to protect against misplaced marker.
19370
193712004-05-12 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
19372
19373 * custom.el (defface): Document that type can have value gtk.
19374
19375 * faces.el (face-spec-set-match-display): Handle type gtk in display.
19376
193772004-05-12 Kenichi Handa <handa@m17n.org>
19378
19379 * descr-text.el: Require quail at compile time.
19380 (describe-char): If an input method is on and it supports the
19381 character, show how to input it.
19382
19383 * international/quail.el (quail-install-decode-map): Accept a
19384 char-table whose subtype is `quail-decode-map'.
19385 (quail-store-decode-map-key, quail-gen-decode-map1)
19386 (quail-gen-decode-map, quail-find-key1, quail-find-key)
19387 (quail-show-key): New functions.
19388
193892004-05-12 Juanma Barranquero <lektu@terra.es>
19390
19391 * generic.el (define-generic-mode): Remove redundant arglist info.
19392
19393 * help-fns.el (help-split-fundoc, help-add-fundoc-usage):
19394 Make arguments match their use in docstring.
19395 (help-arg-highlighting-function): New variable.
19396 (help-argument-name): Mention it in the docstring.
19397 (help-do-arg-highlight): Use it. Expand regexp to accept also
19398 ARG-xxx and xxx-ARG references.
19399
194002004-05-11 Yoichi NAKAYAMA <yoichi@geiin.org> (tiny change)
19401
19402 * mail/rfc2368.el (rfc2368-parse-mailto-url): Make the results of
19403 parsing "mailto:addr1%2C%20addr2", "mailto:?to=addr1%2C%20addr2",
19404 and "mailto:addr1?to=addr2" equal.
19405
194062004-05-11 Alexander Pohoyda <alexander.pohoyda@gmx.net> (tiny change)
19407
19408 * man.el (Man-getpage-in-background): Use shell-file-name
19409 and shell-command-switch variables instead of hard-coded values.
19410
194112004-05-11 Eli Zaretskii <eliz@gnu.org>
19412
19413 * iimage.el: New file.
19414
194152004-05-11 Juanma Barranquero <lektu@terra.es>
19416
19417 * custom.el (custom-initialize-default, defcustom):
19418 Fix typo in docstring.
19419
19420 * files.el (set-visited-file-name, file-expand-wildcards):
19421 Fix docstring.
19422
194232004-05-10 Stefan Monnier <monnier@iro.umontreal.ca>
19424
19425 * emacs-lisp/lisp-mode.el (prin1-char): Use eventp.
19426
19427 * subr.el (eventp): Be more discriminating with integers.
19428
194292004-05-10 Daniel Pfeiffer <occitan@esperanto.org>
19430
19431 * progmodes/compile.el (compile): Add universal prefix arg.
19432 (compilation-error-regexp-alist-alist): Add edg patterns.
19433
194342004-05-10 Sam Steingold <sds@gnu.org>
19435
19436 * textmodes/ispell.el (ispell-message):
19437 Use `message-cite-prefix-regexp' instead of `message-yank-prefix'.
19438
194392004-05-10 Dave Love <fx@gnu.org>
19440
19441 * progmodes/python.el (help-buffer): Autoload when compiling.
19442 (python-after-info-look): Don't assume Info-goto-node returns non-nil.
19443 (run-python): Prepend to any existing PYTHONPATH.
19444
194452004-05-10 Nick Roberts <nick@nick.uklinux.net>
19446
19447 * progmodes/gdb-ui.el (gdb-annotation-rules): Add nquery annotation
19448 for pending breakpoints.
19449
194502004-05-10 Richard M. Stallman <rms@gnu.org>
19451
19452 * mail/unrmail.el (unrmail): Mostly rewritten. Parses the file
19453 directly without calling any functions in Rmail.
19454 (unrmail-unprune): Function deleted.
19455
194562004-05-10 Stefan Monnier <monnier@iro.umontreal.ca>
19457
19458 * progmodes/python.el (inferior-python-mode-map): Remove erroneous
19459 C-c C-z binding.
19460
194612004-05-10 Kenichi Handa <handa@m17n.org>
19462
19463 * descr-text.el (describe-char): Fix previous change. Don't make
19464 a unibyte character to multibyte in the *Help* buffer.
19465
194662004-05-10 Miles Bader <miles@gnu.org>
19467
19468 * lisp/progmodes/gud.el (gud-common-init): Only consider an existing
19469 buffer an error if the debugger process is actually running.
19470
194712004-05-10 Juanma Barranquero <lektu@terra.es>
19472
19473 * help-fns.el (help-argument-name): Default to italic.
19474 (help-highlight-arguments): Return always (usage . doc), even when
19475 usage is nil.
19476
19477 * ibuf-macs.el (define-ibuffer-column, define-ibuffer-sorter)
19478 (define-ibuffer-filter): Add usage info.
19479 (define-ibuffer-op): Add usage info (but CL-style defaults for
19480 keyword args are not shown).
19481
19482 * subr.el (remove-overlays, read-passwd): Fix docstring.
19483 (start-process-shell-command): Fix docstring. Put usage info in a
19484 format usable by `describe-function'.
19485 (open-network-stream, open-network-stream-nowait)
19486 (open-network-stream-server): Fix docstring.
19487
194882004-05-09 Jason Rumney <jasonr@gnu.org>
19489
19490 * international/code-pages.el (cp932, cp936, cp949, c950): Remove.
19491 Only define cp125* if windows-125* is already defined.
19492
19493 * language/korean.el (cp949): Add alias.
19494
19495 * language/chinese.el (cp936, cp950): Add aliases.
19496
19497 * language/japanese.el (cp932): Add alias.
19498
19499 * term/w32-win.el: Require code-pages.
19500
19501 * international/mule-cmds.el (set-locale-environment):
19502 On MS-Windows use ansi code-page for default coding-systems.
19503 Set up paper sizes for Windows 3 letter languages.
19504
19505 * international/code-pages.el (cp932, cp936, cp949, cp950):
19506 Add aliases. Also add cp125* if not already defined.
19507
195082004-05-09 Juanma Barranquero <lektu@terra.es>
19509
19510 * help-fns.el (help-highlight-arguments): Don't try to highlight
19511 missing or autoloaded arglists. Accept structured arguments, like
19512 the first ones of `do' and `flet'.
19513
19514 * pcvs.el (cvs-mode-run, cvs-is-within-p): Fix typo in docstring.
19515 (cvs-get-marked): Remove redundant arglist info.
19516
19517 * net/quickurl.el (quickurl, quickurl-browse-url, quickurl-read):
19518 Don't use CL-style default args.
19519
195202004-05-08 Andreas Schwab <schwab@suse.de>
19521
19522 * emacs-lisp/checkdoc.el (checkdoc-minor-mode): Doc fix.
19523
19524 * international/subst-ksc.el: Fix references to utf-translate-cjk
19525 into utf-translate-cjk-mode.
19526 * international/subst-big5.el: Likewise.
19527 * international/subst-gb2312.el: Likewise.
19528 * international/subst-jis.el: Likewise.
19529 * international/utf-16.el: Likewise.
19530 * international/utf-8.el: Likewise.
19531
195322004-05-08 John Wiegley <johnw@newartisans.com>
19533
19534 * iswitchb.el (iswitchb-use-virtual-buffers): Add support for
19535 "virtual buffers" (off by default), which makes it possible to
19536 switch to the "virtual" buffers of recently visited files. When a
19537 buffer name search fails, and this option is on, iswitchb will
19538 look at the list of recently visited files, and permit matching
19539 against those names. When the user hits RET on a match, it will
19540 revisit that file.
19541 (iswitchb-read-buffer): Add two optional arguments, which makes
19542 isearchb.el possible.
19543 (iswitchb-completions, iswitchb-set-matches, iswitchb-prev-match)
19544 (iswitchb-next-match): Add support for virtual buffers.
19545
19546 * isearchb.el: This module extends iswitchb to provide "as you
19547 type" buffer selection.
19548
19549 * textmodes/flyspell.el (flyspell-highlight-incorrect-region):
19550 Ignore the read-only property when flyspell highlighting is on.
19551 Not ignoring it leads to a series of confusing errors.
19552 (flyspell-highlight-duplicate-region): Ignore read-only, as above,
19553 but also make sure to call flyspell-incorrect-hook.
19554 (flyspell-maybe-correct-transposition): Perform transposition test
19555 by bit twiddling a string, rather than using a temp buffer.
19556 (flyspell-maybe-correct-doubling): Use a string rather than a temp
19557 buffer. This is also the original version of the code, which
19558 could not be checked in before due to a previous lack of
19559 assignment papers. This version has seen heavy usage on my system
19560 for several years now.
19561
19562 * calendar/cal-bahai.el: New file, which adds support for the
19563 Baha'i calendar to Emacs. This calendar is based on a solar year
19564 of 19 months of 19 days, with 4 intercalary days. Each year
19565 begins on March 21, with the calendar starting in 1844.
19566
19567 * calendar/cal-menu.el, calendar/calendar.el
19568 * calendar/diary-lib.el, calendar/holidays.el:
19569 Added support for using cal-bahai.el.
19570
19571 * eshell/em-glob.el (eshell-glob-initialize): Move initialization
19572 of `eshell-glob-chars-regexp' into `eshell-glob-regexp', so that
19573 function can be used outside of eshell buffers.
19574 (eshell-glob-regexp): Initialize `eshell-glob-chars-regexp' here.
19575
195762004-05-08 Juanma Barranquero <lektu@terra.es>
19577
19578 * help-fns.el (help-do-arg-highlight): Temporarily set ?\- to be a
19579 word constituent so FOO-ARG is not recognized as an arg.
19580 (help-highlight-arguments): Don't skip lists in mandatory arguments.
19581
19582 * simple.el (next-error): Fix typo in docstring.
19583 (open-line): Make argument names match their use in docstring.
19584 (split-line): Fix docstring.
19585
19586 * emacs-lisp/cl-macs.el (do, do*): Put usage info in a format
19587 usable by `describe-function'.
19588 (gensym, gentemp, typep, ignore-errors): Make argument names match
19589 their use in docstring.
19590
19591 * progmodes/python.el (python-describe-symbol): Pass INTERACTIVE-P
19592 argument to `help-setup-xref'.
19593
195942004-05-07 Kai Grossjohann <kai@emptydomain.de>
19595
19596 Version 2.0.40 of Tramp released.
19597
19598 * net/tramp.el (tramp-completion-mode, tramp-md5-function):
19599 Use symbol-function to invoke functions only known on some Emacs
19600 flavors. This avoids byte-compiler warnings. Reported by Kevin
19601 Scaldeferri <kevin@scaldeferri.com>.
19602 (tramp-do-copy-or-rename-file-via-buffer): Rename from
19603 tramp-do-copy-or-rename-via-buffer (without `file'), to make it
19604 consistent with the other tramp-do-* functions.
19605 (tramp-do-copy-or-rename-file): Calls adjusted.
19606 (tramp-process-initial-commands): Avoid liveness check on shell --
19607 we know that it must be alive since we're opening a connection at
19608 this moment.
19609 (tramp-last-cmd): New internal variable.
19610 (tramp-process-echoes): New tunable.
19611 (tramp-send-command): Set tramp-last-cmd.
19612 (tramp-wait-for-output): Delete echo, if applicable.
19613 (tramp-read-passwd): Construct the key for the password cache in a
19614 way that works for multi methods, too.
19615 (tramp-bug): Add backup-directory-alist and
19616 bkup-backup-directory-info to bug reports, with Tramp counterparts.
19617
196182004-05-07 Michael Albinus <michael.albinus@gmx.de>
19619
19620 * net/tramp*.el: Suppress byte-compiler warnings where possible.
19621
19622 * net/tramp.el (tramp-out-of-band-prompt-regexp)
19623 (tramp-actions-copy-out-of-band): New defcustoms.
19624 (tramp-do-copy-or-rename-file-out-of-band): Asynchronous process
19625 used instead of a synchronous one. Allows password entering.
19626 (tramp-action-out-of-band): New defun.
19627 (tramp-open-connection-rsh, tramp-method-out-of-band-p):
19628 Remove restriction with password from doc string.
19629 (tramp-bug): Add variables `tramp-terminal-prompt-regexp',
19630 `tramp-out-of-band-prompt-regexp',
19631 `tramp-actions-copy-out-of-band', `password-cache' and
19632 `password-cache-expiry'.
19633 (toplevel): Remove todo item wrt ssh-agent. Obsolete due to
19634 password caching.
19635 (tramp-touch): FILE can be a local file, too.
19636 (TODO): Remove items done.
19637 (tramp-handle-insert-directory): Properly quote file name also if
19638 not full-directory-p. Handle wildcard case. Reported by Andreas
19639 Schwab <schwab@suse.de>.
19640 (tramp-do-copy-or-rename-file-via-buffer): Set permissions of the
19641 new file.
19642 (tramp-handle-file-local-copy, tramp-handle-write-region):
19643 The permissions of the temporary file are set if filename exists.
19644 Reported by Ted Stern <stern@cray.com>.
19645 (tramp-backup-directory-alist)
19646 (tramp-bkup-backup-directory-info): New defcustoms.
19647 (tramp-file-name-handler-alist): Add entry for `find-backup-file-name'.
19648 (tramp-handle-find-backup-file-name): New function.
19649 Implements Tramp's find-backup-file-name.
19650
19651 * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry
19652 for `find-backup-file-name'.
19653
19654 * net/tramp-vc.el (tramp-vc-workfile-unchanged-p): Correct typo
19655 ("file" -> "filename"). Reported by Kim F. Storm <storm@cua.dk>.
19656
196572004-05-07 Lars Hansen <larsh@math.ku.dk>
19658
19659 * desktop.el (desktop-buffer-mode-handlers): Fix docstring.
19660
196612004-05-07 Juanma Barranquero <lektu@terra.es>
19662
19663 * subr.el (lambda): Add arglist description to docstring.
19664 (declare): Fix typo in docstring.
19665 (open-network-stream): Fix docstring.
19666 (process-kill-without-query): Fix docstring and add obsolescence info.
19667 (last, butlast, nbutlast): Make arguments match their use in docstring.
19668 (insert-buffer-substring-no-properties): Likewise.
19669 (insert-buffer-substring-as-yank): Likewise.
19670 (split-string): Fix docstring.
19671
19672 * emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
19673 Make argument names match their use in docstring.
19674
19675 * emacs-lisp/re-builder.el (reb-auto-update): Fix typo in docstring.
19676
196772004-05-06 Nick Roberts <nickrob@gnu.org>
19678
19679 * progmodes/gdb-ui.el: Improve/extend documentation strings.
19680 Fit first sentence on one line for apropos-command.
19681
196822004-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
19683
19684 Changes largely merged in from Dave Love's code.
19685 * progmodes/python.el: Doc fixes.
19686 (python-mode-map): Add python-complete-symbol.
19687 (python-comment-line-p, python-beginning-of-string): Use syntax-ppss.
19688 (python-comment-indent, python-complete-symbol)
19689 (python-symbol-completions, python-partial-symbol)
19690 (python-try-complete): New.
19691 (python-indent-line): Remove optional arg. Use python-block-end-p.
19692 (python-check): Bind compilation-error-regexp-alist.
19693 (inferior-python-mode): Use rx. Move keybindings to top level.
19694 Set comint-input-filter.
19695 (python-preoutput-filter): Use rx.
19696 (python-input-filter): Re-introduce.
19697 (python-proc): Start new process if necessary.
19698 Check python-buffer non-nil.
19699 (view-return-to-alist): Defvar.
19700 (python-send-receive): New.
19701 (python-eldoc-function): Use it.
19702 (python-mode-running): Don't defvar.
19703 (python-mode): Set comment-indent-function.
19704 Maybe update hippie-expand-try-functions-list.
19705 (python-indentation-levels): Initialize differently.
19706 (python-block-end-p): New.
19707 (python-indent-line): Use it.
19708 (python-compilation-regexp-alist): Augment.
19709 (run-python): Import `emacs' module to Python rather than loading
19710 code directly. Set python-buffer differently.
19711 (python-send-region): Use emacs.eexecfile. Fix orig-start calculation.
19712 Use python-proc.
19713 (python-send-command): Go to end of comint buffer.
19714 (python-load-file): Use python-proc, emacs.eimport.
19715 (python-describe-symbol): Simplify interactive form.
19716 Use emacs.help. Do use temp-buffer-show-hook.
19717 Call print-help-return-message.
19718 (hippie-exp): Require when compiling.
19719 (python-preoutput-continuation): Use rx.
19720
19721 * diff-mode.el (diff-make-unified): Fix regexp.
19722
197232004-05-06 Romain Francoise <romain@orebokech.com> (tiny change)
19724
19725 * ibuffer.el (ibuffer-redisplay-engine): Do not remove folded
19726 filter groups from the buffer when rebuilding the Ibuffer buffer
19727 and `ibuffer-show-empty-filter-groups' is nil.
19728
197292004-05-06 Vinicius Jose Latorre <viniciusjl@ig.com.br>
19730
19731 * ps-print.el (ps-print-quote): Call ps-value-string.
19732 (ps-setup): Call ps-comment-string.
19733 (ps-value-string, ps-comment-string): New funs.
19734
197352004-05-06 Juanma Barranquero <lektu@terra.es>
19736
19737 * ehelp.el (electric-help-command-loop): Check whether the last
19738 character is visible, not (point-max).
19739
19740 * help-fns.el (help-argument-name): Default to bold; don't inherit
19741 from font-lock-variable-name-face.
19742 (help-do-arg-highlight): Grok also ARGth occurrences in the docstring.
19743
197442004-05-05 Kenichi Handa <handa@m17n.org>
19745
19746 * descr-text.el (describe-char): Copy the character with text
19747 properties and overlays into the first line, and call
19748 describe-text-properties on it.
19749
197502004-05-05 Stephen Eglen <stephen@anc.ed.ac.uk>
19751
19752 * iswitchb.el (iswitchb-global-map): Fix typo.
19753 Remove unwanted ###autoloads from source file.
19754
197552004-05-05 Lars Hansen <larsh@math.ku.dk>
19756
19757 * wdired.el (wdired-change-to-wdired-mode): Quote wdired-mode-hook
19758 in run-hooks. Use substitute-command-keys in message.
19759 (wdired-abort-changes): Add message.
19760
197612004-05-03 Michael Mauger <mmaug@yahoo.com>
19762
19763 * emacs/lisp/progmodes/sql.el (sql-xemacs-p, sql-emacs19-p)
19764 (sql-emacs20-p): Remove.
19765 (sql-mode-syntax-table): Use shared GNU Emacs/XEmacs syntax.
19766 (sql-builtin-face, sql-doc-face): Remove.
19767 (sql-mode-ansi-font-lock-keywords)
19768 (sql-mode-oracle-font-lock-keywords)
19769 (sql-mode-postgres-font-lock-keywords)
19770 (sql-mode-linter-font-lock-keywords)
19771 (sql-mode-ms-font-lock-keywords)
19772 (sql-mode-mysql-font-lock-keywords): Use standard fonts.
19773 (sql-product-font-lock): Fix font-lock reset when font rules change.
19774 (sql-highlight-product): Remove incorrect font-lock reset logic.
19775
197762004-05-04 Jonathan Yavner <jyavner@member.fsf.org>
19777
19778 * ses.el (ses-set-parameter): Fix typo.
19779
197802004-05-04 Kim F. Storm <storm@cua.dk>
19781
19782 * ido.el (ido-read-internal): Fix call to read-file-name for edit.
19783 Must expand directory for completion to work; and don't mess with
19784 process-environment.
19785 (ido-read-file-name): If command has ido property, don't use ido
19786 if value is ignore, or read as directory if value is dir.
19787 Set ido ignore property for dired-do-rename command.
19788
197892004-05-04 Juanma Barranquero <lektu@terra.es>
19790
19791 * ehelp.el (electric-help-command-loop, electric-help-undefined)
19792 (electric-help-help): Check against unmapped commands.
19793
19794 * help-fns.el (help-argument-name): New face, inheriting from
19795 font-lock-variable-name-face, to highlight function arguments in
19796 `describe-function' and `describe-key'.
19797 (help-do-arg-highlight): Auxiliary function to highlight a given
19798 list of arguments in a string.
19799 (help-highlight-arguments): Highlight the function arguments and
19800 all uses of them in the docstring.
19801 (describe-function-1): Use it. Do docstring output via `insert',
19802 not 'princ', so text attributes are preserved.
19803
19804 * winner.el (winner-mode-map): Move `winner-undo' and
19805 `winner-redo' to C-c <left> and C-c <right>, respectively (the
19806 previous bindings conflict with `prev-buffer', `next-buffer').
19807
198082004-05-03 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
19809
19810 * textmodes/bibtex.el (bibtex-progress-message): Fix docstring.
19811 (bibtex-entry-update): New command bound to C-c C-u.
19812 (bibtex-text-in-string): Fix regexp.
19813 (bibtex-assoc-of-regexp): Remove.
19814 (bibtex-progress-message): Fix docstring.
19815 (bibtex-inside-field): Use if.
19816 (bibtex-assoc-regexp): New function.
19817 (bibtex-format-entry): Make code more robust so that it formats
19818 also old entries.
19819 (bibtex-autokey-demangle-title): Merge with obsolete function
19820 bibtex-assoc-of-regexp.
19821 (bibtex-field-list): New function.
19822 (bibtex-entry): Use bibtex-field-list.
19823 (bibtex-parse-entry): Fix docstring.
19824 (bibtex-print-help-message): Use bibtex-field-list.
19825 (bibtex-make-field): Use bibtex-field-list.
19826 (bibtex-entry-index): Bugfix. Return crossref key if required.
19827 (bibtex-lessp): Fix docstring.
19828
198292004-05-03 Luc Teirlinck <teirllm@auburn.edu>
19830
19831 * select.el (xselect-convert-to-string): Move comment to intended line.
19832
198332004-05-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
19834
19835 * toolbar/tool-bar.el (tool-bar-setup): Use lookup-key for
19836 cut/copy/paste in case menu-bar-enable-clipboard is in effect.
19837
198382004-05-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
19839
19840 * term/x-win.el (x-clipboard-yank): Don't exit on error from
19841 x-get-selection.
19842
198432004-05-03 Jason Rumney <jasonr@gnu.org>
19844
19845 * makefile.nt: Remove.
19846
198472004-05-03 Kim F. Storm <storm@cua.dk>
19848
19849 * emulation/cua-base.el (cua--update-indications): Fix last change.
19850 (cua-mode): Deactivate mark when cua-mode is enabled.
19851
198522004-05-02 Luc Teirlinck <teirllm@auburn.edu>
19853
19854 * select.el (xselect-convert-to-string): Bind `inhibit-read-only' to t.
19855
198562004-05-03 Nick Roberts <nickrob@gnu.org>
19857
19858 * progmodes/gdb-ui.el (gud-watch, gdb-display-buffer)
19859 (gdb-display-source-buffer, gdb-put-breakpoint-icon)
19860 (gdb-remove-breakpoint-icons, gdb-assembler-custom): Look for
19861 window over visible frames.
19862 (gdb-goto-breakpoint): Make buffer display file at breakpoint.
19863
198642004-05-02 Stefan Monnier <monnier@iro.umontreal.ca>
19865
19866 * progmodes/compile.el (compilation-gcpro): New var.
19867 (compilation-fake-loc): Use it.
19868 (compilation-forget-errors): Reset it.
19869
198702004-05-02 Dan Nicolaescu <dann@ics.uci.edu>
19871
19872 * diff-mode.el (diff-header-face, diff-file-header-face):
19873 Use min-colors.
19874
198752004-05-02 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
19876
19877 * textmodes/bibtex.el (bibtex-sort-buffer): Remove error message.
19878 (bibtex-clean-entry): Disentangle code.
19879 (bibtex-realign): New function.
19880 (bibtex-reformat): Use mapcar and bibtex-realign. Do not use
19881 bibtex-beginning-of-first-entry and bibtex-skip-to-valid-entry.
19882 Remove undocumented optional arg called-by-convert-alien.
19883 (bibtex-convert-alien): Use bibtex-realign. Use bibtex-reformat
19884 for sorting instead of bibtex-sort-buffer.
19885
198862004-05-02 Eli Zaretskii <eliz@gnu.org>
19887
19888 * progmodes/compile.el (compilation-start): In the
19889 no-async-subprocesses branch, call sit-for to give redisplay a
19890 chance to show the updated process status in the mode line, and
19891 fontify the buffer explicitly after the process exits.
19892
198932004-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
19894
19895 * progmodes/python.el (python-compilation-line-number): Remove.
19896 (python-compilation-regexp-alist): Don't use it any more.
19897 (python-orig-start, python-input-filter): Remove.
19898 (inferior-python-mode): Don't set up comint-input-filter-functions.
19899 (python-send-region): Use compilation-fake-loc.
19900
19901 * progmodes/compile.el (compilation-messages-start): New var.
19902 (compilation-mode): Don't setup next-error-function here.
19903 (compilation-setup): Set it up here instead (for minor modes as well).
19904 Make compilation-messages-start buffer local.
19905 (compilation-next-error-function): Use it.
19906 (compilation-forget-errors): Set compilation-messages-start.
19907
199082004-05-01 Luc Teirlinck <teirllm@auburn.edu>
19909
19910 * ielm.el (ielm-prompt-read-only): Update docstring.
19911
19912 * comint.el (comint-prompt-read-only): Update docstring.
19913 (comint-update-fence, comint-kill-whole-line)
19914 (comint-kill-region): New functions.
19915
19916 * simple.el (kill-whole-line): Use "p" instead of "P" in
19917 interactive form.
19918
199192004-05-01 Juanma Barranquero <lektu@terra.es>
19920
19921 * help-fns.el (help-add-fundoc-usage): Use %S instead of %s to
19922 format arglist so default values in CL-style argument lists are
19923 correctly shown.
19924
199252004-05-01 Jason Rumney <jasonr@gnu.org>
19926
19927 * term/w32-win.el (w32-drag-n-drop): Use x-dnd.el functions.
19928
199292004-05-01 Kenichi Handa <handa@m17n.org>
19930
19931 * international/titdic-cnv.el (miscdic-convert): Don't generate a
19932 quail file if it is up to date.
19933
199342004-04-30 Juri Linkov <juri@jurta.org>
19935
19936 * cus-edit.el (custom-mode-map):
19937 Add key binding `C-x C-s' to `Custom-save'.
19938
19939 * outline.el (outline-blank-line): New var.
19940 (outline-next-preface, outline-show-heading)
19941 (outline-end-of-subtree): Use it.
19942
19943 * dired-aux.el (dired-touch-initial): New fun.
19944 (dired-do-chxxx): Call it for op-symbol `touch'.
19945 (dired-diff): Use `dired-dwim-target-directory'
19946 if current dired buffer has no buffer mark.
19947
19948 * bindings.el (propertized-buffer-identification):
19949 Replace `(:weight bold)' by `Buffer-menu-buffer-face'.
19950 Add C-M-arrow keys for consistency.
19951
19952 * files.el (confirm-kill-emacs):
19953 Change group from top-level `emacs' to `convenience'.
19954
19955 * emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
19956 Push mark on the first call of successive command calls.
19957 (insert-pair): New fun created from `insert-parentheses' with
19958 `open' and `close' arguments added. Enclose active regions
19959 in paired characters. Compare adjacent characters syntax with
19960 inserted characters syntax before inserting a space.
19961 (insert-parentheses): Call `insert-pair' with ?\( ?\).
19962
19963 * delsel.el: Don't put `delete-selection' property
19964 on `insert-parentheses' symbol to take advantage of
19965 region handling in `insert-pair' function.
19966 Suggested by Stephan Stahl <stahl@eos.franken.de>.
19967
199682004-04-30 Kim F. Storm <storm@cua.dk>
19969
19970 * emulation/cua-base.el: Add support for changing cursor types;
19971 based on patch from Michael Mauger.
19972 (cua-normal-cursor-color, cua-read-only-cursor-color)
19973 (cua-overwrite-cursor-color, cua-global-mark-cursor-color):
19974 Customization cursor type and/or cursor color.
19975 (cua--update-indications): Handle cursor type changes.
19976 (cua-mode): Update cursor indications if enabled.
19977
19978 * menu-bar.el (menu-bar-options-menu): Change menu text for CUA.
19979
19980 * mouse.el (mouse-drag-copy-region): New defcustom.
19981 (mouse-set-region, mouse-drag-region-1): Use it.
19982
19983 * simple.el (kill-ring-save): If region face background color is
19984 unspecified (if no highlighting), show extent of fully visible
19985 region even if transient-mark-mode is enabled.
19986
19987 * emulation/cua-base.el (cua--standard-movement-commands):
19988 Add cua-scroll-up and cua-scroll-down.
19989 (cua-scroll-up, cua-scroll-down): New commands.
19990 (cua--init-keymaps): Remap scroll-up and scroll-down.
19991
19992 * emulation/cua-rect.el (cua--convert-rectangle-as):
19993 New defmacro.
19994 (cua-upcase-rectangle, cua-downcase-rectangle): Use it.
19995 (cua-upcase-initials-rectangle, cua-capitalize-rectangle):
19996 New commands (suggested by Jordan Breeding).
19997
199982004-04-30 Juanma Barranquero <lektu@terra.es>
19999
20000 * smerge-mode.el (smerge-diff-switches): Fix typo in docstring.
20001
200022004-04-30 Mario Lang <mlang@delysid.org>
20003
20004 * diff.el (diff-switches): Fix typo in docstring.
20005
200062004-04-30 Alex Schroeder <alex@gnu.org>
20007
20008 * xml.el (xml-debug-print-internal): Don't add newline and
20009 indentation to text nodes and write empty elements as empty tags
20010 instead of opening and closing tags.
20011 (xml-debug-print): Take optional indent-string argument.
20012 (xml-print): Alias for xml-debug-print.
20013
200142004-04-30 Glenn Morris <gmorris@ast.cam.ac.uk>
20015
20016 * progmodes/fortran.el (fortran-fill): Use local var `bol' rather
20017 than duplicate call to `line-beginning-position'.
20018
20019 * progmodes/f90.el (f90-get-present-comment-type):
20020 Return whitespace, as well as comment chars, for consistent filling
20021 of comment blocks. Use `match-string-no-properties'.
20022 (f90-break-line): Trim trailing whitespace when filling comments.
20023
200242004-04-30 Dave Love <fx@gnu.org>
20025
20026 * calendar/diary-lib.el (diary-outlook-formats): New variable.
20027 (diary-from-outlook-internal, diary-from-outlook)
20028 (diary-from-outlook-gnus, diary-from-outlook-rmail):
20029 New functions to import diary entries from Outlook-format
20030 appointments in mail messages.
20031
200322004-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
20033
20034 * progmodes/python.el (python-send-command): New fun.
20035 (python-send-region, python-load-file): Use it.
20036
20037 * progmodes/compile.el (compilation-last-buffer): Add var alias.
20038
20039 * help-fns.el (help-C-file-name): Use new subr-name.
20040 Prepend `src/' to the file name.
20041 (help-C-source-directory, help-subr-name, help-find-C-source): Remove.
20042 (describe-function-1, describe-variable): Only find a C source file
20043 name if DOC is already loaded.
20044
20045 * help-mode.el (help-function-def, help-variable-def):
20046 Use the new find-function-search-for-symbol functionality.
20047 Allow FILE to be `C-source'.
20048
20049 * emacs-lisp/find-func.el (find-function-C-source-directory): New var.
20050 (find-function-C-source): New fun.
20051 (find-function-search-for-symbol): Use it.
20052
200532004-03-29 Michael Mauger <mmaug@yahoo.com>
20054
20055 * progmodes/sql.el (sql-product-alist): Rename variable
20056 `sql-product-support'. Add Postgres login parameters.
20057 (sql-set-product, sql-product-feature): Update with renamed variable.
20058 (sql-connect-postgres): Add username prompt.
20059 (sql-imenu-generic-expression, sql-mode-font-lock-object-name):
20060 Make patterns less product specific.
20061 (sql-xemacs-p, sql-emacs19-p): Add flags for Emacs variants.
20062 (sql-mode-abbrev-table): Modify initialization.
20063 (sql-builtin-face): Add variable.
20064 (sql-keywords-re): Add macro.
20065 (sql-mode-ansi-font-lock-keywords): Update for ANSI-92.
20066 (sql-mode-oracle-font-lock-keywords): Update for Oracle 9i.
20067 (sql-mode-postgres-font-lock-keywords): Update for Postgres 7.3.
20068 (sql-mode-mysql-font-lock-keywords): Update for MySql 4.0.
20069 (sql-mode-linter-font-lock-keywords)
20070 (sql-mode-ms-font-lock-keywords): Use `sql-keywords-re' macro.
20071 (sql-mode-sybase-font-lock-keywords)
20072 (sql-mode-informix-font-lock-keywords)
20073 (sql-mode-interbase-font-lock-keywords)
20074 (sql-mode-ingres-font-lock-keywords)
20075 (sql-mode-solid-font-lock-keywords)
20076 (sql-mode-sqlite-font-lock-keywords)
20077 (sql-mode-db2-font-lock-keywords): Default to nil.
20078 (sql-product-font-lock): Always highlight ANSI keywords.
20079 (sql-add-product-keywords): Made similar to `font-lock-add-keywords'.
20080 (sql-send-string): Add function.
20081
200822004-04-29 Dave Love <fx@gnu.org>
20083
20084 * progmodes/cfengine.el (cfengine-beginning-of-defun)
20085 (cfengine-end-of-defun): Ensure progress through buffer.
20086
20087 * info-look.el (cfengine-mode): Accept a terminal ().
20088
200892004-04-29 Juri Linkov <juri@jurta.org>
20090
20091 * isearch.el (isearch-mode-map): Bind \C-w to isearch-yank-word
20092 instead of isearch-yank-word-or-char. Add new key bindings for
20093 isearch-yank-char to \C-f, and isearch-del-char to \C-b.
20094 (isearch-del-char): New fun.
20095 (isearch-forward, isearch-edit-string): Update docstring.
20096 (isearch-yank-char): Doc fix.
20097 (isearch-other-meta-char): Restore point after scrolling.
20098
20099 * progmodes/compile.el (compilation-context-lines): Add nil option
20100 to disable compilation output window scrolling.
20101 (compilation-set-window): Use it.
20102
20103 * outline.el (outline-next-preface, outline-show-heading):
20104 Don't leave unhidden blank line before heading.
20105 (outline-end-of-subtree): Include last newline into subtree.
20106 (hide-entry): Leave point at beginning of heading instead of end.
20107 (outline-up-heading): Push mark for the first call of successive
20108 command calls.
20109
201102004-04-28 Luc Teirlinck <teirllm@auburn.edu>
20111
20112 * comint.el (comint-prompt-read-only): New variable.
20113 (comint-output-filter): Implement it.
20114
20115 * ielm.el (ielm-prompt-read-only, ielm-prompt): Update docstring.
20116 (ielm-prompt-internal): New variable.
20117 (ielm-font-lock-keywords): Remove irrelevant ielm-prompt keyword.
20118 (ielm-send-input): Delete unused variable `buf'.
20119 (ielm-eval-input): Use `ielm-prompt-internal'.
20120 (inferior-emacs-lisp-mode): Use new variables
20121 `comint-prompt-read-only' and `ielm-prompt-internal'.
20122 Get rid of obsolete variable `directory-sep-char'.
20123 (ielm): Use `zerop'.
20124
201252004-04-29 John Paul Wallington <jpw@gnu.org>
20126
20127 * thumbs.el (toplevel): Require cl at compile time.
20128 Remove conditional definitions of `ignore-errors' and `caddar'
20129 because they occur at run time.
20130
201312004-04-28 Nick Roberts <nickrob@gnu.org>
20132
20133 * progmodes/gdb-ui.el (gdb-frame-breakpoints-buffer)
20134 (gdb-frame-assembler-buffer, gdb-frame-threads-buffer)
20135 (gdb-frame-registers-buffer, gdb-frame-locals-buffer)
20136 (gdb-frame-gdb-buffer, gdb-frame-stack-buffer): Use selected-window.
20137
20138 * progmodes/gud.el (gud-common-init): Throw an error if program is
20139 already running under gdb.
20140
201412004-04-28 John Paul Wallington <jpw@gnu.org>
20142
20143 * thumbs.el (thumbs-delete-images): Fix formatting of prompt.
20144 (thumbs-show-image-num): Move assignment of
20145 `thumbs-current-image-filename' within scope of `i'.
20146 (thumbs-emboss-image): Don't use `evenp'.
20147
201482004-04-28 Richard M. Stallman <rms@gnu.org>
20149
20150 * progmodes/compile.el (compilation-context-lines): Default now 0.
20151
201522004-04-28 Juanma Barranquero <lektu@terra.es>
20153
20154 Use `time-less-p' from calendar/time-date.el instead of defining
20155 custom versions of it.
20156
20157 * pcomplete.el (pcomplete-time-less-p): Remove.
20158
20159 * thumbs.el (time-less-p): Remove.
20160
20161 * calendar/timeclock.el (timeclock-time-less-p): Remove.
20162 (timeclock-generate-report): Use `time-less-p'.
20163
20164 * emacs-lisp/autoload.el (autoload-before-p): Remove.
20165 (update-file-autoloads, update-directory-autoloads): Use `time-less-p'.
20166
201672004-04-28 Masatake YAMATO <jet@gyve.org>
20168
20169 * subr.el (remove-overlays): Make arguments optional.
20170
20171 * wid-edit.el (widget-specify-button): Put evaporate to the
20172 overlay for sample.
20173 (widget-specify-sample): Put evaporate to the overlay for sample.
20174 (widget-specify-doc): Put evaporate to the overlay for documentation.
20175
201762004-04-27 Jesper Harder <harder@ifa.au.dk>
20177
20178 * info.el (info-apropos): Make it an index node. Align node names
20179 like makeinfo.
20180
201812004-04-27 Eli Zaretskii <eliz@gnu.org>
20182
20183 * net/browse-url.el (browse-url-netscape-sentinel)
20184 (browse-url-mozilla-sentinel, browse-url-galeon-sentinel)
20185 (browse-url-epiphany-sentinel, browse-url-mosaic):
20186 Use browse-url-*-program instead of a literal program name.
20187
201882004-04-27 Kevin Ryde <user42@zip.com.au>
20189
20190 * eshell/em-alias.el:
20191 * eshell/em-dirs.el:
20192 * eshell/em-hist.el:
20193 * eshell/em-unix.el: Add "(require 'eshell)", to get necessary
20194 features when M-x customize-group loads modules before the main
20195 eshell.el.
20196
201972004-04-27 Matthew Mundell <matt@mundell.ukfsn.org>
20198
20199 * subr.el (momentary-string-display): Support EXIT-CHAR that is
20200 either a character representation of an event or an event
20201 description list.
20202
20203 * type-break.el: Capitalize Emacs and Lisp.
20204 (type-break-good-break-interval, type-break-demo-boring-stats)
20205 (type-break-terse-messages, type-break-file-name): New defcustoms.
20206 (type-break-post-command-hook)
20207 (type-break-warning-countdown-string): Quote variable names in doc.
20208 (type-break-interval-start, type-break-auto-save-file-name): New vars.
20209 (type-break-mode): Document type-break-good-break-interval and the
20210 "session" file. Schedule break according to the session file.
20211 Kill session file buffer on exit. Organize for save-some-buffers
20212 to always save the session file.
20213 (type-break-mode-line-message-mode, type-break-query-mode):
20214 Uppercase arguments.
20215 (type-break-file-time, type-break-file-keystroke-count, timep)
20216 (type-break-choose-file, type-break-get-previous-time)
20217 (type-break-get-previous-count): New defuns.
20218 (type-break): Avoid break querying after a completed break in the
20219 case where the query was initiated during user invocation of the
20220 break. Optional terse messages.
20221 Use type-break-good-break-interval if type-break-good-rest-interval is
20222 nil. File the break time.
20223 (type-break-schedule): New optional args for overriding the use of
20224 the current time.
20225 (type-break-cancel-time-warning-schedule): Avoid leftover warnings
20226 after a break.
20227 (type-break-check): File the keystroke count.
20228 (type-break-do-query): Prevent a second query when the break is
20229 interrupted. Optional terse message.
20230 (type-break-keystroke-reset): Record the start of a typing interval.
20231 (type-break-demo-boring): Optional terse messages. Display word
20232 per minute and keystroke counts according to
20233 type-break-demo-boring-stats.
20234
202352004-04-27 Daniel M Coffman <coffmand@us.ibm.com> (tiny change)
20236
20237 * arc-mode.el (archive-maybe-copy): If ARCHIVE includes leading
20238 directories, make sure they exist under archive-tmpdir.
20239
202402004-04-27 Juri Linkov <juri@jurta.org>
20241
20242 * help.el (view-emacs-news): With argument, display info for the
20243 selected version by finding it among different NEWS files, and
20244 narrowing the buffer to the selected version.
20245
20246 * info.el: Add *info*<[0-9]+> to same-window-regexps instead of
20247 same-window-buffer-names.
20248 (info): New arg `buffer'. Use it. Doc fix. Read file name for
20249 non-numeric prefix argument, append the number to the buffer name
20250 for numeric prefix argument.
20251 (info-other-window): Bind same-window-regexps to nil.
20252 (Info-reference-name): Rename to Info-point-loc.
20253 (Info-find-node-2): Call forward-line for numeric Info-point-loc,
20254 and Info-find-index-name for stringy Info-point-loc.
20255 (Info-extract-menu-node-name): New arg `index-node'. Use regexp
20256 without middle `.', but with final `.' and optional line number
20257 for it. Set Info-point-loc for index nodes.
20258 (Info-index): Remove middle `.' from index entry regexp.
20259 Modify line number regexp.
20260 (Info-index-next): Decrement line number.
20261 (info-apropos): Remove middle `.' from index entry regexp.
20262 Add optional line number regexp at the end. Add matched value
20263 for line number to the result list and insert it to the buffer.
20264 Replace match-string by match-string-no-properties.
20265 Reorder result list.
20266 (Info-fontify-node): Hide index line numbers.
20267 (Info-goto-node): Replace "\\s *\\'" by "\\s +\\'" to not trim
20268 empty matches.
20269 (Info-follow-reference): Use `str' instead of
20270 Info-following-node-name-re.
20271 (Info-toc): Use full file names. Set Info-current-node to "Top".
20272 (Info-fontify-node): Compare file names without directory name.
20273 (Info-try-follow-nearest-node): Don't set Info-reference-name.
20274 Set second arg of Info-extract-menu-node-name for index nodes.
20275 (info-xref-visited): Use magenta3 instead of magenta4.
20276 (Info-mode): Add info-apropos to docstring.
20277
20278 * log-view.el (log-view-diff): Replace interactive code "r"
20279 by a list to allow to call it even if region is not active.
20280
20281 * paren.el (show-paren-highlight-openparen): New var.
20282 (show-paren-function): Turn on openparen highlighting when
20283 matching forward if show-paren-highlight-openparen is non-nil.
20284
20285 * simple.el (kill-ring-save): Use blink-matching-delay instead of
20286 the constant value 1.
20287 (completions-common-part): Expand docstring.
20288
20289 * textmodes/picture.el (picture-mode-map): Add arrow keys.
20290
202912004-04-27 Kim F. Storm <storm@cua.dk>
20292
20293 * image.el (insert-sliced-image): Use line-height instead of
20294 line-spacing property on newline.
20295
202962004-04-26 Lars Hansen <larsh@math.ku.dk>
20297
20298 * desktop.el (desktop-buffer-misc-data-function): Rename to
20299 desktop-save-buffer and change docstring.
20300 (desktop-buffer-modes-to-save): Delete.
20301 (desktop-save-buffer-p): Use desktop-save-buffer instead of
20302 desktop-buffer-modes-to-save.
20303 (desktop-save): Rename desktop-buffer-misc-data-function to
20304 desktop-save-buffer and allow non-function value.
20305 (desktop-missing-file-warning): Correct docstring.
20306
20307 * dired.el (dired-mode): Rename desktop-buffer-misc-data-function
20308 to desktop-save-buffer.
20309
20310 * info.el (Info-mode): Rename desktop-buffer-misc-data-function to
20311 desktop-save-buffer.
20312
20313 * mail/rmail.el (rmail-variables): Bind desktop-save-buffer to t.
20314
20315 * mh-e/mh-e.el (mh-folder-mode): Bind desktop-save-buffer to t.
20316
203172004-04-26 Eli Zaretskii <eliz@gnu.org>
20318
20319 * progmodes/gud.el (gud-pdb-command-name): Change default to "pydb".
20320
203212004-04-25 Luc Teirlinck <teirllm@auburn.edu>
20322
20323 * ielm.el (ielm-prompt-read-only, ielm-prompt): Expand docstring.
20324 (ielm): Only go to the end of the buffer when starting a new process.
20325
203262004-04-25 Juanma Barranquero <lektu@terra.es>
20327
20328 * ielm.el (inferior-emacs-lisp-mode): Display working buffer on the
20329 mode line. Bind `inhibit-read-only' to t before modifying
20330 properties of text in the buffer.
20331 (ielm): Force point to the end of buffer, even when running ielm
20332 from inside itself.
20333
203342004-04-25 Jesper Harder <harder@ifa.au.dk>
20335
20336 * info.el (info-apropos): Reset Info-complete-cache.
20337
203382004-04-25 Daniel Pfeiffer <occitan@esperanto.org>
20339
20340 * progmodes/compile.el (compilation-error-regexp-alist-alist):
20341 Also recognize severe Irix et al. messages.
20342 (compilation-normalize-filename, compile-abbreviate-directory):
20343 Delete functions.
20344 (compilation-get-file-structure): New function inherits
20345 functionality of the two preceding ones.
20346 (compilation-internal-error-properties, compilation-fake-loc):
20347 Use it so that different paths to the same file share the same
20348 markers. Also optimize finding adjacent marker slightly.
20349
203502004-04-25 Kim F. Storm <storm@cua.dk>
20351
20352 * image.el (insert-sliced-image): Add line-spacing t property
20353 to newlines separating image lines.
20354
203552004-04-24 Luc Teirlinck <teirllm@auburn.edu>
20356
20357 * comint.el (comint-delete-output): Bind inhibit-read-only to t.
20358
20359 * ielm.el (ielm-prompt-read-only): New user option.
20360 (ielm-prompt): Expand docstring to describe new behavior.
20361 (inferior-emacs-lisp-mode): Implement ielm-prompt-read-only and
20362 mention it in the docstring.
20363
203642004-04-24 Andreas Schwab <schwab@suse.de>
20365
20366 * progmodes/sh-script.el (sh-leading-keywords) <sh>: Add "!".
20367
20368 * diff.el (diff): Set default-directory in diff buffer.
20369
203702004-04-24 Eli Zaretskii <eliz@gnu.org>
20371
20372 * mail/sendmail.el (mail-bury): Don't delete the frame where the
20373 mail was being composed if the terminal cannot display more than
20374 one frame; instead, switch to previous frame.
20375
20376 * mail/rmail.el (rmail-mail-new-frame): Doc fix.
20377 (rmail-start-mail): Support rmail-mail-new-frame even on
20378 terminals that can display only one frame at a time.
20379
203802004-04-23 Stefan Monnier <monnier@iro.umontreal.ca>
20381
20382 * emacs-lisp/checkdoc.el (checkdoc-output-error-regex-alist): New var.
20383 (checkdoc-output-font-lock-keywords): Remove error regexp.
20384 (checkdoc-output-mode-map): Remove.
20385 (checkdoc-output-mode): Derive from compilation-mode.
20386 (checkdoc-find-error-mouse, checkdoc-find-error): Remove.
20387
20388 * dired.el (dired-mode-map): Add a menu entry for wdired.
20389
20390 * emacs-lisp/rx.el (rx-syntax): Move sregex style syntax to code.
20391 (rx-bracket, rx-check-any, rx-any): Clean up name space.
20392
20393 * wdired.el (wdired-mode-map): Move init into declaration.
20394 Fix `return' binding.
20395 (wdired-change-to-wdired-mode, wdired-change-to-dired-mode):
20396 Use force-mode-line-update.
20397 (wdired-get-filename): Use `unless'.
20398 (wdired-preprocess-files): Don't assume names have no \n and use / for
20399 dir separator.
20400 (wdired-normalize-filename): Use replace-regexp-in-string.
20401 (wdired-load-hooks): Remove.
20402 (wdired-mode-hooks): Rename to wdired-mode-hook.
20403
20404 * info-look.el: Add support for cfengine-mode.
20405 (info-lookup-setup-mode): Use dolist.
20406
204072004-04-23 Juan Le,As(Bn Lahoz Garc,Am(Ba <juan-leon.lahoz@tecsidel.es>
20408
20409 * wdired.el: New file.
20410
204112004-04-23 Juanma Barranquero <lektu@terra.es>
20412
20413 * ielm.el (inferior-emacs-lisp-mode): Fix docstring.
20414
20415 * pcomplete.el (pcomplete-opt, pcomplete-actual-arg)
20416 (pcomplete-match-string, pcomplete-comint-setup, pcomplete-here)
20417 (pcomplete--help, pcomplete--here): Doc fixes.
20418
204192004-04-23 Andre Spiegel <spiegel@gnu.org>
20420
20421 * vc-hooks.el (vc-default-workfile-unchanged-p): Fix code that
20422 handles wrong-number-of-arguments in backend call.
20423
20424 * vc.el (vc-print-log): Likewise.
20425
204262004-04-20 Dave Love <fx@gnu.org>
20427
20428 * emacs-lisp/rx.el: Doc fixes.
20429 (rx-constituents): Add/extend many forms.
20430 (rx-check): Check form is a list.
20431 (bracket): Defvar.
20432 (rx-check-any, rx-any, rx-check-not): Modify.
20433 (rx-not): Simplify.
20434 (rx-trans-forms, rx-=, rx->=, rx-**, rx-not-char, rx-not-syntax): New.
20435 (rx-kleene): Use rx-trans-forms.
20436 (rx-quote-for-set): Delete.
20437 (rx): Allow multiple args.
20438
204392004-04-23 Kenichi Handa <handa@m17n.org>
20440
20441 * international/mule-util.el (char-displayable-p): Simplify by
20442 using internal-char-font.
20443
204442004-04-23 Juanma Barranquero <lektu@terra.es>
20445
20446 * makefile.w32-in: Add "-*- makefile -*-" mode tag.
20447
204482004-04-22 Stefan Monnier <monnier@iro.umontreal.ca>
20449
20450 * diff-mode.el (diff-next-error): New fun.
20451 (diff-mode): Use it.
20452
20453 * simple.el (next-error): Change arg name.
20454 Add support for the documented C-u C-x ` usage.
20455
20456 * frame.el (special-display-popup-frame, next-multiframe-window)
20457 (previous-multiframe-window): Only consider frames on same display.
20458
204592004-04-22 Lars Hansen <larsh@math.ku.dk>
20460
20461 * info.el (Info-restore-desktop-buffer): Delete with-no-warnings.
20462 * mh-e/mh-e.el (mh-restore-desktop-buffer): Delete with-no-warnings.
20463
204642004-04-22 Kim F. Storm <storm@cua.dk>
20465
20466 * net/telnet.el (telnet): Add optional port arg.
20467
204682004-04-21 Stefan Monnier <monnier@iro.umontreal.ca>
20469
20470 * progmodes/compile.el (compilation-mode-font-lock-keywords):
20471 Minor sanity check on the `hyperlink' slot.
20472
20473 * Makefile.in (recompile): Compile new files.
20474
20475 * emacs-lisp/bytecomp.el (batch-byte-recompile-directory):
20476 Add byte-recompile-directory's optional `arg'.
20477
20478 * cvs-status.el (cvs-tree-use-charset): New var.
20479 (cvs-tree-char-space, cvs-tree-char-hbar, cvs-tree-char-vbar)
20480 (cvs-tree-char-branch, cvs-tree-char-eob, cvs-tree-char-bob)
20481 (cvs-status-cvstrees): Use it.
20482
20483 * emacs-lisp/checkdoc.el (checkdoc-output-mode):
20484 Make it a normal major mode.
20485 (checkdoc-buffer-label): Make sure the file name is meaningful.
20486 (checkdoc-output-to-error-buffer): Remove.
20487 (checkdoc-error, checkdoc-start-section): Rewrite.
20488
20489 * info.el (info-node, info-menu-5, info-xref, info-header-node)
20490 (Info-title-1-face, Info-title-2-face, Info-title-3-face)
20491 (Info-title-4-face): Use new syntax.
20492 (info-xref-visited): Inherit from info-xref.
20493
20494 * progmodes/python.el (python-maybe-jython): Don't assume point-min==1.
20495
204962004-04-21 Teodor Zlatanov <tzz@lifelogs.com>
20497
20498 * simple.el (next-error-last-buffer, next-error-function):
20499 New variables for the next-error framework.
20500 (next-error-buffer-p): New function.
20501 (next-error-find-buffer): Generalize compilation-find-buffer.
20502 (next-error, previous-error, first-error, next-error-no-select)
20503 (previous-error-no-select): Move from compile.el.
20504
20505 * replace.el (occur-next-error, occur-1): Hook into the next-error
20506 framework.
20507
20508 * progmodes/compile.el (compilation-start):
20509 Set next-error-last-buffer so next-error knows where to jump.
20510 (compilation-setup): Set the buffer-local variable
20511 next-error-function to 'compilation-next-error-function.
20512 (compilation-buffer-p, compilation-buffer-internal-p): Use an
20513 alternate way to find if a buffer is a compilation buffer, for
20514 next-error convenience.
20515 (next-error-no-select, previous-error-no-select, next-error)
20516 (previous-error, first-error): Move to simple.el.
20517 (compilation-find-buffer): Move to next-error-find-buffer in simple.el.
20518 (compilation-last-buffer): Remove.
20519 (compilation-start, compilation-next-error, compilation-setup)
20520 (compilation-next-error-function, compilation-find-buffer):
20521 Remove compilation-last-buffer use.
20522
205232004-04-21 Juanma Barranquero <lektu@terra.es>
20524
20525 * font-lock.el (font-lock-preprocessor-face): Remove spurious quote.
20526 (font-lock-warning-face): Fix spacing.
20527
20528 * makefile.w32-in (WINS): Add url/ directory.
20529
205302004-04-21 Lars Hansen <larsh@math.ku.dk>
20531
20532 * desktop.el (desktop-buffer-mode-handlers): New variable.
20533 Alist of major mode specific functions to restore a desktop buffer.
20534 (desktop-buffer-handlers): Make variable obsolete.
20535 (desktop-create-buffer): Use desktop-buffer-mode-handlers.
20536 Catch errors signaled in handlers. Update buffer count.
20537 Evaluate desktop-buffer-point.
20538 (desktop-buffer-dired): Rename to dired-restore-desktop-buffer and
20539 move to dired.el.
20540 (desktop-buffer-info): Rename to Info-restore-desktop-buffer and
20541 move to info.el.
20542 (desktop-buffer-rmail): Rename to rmail-restore-desktop-buffer and
20543 move to mail/rmail.el.
20544 (desktop-buffer-mh): Rename to mh-restore-desktop-buffer and move
20545 to mh-e/mh-e.el.
20546 (desktop-buffer-file): Rename to desktop-restore-file-buffer.
20547 On fail, print message (to message buffer) even if
20548 desktop-missing-file-warning is nil.
20549 (desktop-buffer-misc-data-function): New buffer local variable.
20550 Function returning major mode specific data.
20551 (desktop-buffer-misc-functions): Make variable obsolete.
20552 (desktop-save): Use desktop-buffer-misc-data-function.
20553 (desktop-buffer-dired-misc-data): Rename to
20554 dired-desktop-buffer-misc-data and move to dired.el.
20555 (desktop-buffer-info-misc-data): Rename to
20556 Info-desktop-buffer-misc-data and move to info.el.
20557 (desktop-read): Add message about number of buffers restored/failed.
20558
20559 * dired.el (dired-restore-desktop-buffer) Move from desktop.el.
20560 Add parameters. Pause to display error only when
20561 desktop-missing-file-warning is non-nil.
20562 (dired-desktop-buffer-misc-data): Move from desktop.el. Add parameter.
20563 (dired-mode): Bind desktop-buffer-misc-data-function.
20564
20565 * info.el (Info-restore-desktop-buffer): Move from desktop.el.
20566 Add Parameters.
20567 (Info-desktop-buffer-misc-data): Move from desktop.el. Add parameter.
20568 (Info-mode): Bind desktop-buffer-misc-data-function.
20569
20570 * mail/rmail.el (rmail-restore-desktop-buffer): Move from desktop.el.
20571 Add Parameters.
20572
20573 * mh-e/mh-e.el (mh-restore-desktop-buffer): Move from desktop.el.
20574 Add Parameters.
20575
205762003-04-21 Paul Pogonyshev <pogonyshev@gmx.net>
20577
20578 * dabbrev.el (dabbrev--substitute-expansion): Don't lose
20579 the case of letters in case-insensitive expansions when the
20580 abbrev is preceded by characters with letter syntax.
20581
205822004-04-21 Richard M. Stallman <rms@gnu.org>
20583
20584 * progmodes/cperl-mode.el (cperl-putback-char):
20585 Delete Emacs 18 definition.
20586
20587 * international/mule.el (ctext-post-read-conversion):
20588 Use assoc-string, not assoc-ignore-case.
20589
20590 * international/mule-cmds.el: Use assoc-string, not assoc-ignore-case.
20591
20592 * emacs-lisp/easymenu.el (easy-menu-add):
20593 Do call x-popup-menu, but only if it's defined.
20594
20595 * emacs-lisp/disass.el (disassemble): Handle lambda-exp as arg.
20596
20597 * emacs-lisp/bytecomp.el (byte-compile-no-warnings):
20598 Handle multiple args: compile like progn.
20599
20600 * emacs-lisp/byte-run.el (with-no-warnings): Simplify:
20601 take all args as &rest arg.
20602
20603 * autoinsert.el (auto-insert-alist): Insert the user's name in
20604 copyright notice, rather than Free Software Foundation.
20605
206062004-04-21 Kenichi Handa <handa@m17n.org>
20607
20608 * descr-text.el (describe-char): Make it work on *Help* buffer.
20609
206102004-04-21 Kim F. Storm <storm@cua.dk>
20611
20612 * image.el (insert-image): Add optional SLICE arg.
20613 (insert-sliced-image): New defun.
20614
206152004-04-20 Lawrence Mitchell <wence@gmx.li> (tiny change)
20616
20617 * subr.el (read-number): Check whether `default' is nil.
20618
206192004-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
20620
20621 * progmodes/compile.el (compilation-error-properties): Split into
20622 two.
20623 (compilation-internal-error-properties): New one.
20624 (compilation-compat-error-properties): Use it. Fix the non-marker
20625 case.
20626
206272004-04-20 Richard M. Stallman <rms@gnu.org>
20628
20629 * window.el (split-window-save-restore-data):
20630 Don't update the data if OLD-INFO is nil.
20631
20632 * view.el (view-return-to-alist): Mark it permanent local.
20633
20634 * subr.el (event-modifiers): Fix the criterion for ASCII control chars.
20635
20636 * recentf.el (recentf-save-list): Catch and warn about errors.
20637
20638 * menu-bar.el (menu-bar-update-buffers): Call copy-sequence
20639 so "Buffers" won't be pure.
20640
20641 * help-mode.el (help-mode-finish): Set help-return-alist first
20642 thing, setting only the entry for the selected window.
20643
20644 * help-fns.el (describe-function-1): If many non-control non-meta
20645 keys run the command, don't list all of them.
20646
206472004-04-20 Juanma Barranquero <lektu@terra.es>
20648
20649 * vc-svn.el (vc-svn-print-log, vc-svn-diff): Add optional BUFFER
20650 arg. Copied from Andre Spiegel's patch of 2004-03-21.
20651
20652 * calendar/time-date.el (time-to-day-in-year): Fix docstring.
20653
206542004-04-20 Kenichi Handa <handa@m17n.org>
20655
20656 * international/quail.el (quail-lookup-key): New optional arg
20657 NOT-RESET-INDICES.
20658 (quail-get-translations): Call quail-lookup-key with
20659 NOT-RESET-INDICES t.
20660 (quail-completion): Likewise.
20661 (quail-lookup-map-and-concat): Likewise.
20662
206632004-04-20 Kenichi Handa <handa@m17n.org>
20664
20665 * international/quail.el (quail-update-translation): Don't insert
20666 such an unsupported multibyte char in a unibyte buffer.
20667
206682004-04-20 Nick Roberts <nick@nick.uklinux.net>
20669
20670 * progmodes/gdb-ui.el (gdb-frame-parameters): New constant.
20671 (gdb-frame-breakpoints-buffer, gdb-frame-stack-buffer)
20672 (gdb-frame-threads-buffer, gdb-frame-registers-buffer)
20673 (gdb-frame-locals-buffer, gdb-frame-gdb-buffer)
20674 (gdb-frame-assembler-buffer): Improve behavior with
20675 multiple frames.
20676 (gdb-display-buffer): Extend search to all visible frames.
20677
206782004-04-19 Eli Zaretskii <eliz@gnu.org>
20679
20680 * mail/rmail.el (rmail-convert-to-babyl-format): Don't remove ^M
20681 characters left after base64 decoding.
20682 (rmail-decode-region): Use -dos variety of `coding', to remove any
20683 ^M characters left after qp or base64 decoding.
20684
206852004-04-19 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
20686
20687 * x-dnd.el (x-dnd-open-local-file, x-dnd-open-file): Improve error
20688 messages.
20689
206902004-04-19 Stephen Eglen <stephen@gnu.org>
20691
20692 * add-log.el (add-change-log-entry): Update doc string to mention
20693 add-log-full-name and add-log-mailing-address.
20694
206952004-04-18 Juri Linkov <juri@jurta.org>
20696
20697 * info.el (Info-find-file, Info-find-node-2): Add history and toc.
20698 (Info-find-node-2): Simplify error message.
20699 (Info-insert-dir): Use Info-following-node-name.
20700 (Info-goto-node): Remove *info-history* and *info-toc*.
20701 (Info-history): Create a node of the virtual history file.
20702 (Info-toc): Create a node of the virtual toc file.
20703 (Info-insert-toc): New arg `curr-file' for reference file names.
20704 (info-apropos): Remove redundant var binding for temp-file.
20705 (Info-index, Info-index-next, Info-mode): Doc fix.
20706 (Info-goto-emacs-command-node): Don't jump to *info* from
20707 non-*info* Info buffers.
20708 (Info-fontify-node): Don't show the file name of external
20709 references if `Info-hide-note-references' is `hide'. Don't hide
20710 newlines at the end of paragraphs.
20711
20712 * international/mule-diag.el (list-input-methods):
20713 Fix args to help-xref-button.
20714
20715 * help-fns.el (help-with-tutorial): Call `hack-local-variables'
20716 to put into effect local variables from TUTORIAL files.
20717
20718 * textmodes/paragraphs.el (sentence-end) <function>: New fun
20719 with default value taken from the variable `sentence-end'.
20720 (sentence-end) <defcustom>: Set default to nil. Doc fix.
20721 Add nil const to :type.
20722 (sentence-end-without-period, sentence-end-double-space)
20723 (sentence-end-without-space): Doc fix.
20724
20725 * textmodes/paragraphs.el (forward-sentence):
20726 * textmodes/fill.el (canonically-space-region, fill-nobreak-p)
20727 (fill-delete-newlines):
20728 * progmodes/cc-cmds.el (c-beginning-of-statement):
20729 Use function `sentence-end' instead of variable `sentence-end'.
20730
207312004-04-18 Andreas Schwab <schwab@suse.de>
20732
20733 * progmodes/compile.el (compilation-start): Set window start to
20734 point-min if compilation-scroll-output is nil.
20735
207362004-04-18 John Wiegley <johnw@newartisans.com>
20737
20738 * iswitchb.el (iswitchb-completions): Remove dependency on cl.
20739
207402004-04-18 Nick Roberts <nick@nick.uklinux.net>
20741
20742 * progmodes/gdb-ui.el (gdb-goto-info): Require 'info.
20743 (gdb-info-breakpoints-custom): Revert previous change.
20744 (gdb-view-assembler): Update assembler if necessary.
20745 (gdb-frame-handler): Parse correctly for gdb-current-frame.
20746 (gdb-display-source-buffer): Update properly when both source and
20747 assembler are visible.
20748
207492004-04-17 John Wiegley <johnw@newartisans.com>
20750
20751 * iswitchb.el (iswitchb-max-to-show): Add a new config variable
20752 which limits the number of names shown in the minibuffer. Off by
20753 default.
20754 (iswitchb-completions): Use `iswitchb-max-to-show'. This speeds
20755 up iswitchb for users with a multitude of open buffers by showing
20756 only the first and last N/2 buffers in the completion list (which
20757 is enough to aid C-s/C-r, and to know that more characters are
20758 needed to refine the completion list).
20759
207602004-04-17 Richard M. Stallman <rms@gnu.org>
20761
20762 * files.el (locate-file-completion): Handle nil in path-and-suffixes.
20763 (file-truename): Expand all ~ constructs directly.
20764 (insert-directory): Delete any error msg output by the
20765 `insert-directory-program'.
20766
20767 * allout.el (allout-mode-exposure-menu, allout-mode-editing-menu):
20768 (allout-mode-navigation-menu, allout-mode-misc-menu): New defvars.
20769 (allout-prior-bindings, allout-added-bindings): Defvars deleted.
20770 (allout-init): Use find-file-hook, not find-file-hooks.
20771 (allout-mode): Eliminate Emacs 18 support.
20772 Use write-contents-functions, not local-write-file-hooks.
20773
207742004-04-17 Daniel Pfeiffer <occitan@esperanto.org>
20775
20776 * progmodes/compile.el (compilation-error-properties): Fix for
20777 adding messages when there are already markers for their file.
20778 (compilation-fake-loc): New function.
20779
207802004-04-16 Dave Love <fx@gnu.org>
20781
20782 * progmodes/python.el (python-compilation-line-number): Fix
20783 braindamage.
20784 (python-load-file): Fix python-orig-start setting.
20785
20786 * progmodes/compile.el: Doc fixes.
20787 (compilation-error-regexp-alist-alist)
20788 (compilation-mode-font-lock-keywords): Allow non-ASCII where possible.
20789 (compilation-assq): Wrap in eval-when-compile.
20790 (compilation-mode-font-lock-keywords): Don't use list*.
20791 (compilation-start): Avoid warning.
20792 (compilation-compat-error-properties)
20793 (compilation-directory-properties): Add keymap property.
20794 (compilation-parsing-end): Make it a marker for better compatibility.
20795
20796 * progmodes/python.el (python-after-info-look): Use with-no-warnings.
20797
207982004-04-16 Mark A. Hershberger <mah@everybody.org>
20799
20800 * xml.el: Doc fixes.
20801 (xml-get-children): Only looks at sub-tags and ignore strings.
20802
20803 * xml.el (xml-parse-tag): Avoid overwriting node-name.
20804
208052004-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
20806
20807 * diff-mode.el (diff-end-of-hunk): Be more careful with unified hunks.
20808
208092004-04-16 Andre Spiegel <spiegel@gnu.org>
20810
20811 * vc-hooks.el (vc-default-workfile-unchanged-p): Quote signal.
20812
20813 * vc.el (vc-print-log): Likewise.
20814
208152004-04-16 Masatake YAMATO <jet@gyve.org>
20816
20817 * simple.el (completion-setup-function): Set an initial value to
20818 `element-common-end' before entering loop. Set a value to
20819 `element-common-end' at the end of loop. The bug is reported by
20820 Juri Linkov <juri@jurta.org> in emacs-devel list.
20821 (completions-common-part): Rename from completion-de-emphasis.
20822 (completions-first-difference): Rename from completion-emphasis.
20823 Suggested by RMS.
20824
208252004-04-16 Juanma Barranquero <lektu@terra.es>
20826
20827 * bookmark.el (bookmark-send-edited-annotation): Fix docstring.
20828 (bookmark-edit-annotation-mode): Add mode name.
20829
208302004-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
20831
20832 * smerge-mode.el (smerge-match-conflict): Try to do something sensible
20833 for nested conflict markers.
20834 (smerge-find-conflict): Better handle errors in smerge-match-conflict.
20835
208362004-04-15 Nick Roberts <nick@nick.uklinux.net>
20837
20838 * progmodes/gdb-ui.el (gdb-goto-info): New function.
20839
20840 * progmodes/gud.el (gud-menu-map, gud-tool-bar-map): Add help button.
20841
208422004-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
20843
20844 * emacs-lisp/bytecomp.el (batch-byte-compile-file):
20845 Give a backtrace if requested.
20846
20847 * progmodes/ada-mode.el (ada-create-menu): Remove redundant call.
20848
20849 * progmodes/python.el (python-mouse-2-command, python-RET-command):
20850 Remove unused functions.
20851 (python-orig-start-line, python-orig-file): Remove.
20852 (python-orig-start): New var.
20853 (python-input-filter, python-compilation-line-number)
20854 (python-send-region, python-load-file): Use it.
20855
20856 * info.el (info): Always jump to *info*.
20857
20858 * subr.el (posn-set-point): New function.
20859
20860 * mouse.el (mouse-set-point): Use it.
20861
20862 * progmodes/compile.el (compile-goto-error): Use it.
20863 (compilation-button-map): New keymap.
20864 (compilation-error-properties): Use it.
20865 (compilation-shell-minor-mode-map): Don't bind mouse-2.
20866
20867 * smerge-mode.el (smerge-popup-context-menu): Use it.
20868
20869 * emacs-lisp/checkdoc.el (checkdoc-output-mode-map)
20870 (checkdoc-find-error-mouse, checkdoc-find-error): Use it to merge the
20871 mouse and non-mouse case.
20872
20873 * diff-mode.el (diff-goto-source): Make it work for mouse bindings.
20874 (diff-mouse-goto-source): Make it an alias of diff-goto-source.
20875
20876 * pcvs.el (cvs-mode-toggle-mark): Rename from cvs-mouse-toggle-mark.
20877 Make it work for non-mouse events.
20878
20879 * pcvs-info.el (cvs-status-map): Update binding name.
20880
208812004-04-14 Mark A. Hershberger <mah@everybody.org>
20882
20883 * xml.el (xml-maybe-do-ns): New function to handle namespace
20884 parsing of both attribute and element names.
20885 (xml-ns-parse-ns-attrs, xml-ns-expand-el, xml-ns-expand-attr)
20886 (xml-intern-attrlist): Remove in favor of xml-maybe-do-ns.
20887 (xml-parse-tag): Update assumed namespaces. Clean up namespace
20888 parsing.
20889 (xml-parse-attlist): Make it do its own namespace parsing.
20890
208912004-04-14 Dave Love <fx@gnu.org>
20892
20893 * progmodes/python.el (run-python): Fix use of \n.
20894 (python-load-file): Remove `try' from Python fragment.
20895 (python-describe-symbol): Fix message.
20896
20897 * comint.el: Doc fixes.
20898 (comint-last-input-start, comint-last-input-end)
20899 (comint-last-output-start): Give them values.
20900 (comint-arguments): Avoid warning.
20901 (comint-skip-prompt): Use line-end-position.
20902 (comint-backward-matching-input): Rename arg to agree with doc.
20903 (comint-extract-string): Use syntax-ppss.
20904 (comint-dynamic-simple-complete): Delete useless list construction.
20905 (comint-redirect-subvert-readonly): New.
20906 (comint-redirect-preoutput-filter): Use it.
20907
20908 * emacs-lisp/lisp.el (beginning-of-defun-raw, end-of-defun):
20909 Correctly handle negative arguments when calling hook functions.
20910
209112004-04-14 Jesper Harder <harder@ifa.au.dk>
20912
20913 * info.el (info-apropos): Don't clobber Info-history-list.
20914
209152004-04-14 Daniel Pfeiffer <occitan@esperanto.org>
20916
20917 * progmodes/compile.el (compilation-setup):
20918 Localize overlay-arrow-position.
20919 (compilation-sentinel): Restructure code equivalently.
20920 (compilation-next-error): Find message on same line after point if
20921 not found before point.
20922 (compile-mouse-goto-error): Restore function so that compilation
20923 buffer need not be current and use compile-goto-error.
20924 (compile-goto-error): Restore function.
20925 (next-error): Set overlay-arrow-position.
20926 (compilation-forget-errors): Don't localize already local
20927 compilation-locs and remove FIXME about refontifying.
20928
209292004-04-14 Kim F. Storm <storm@cua.dk>
20930
20931 * startup.el (emacs-quick-startup): New defvar (set by -Q).
20932 (command-line): New option -Q. Like -q --no-site-file, but in
20933 addition it also disables menu-bar, tool-bar, scroll-bars,
20934 tool-tips, and the blinking cursor.
20935 (command-line-1): Skip startup screen if -Q.
20936 (fancy-splash-head): Use ":align-to center" prop to center splash
20937 image.
20938
20939 * emulation/cua-base.el (cua-read-only-cursor-color)
20940 (cua-overwrite-cursor-color, cua-global-mark-cursor-color): Doc fix.
20941
209422004-04-13 Dave Love <fx@gnu.org>
20943
20944 * progmodes/python.el: Doc fixes. Changes for compiler warnings.
20945 (syntax): Don't require.
20946 (python) <defgroup>: Add :version.
20947 (python-quote-syntax): Re-written.
20948 (inferior-python-mode): Move stuff here from run-python and add
20949 some more.
20950 (python-preoutput-continuation, python-preoutput-result)
20951 (python-dotty-syntax-table): New.
20952 (python-describe-symbol): Use them.
20953 (run-python): Move stuff to inferior-python-mode. Modify code
20954 loaded into Python.
20955 (python-send-region): Use python-proc, python-send-string.
20956 (python-send-string): Send newlines too. Callers changed.
20957 (python-load-file): Re-written.
20958 (python-eldoc-function): New.
20959 (info-look): Don't require.
20960 (python-after-info-look): New. A modified version of former
20961 top-level code for use with eval-after-load.
20962 (python-maybe-jython, python-guess-indent): Use widened buffer.
20963 (python-fill-paragraph): Re-written.
20964 (python-mode): Fix outline-regexp. Set outline-heading-end-regexp,
20965 eldoc-print-current-symbol-info-function. Add to eldoc-mode-hook.
20966
209672004-04-13 Stefan Monnier <monnier@iro.umontreal.ca>
20968
20969 * progmodes/python.el (run-python): Use compilation-shell-minor-mode.
20970 Set compilation-error-regexp-alist earlier.
20971
20972 * progmodes/compile.el (compilation-minor-mode-map)
20973 (compilation-shell-minor-mode-map, compile-mouse-goto-error)
20974 (compile-goto-error): Re-merge the mouse and non-mouse commands.
20975
209762004-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
20977
20978 * progmodes/compile.el (compile-goto-error): Select the buffer/window
20979 corresponding to the event.
20980
209812004-04-12 Joe Buehler <jbuehler@hekiman.com>
20982
20983 * loadup.el: Add cygwin to system-type list, for unexec() support.
20984
209852004-04-12 John Paul Wallington <jpw@gnu.org>
20986
20987 * ibuffer.el (ibuffer-delete-window-on-quit): Remove.
20988 (ibuffer-restore-window-config-on-quit): New variable to replace
20989 `ibuffer-delete-window-on-quit'. Update all references.
20990 (ibuffer-prev-window-config): New variable.
20991 (ibuffer-quit): Restore previous window configuration instead of
20992 deleting window.
20993 (ibuffer): Save window configuration before showing Ibuffer buffer.
20994
20995 * help.el (describe-mode): Doc fix.
20996
209972004-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
20998
20999 * progmodes/compile.el (compilation-mode-font-lock-keywords): Fix test
21000 not to treat nil as a function.
21001
21002 * vc-arch.el (vc-arch-root): Be a bit more careful.
21003 (vc-arch-register): Save the buffer if we modified it.
21004 (vc-arch-delete-rej-if-obsolete): Save excursion.
21005 (vc-arch-find-file-hook): Use the simpler after-save-hook.
21006 (vc-arch-responsible-p, vc-arch-init-version): New functions.
21007
21008 * net/ldap.el (ldap-search): Use list*.
21009
210102004-04-12 Juri Linkov <juri@jurta.org>
21011
21012 * info.el (Info-follow-reference): Allow multiline reference name.
21013
210142004-04-11 Dave Love <fx@gnu.org>
21015
21016 * emacs-lisp/bytecomp.el (byte-compile-cond): Fix last change.
21017
21018 * progmodes/python.el: New file.
21019
210202004-04-11 Andre Spiegel <spiegel@gnu.org>
21021
21022 * vc-hooks.el (vc-arg-list): Function removed.
21023 (vc-default-workfile-unchanged-p): Use condition-case to check for
21024 backward compatibility.
21025
21026 * vc.el (vc-print-log): Use condition-case to check for backward
21027 compatibility.
21028
210292004-04-11 Juri Linkov <juri@jurta.org>
21030
21031 * dired.el (dired-faces): New defgroup.
21032 (dired-header, dired-mark, dired-marked, dired-flagged)
21033 (dired-warning, dired-directory, dired-symlink, dired-ignored):
21034 New faces.
21035 (dired-header-face, dired-mark-face, dired-marked-face)
21036 (dired-flagged-face, dired-warning-face, dired-directory-face)
21037 (dired-symlink-face, dired-ignored-face): New face variables.
21038 (dired-font-lock-keywords): Use them instead of font-lock faces.
21039 Split the rule for dired marks into 3 separate rules: for marks,
21040 marked file names and flagged file names.
21041
21042 * help-mode.el (help-make-xrefs): Add a final newline to the
21043 *Help* buffer.
21044
210452004-04-11 John Paul Wallington <jpw@gnu.org>
21046
21047 * replace.el (occur-engine): Distinguish between one and several
21048 matches in the matches per buffer heading.
21049
210502004-04-11 Kim F. Storm <storm@cua.dk>
21051
21052 * ido.el (ido-confirm-unique-completion): New defcustom.
21053 (ido-complete): Use it.
21054 (ido-write-file): Set it to t unconditionally.
21055
210562004-04-10 Miles Bader <miles@gnu.org>
21057
21058 RCS keyword removal (only non-comment changes are enumerated here):
21059
21060 * emacs-lisp/bytecomp.el (byte-compile-version): Variable removed.
21061 (byte-compile-insert-header): Don't use `byte-compile-version'.
21062 * forms.el (forms-version): Variable removed.
21063 (forms-mode): Don't use `forms-version'.
21064 * recentf.el (recentf-version): Variable removed.
21065 * progmodes/delphi.el (delphi-version): Variable removed.
21066 * progmodes/ada-mode.el (ada-mode): RCS keyword removed from docstring.
21067
210682004-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
21069
21070 * emacs-lisp/easymenu.el (easy-menu-add): Make it work in non-X Emacs.
21071
210722004-04-09 Jesper Harder <harder@ifa.au.dk>
21073
21074 * info.el (info-apropos): Improve menu item regexp.
21075
210762004-04-09 Simon Josefsson <jas@extundo.com>
21077
21078 * mail/smtpmail.el: Add comment, based on report by
21079 kdc@rcn.com (Kevin D. Clark).
21080
210812004-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
21082
21083 * progmodes/compile.el (compilation-mode-font-lock-keywords):
21084 Redo one more thing that I didn't notice Daniel had undone.
21085
210862004-04-08 Nick Roberts <nick@nick.uklinux.net>
21087
21088 * progmodes/gdb-ui.el (gdb-source-window): Remove variable.
21089 (gdb-goto-breakpoint, gdb-display-buffer)
21090 (gdb-display-source-buffer, gdb-view-source-function)
21091 (gdb-view-assembler, gdb-setup-windows, gdb-restore-windows)
21092 (gdb-source-info, gdb-frame-handler): Don't specify a window
21093 for display.
21094 (gdb-info-breakpoints-custom): Remove superfluous update of
21095 assembler buffer.
21096 (gdb-many-windows): Make settable outside gdb.
21097
210982004-04-08 Glenn Morris <gmorris@ast.cam.ac.uk>
21099
21100 * calendar/diary-lib.el (diary-mode, fancy-diary-display-mode):
21101 Derive from fundamental-mode rather than text-mode.
21102
211032004-04-08 Juri Linkov <juri@jurta.org>
21104
21105 * info.el (Info-history): Doc fix.
21106 (Info-history-list): New var.
21107 (info-xref): Change magenta4 to blue, remove bold for dark and
21108 light backgrounds, change bold to underline for non-color classes.
21109 (info-xref-visited): New face.
21110 (Info-fontify-visited-nodes): New custom.
21111 (Info-hide-note-references): Add new value `hide'. Doc fix.
21112 (Info-reference-name): New var.
21113 (Info-selection-hook): New custom.
21114 (Info-edit-mode-hook): New var.
21115 (Info-find-file): New fun.
21116 (Info-find-node): Move part of code to Info-find-file.
21117 (Info-find-node-2): Add anchors to Info-history-list. Move point
21118 to the place with the reference name if name is defined.
21119 (Info-select-node): Add current node to Info-history-list.
21120 (Info-goto-node): Switch to *info* from *info-history* *info-toc*.
21121 (Info-search-whitespace-regexp): New custom.
21122 (Info-search-case-fold): New var.
21123 (Info-search): Add "case-sensitively" to the prompt.
21124 Use Info-search-whitespace-regexp. Set Info-search-case-fold.
21125 (Info-search-case-sensitively, Info-search-next): New fun.
21126 (Info-up): Move point to the menu item of the current node.
21127 (Info-history): New fun. Add *info-history* to
21128 same-window-buffer-names.
21129 (Info-toc): New fun. Add *info-toc* to same-window-buffer-names.
21130 (Info-insert-toc): New fun.
21131 (Info-build-toc): New fun.
21132 (Info-follow-reference): Add new arg `fork'. Doc fix.
21133 Replace [ \n\t]* by [ \n\t]+ in the *Note regexp. For references
21134 with the same name prefer the reference closest to point.
21135 (Info-next-reference): Replace * by + in the *Note regexp.
21136 Add regexp for http:// and ftp://. Skip the *Note prefix.
21137 (Info-prev-reference): Replace * by + in the *Note regexp.
21138 Add regexp for http:// and ftp://. Skip the *Note prefix.
21139 (Info-follow-nearest-node): Add new arg `fork'.
21140 (Info-try-follow-nearest-node): Add new arg `fork'.
21141 Call browse-url for http:// and ftp:// references.
21142 Set Info-reference-name for index entries.
21143 (Info-mode-menu): Add menu items for Info-search-case-sensitively,
21144 Info-search-next, Info-history, Info-toc, clone-buffer.
21145 (Info-menu-update): Replace * by + in the *Note regexp.
21146 (Info-mode): Add documentation for Info-history, Info-toc,
21147 Info-search-case-sensitively, Info-search-next, clone-buffer.
21148 (Info-fontify-menu-headers): Remove fun. Move code to
21149 Info-fontify-node.
21150 (Info-fontify-node): Add docstring. Add local vars
21151 fontify-visited-p and not-fontified-p. If not-fontified-p is t
21152 then fontify header line, titles, menu headers, http and ftp
21153 references, refill paragraphs. If not-fontified-p is t or
21154 fontify-visited-p is t then fontify cross references, menu items.
21155 Fontify menu headers. Fontify http and ftp references.
21156 Change regexp for cross references to require whitespace after *Note,
21157 add matching groups for file and node names. Remove hack for quote.
21158 Use display property for Info-hide-note-references=t. Use fifth
21159 or fourth match for help-echo. Display visited nodes in a
21160 different face. Unhide file names of external references.
21161 Unhide newlines. Display visited menu items in a different face.
21162
211632004-04-07 Stefan Monnier <monnier@iro.umontreal.ca>
21164
21165 * progmodes/compile.el: Require CL.
21166 (compilation-mode-font-lock-keywords): Re-install the "line as
21167 function" patch.
21168
21169 * help-fns.el (help-C-source-directory): New var.
21170 (help-subr-name, help-C-file-name, help-find-C-source): New funs.
21171 (describe-function-1, describe-variable): Use them.
21172
21173 * help-mode.el (help-function-def, help-variable-def): Handle hyperrefs
21174 to C source files specially.
21175
211762004-04-07 Jan Nieuwenhuizen <janneke@gnu.org>
21177
21178 * info.el (Info-hide-cookies-node): New function.
21179 (Info-select-node): Use it.
21180 (Info-display-images-node): Remove message with image file name.
21181
211822004-04-07 Daniel Pfeiffer <occitan@esperanto.org>
21183
21184 * progmodes/compile.el (compilation-warning-face)
21185 (compilation-info-face, compilation-skip-threshold)
21186 (compilation-skip-visited, compilation-context-lines):
21187 Declare :version when added to Emacs.
21188 (compilation-error-regexp-alist-alist): Extend caml and irix.
21189 (compilation-setup): Fix if font-locked w/o font-lock-defaults.
21190 (compilation-mode-font-lock-keywords): Temporarily undo line as
21191 function patch, which wasn't ready.
21192
211932004-04-07 Kenichi Handa <handa@m17n.org>
21194
21195 * international/latin1-disp.el (latin1-display-setup): Check each
21196 character is displayable or not instead of calling
21197 latin1-display-check-font.
21198
211992004-04-06 Kenichi Handa <handa@m17n.org>
21200
21201 * language/ethio-util.el (ethio-sera-being-called-by-w3):
21202 New variable.
21203 (ethio-sera-to-fidel-ethio): Check ethio-sera-being-called-by-w3
21204 instead of sera-being-called-by-w3.
21205 (ethio-fidel-to-sera-buffer): Likewise.
21206 (ethio-find-file): Bind ethio-sera-being-called-by-w3 to t
21207 instead of sera-being-called-by-w3.
21208 (ethio-write-file): Likewise.
21209
212102004-04-05 Vinicius Jose Latorre <viniciusjl@ig.com.br>
21211
21212 * printing.el: Doc fix.
21213
212142004-04-05 Nick Roberts <nick@nick.uklinux.net>
21215
21216 * progmodes/gdb-ui.el (gdb-use-inferior-io-buffer): New option.
21217 (gdb-ann3, gdb-send, gdb-starting, gdb-stopping)
21218 (gdb-setup-windows): Only use separate IO buffer if required.
21219
212202004-04-06 Kim F. Storm <storm@cua.dk>
21221
21222 * term.el (term-is-xemacs): Remove.
21223 (term-if-xemacs, term-ifnot-xemacs): Test (featurep 'xemacs).
21224 (term-window-width): New function.
21225 (term-mode, term-check-size): Use it.
21226 (term-mode): Disable overflow-newline-into-fringe in term buffer.
21227
212282004-04-05 Per Abrahamsen <abraham@dina.kvl.dk>
21229
21230 * cus-edit.el (custom-add-parent-links): Change unbound variable
21231 `symbol' to `name'.
21232
212332004-04-05 Jesper Harder <harder@ifa.au.dk>
21234 * info.el (info-apropos): New function.
21235 (Info-mode-menu): Add it.
21236 (Info-find-node, Info-find-node-2): Grok apropos virtual file.
21237
21238 * help-mode.el (help-make-xrefs): Recognize aliased variable with
21239 inherited docstring.
21240
21241 * play/gamegrid.el (gamegrid-add-score-insecure): Use sort-fields.
21242
212432004-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
21244
21245 * textmodes/fill.el (fill-comment-paragraph): Obey indent-tabs-mode.
21246
21247 * progmodes/compile.el (font-lock): Don't require any more.
21248 (compilation-error-properties, compilation-start, compilation-sentinel)
21249 (compilation-filter, next-error): Use with-current-buffer.
21250 (compilation-skip-to-next-location, compilation-skip-threshold)
21251 (compilation-skip-visited): Move to silence the byte-compiler.
21252 (compilation-setup): Simplify.
21253 (compilation-next-error): Use line-(beginning|end)-position.
21254 Make sure `pt' is non-nil before using compilation-loop.
21255 (compile-goto-error): Add optional event arg. Use it.
21256 (compile-mouse-goto-error): Make it an alias of compile-goto-error.
21257 (compilation-minor-mode-map, compilation-shell-minor-mode-map):
21258 Update the binding for mouse-2.
21259 (first-error): Set compilation-current-error to nil rather than bob.
21260 (compilation-parsing-end, compilation-parse-errors-function)
21261 (compilation-error-list, compilation-old-error-list):
21262 "New" compatibility variables.
21263 (compile-buffer-substring, compilation-compat-error-properties)
21264 (compilation-compat-parse-errors, compilation-forget-errors):
21265 New compatibility functions.
21266 (compilation-mode-font-lock-keywords): Use them.
21267
212682004-04-04 Luc Teirlinck <teirllm@auburn.edu>
21269
21270 * autorevert.el (auto-revert-handler): If point (or a window
21271 point) is at the end of the buffer, keep it there after
21272 reverting. This allows to tail a file.
21273 Mention this in the `Commentary'.
21274
21275 * format.el (format-write-file): Add optional argument CONFIRM
21276 and make it behave like the analogous argument to `write-file'.
21277
212782004-04-04 Vinicius Jose Latorre <viniciusjl@ig.com.br>
21279
21280 * progmodes/ebnf2ps.el: Doc fix.
21281 (ebnf-version): New version number (4.2).
21282 (ebnf-syntax): Customization and docstring fix.
21283 (ebnf-eliminate-empty-rules, ebnf-optimize, ebnf-otz-initialize):
21284 Put autoloaded funs before first use.
21285 (ebnf-style-database): Add dtd entry.
21286 (ebnf-syntax-alist): Add dtd initialization.
21287 (ebnf-token-sequence): New fun.
21288 (ebnf-comment-table): Add new comment action character.
21289 (ebnf-dtd-parser, ebnf-dtd-initialize): Autoload funs from ebnf-dtd.
21290
21291 * progmodes/ebnf-dtd.el: New file, implement a parser for DTD (Data
21292 Type Definition for XML).
21293
21294 * progmodes/ebnf-abn.el (ebnf-abn-concatenation):
21295 * progmodes/ebnf-bnf.el (ebnf-sequence):
21296 * progmodes/ebnf-ebx.el (ebnf-ebx-concatenation):
21297 * progmodes/ebnf-iso.el (ebnf-iso-single-definition):
21298 * progmodes/ebnf-yac.el (ebnf-yac-sequence):
21299 Code simplification: call ebnf-token-sequence.
21300
213012004-04-04 Eli Zaretskii <eliz@gnu.org>
21302
21303 * calendar/timeclock.el (timeclock-relative)
21304 (timeclock-get-project-function, timeclock-get-workday-function)
21305 (timeclock-query-out, timeclock-when-to-leave)
21306 (timeclock-when-to-leave-string, timeclock-log-data)
21307 (timeclock-generate-report, timeclock-in): Doc fixes.
21308
213092004-04-03 Stefan Monnier <monnier@iro.umontreal.ca>
21310
21311 * url/: New dir. Import the URL package from its repository.
21312
213132004-04-03 Andreas Schwab <schwab@suse.de>
21314
21315 * diff-mode.el (diff-mode): Fix missing quote.
21316
213172004-04-03 Juri Linkov <juri@jurta.org>
21318
21319 * descr-text.el (describe-property-list): Add `font-lock-face'.
21320
21321 * dired.el (dired-font-lock-keywords): Fix permission regexps.
21322
213232004-04-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
21324
21325 * x-dnd.el (x-dnd-handle-moz-url, x-dnd-insert-utf16-text):
21326 Use utf-16le on little endian machines and utf-16be otherwise.
21327
213282004-04-02 David Kastrup <dak@gnu.org>
21329
21330 * net/browse-url.el (browse-url-generic): Use call-process
21331 instead of start-process to allow browsers that fork and detach.
21332
213332004-04-01 Daniel Pfeiffer <occitan@esperanto.org>
21334
21335 * compile.el (compilation-current-error): New var.
21336 (compilation-setup, compile-mouse-goto-error)
21337 (compile-goto-error, next-error): Use it.
21338 (compilation-skip-to-next-location): Default to t, which gives
21339 contiguous skipping like old compile (where this was redundant).
21340 (compilation-next-error): Prevent previous-* commands from moving
21341 back to message at or just before point.
21342
213432004-04-01 Nick Roberts <nick@nick.uklinux.net>
21344
21345 * progmodes/gdb-ui.el (gdb-view-source-function, gdb-view-assembler)
21346 (gdb-source-info): Don't display source at startup, if required.
21347 (gdb-show-main): New option.
21348 (gdba): Update documentation.
21349 (gdb-source): Cover case of auto-display output.
21350
213512004-03-31 Luc Teirlinck <teirllm@auburn.edu>
21352
21353 * autorevert.el: Delete obsolete autoloads and defvars.
21354 (auto-revert-check-vc-info): New user option.
21355 (auto-revert-vc-cvs-file-version, auto-revert-vc-buffer-p)
21356 (auto-revert-handler-vc): Delete.
21357 (auto-revert-handler): Treat return value `fast' of
21358 buffer-stale-function specially. Check `auto-revert-check-vc-info'.
21359
21360 * buff-menu.el (Buffer-menu-mode): Make the buffer-stale-function
21361 return `fast'.
21362
21363 * files.el (buffer-stale-function): Doc change.
21364
213652004-03-31 Vinicius Jose Latorre <viniciusjl@ig.com.br>
21366
21367 * printing.el: New tip on Tips section.
21368 (pr-version): New version number (6.7.4).
21369 (pr-shell-file-name): Initialization fix.
21370
213712004-03-31 Juri Linkov <juri@jurta.org>
21372
21373 * dired.el: Add autoload for `dired-do-touch'.
21374 (dired-touch-program): New var.
21375 (dired-mode-map): Bind `dired-do-touch' to T and add menu-item.
21376 (dired-no-confirm): Add `touch' to docstring.
21377
21378 * dired-aux.el (dired-do-touch): New fun.
21379 (dired-do-chxxx): Add argument -t for touch operation.
21380
21381 * dired-x.el (dired-mark-sexp): Replace hard-coded month names by
21382 `dired-move-to-filename-regexp'.
21383
213842004-03-31 H,Ae(Bkan Granath <hakan.granath@kau.se> (tiny change)
21385
21386 * dired.el (dired-move-to-filename-regexp): Add `.' to HH:MM.
21387
213882004-03-30 Vinicius Jose Latorre <viniciusjl@ig.com.br>
21389
21390 * progmodes/ebnf2ps.el (ebnf-eps-finish-and-write): Write a buffer if
21391 and only if the buffer was modified.
21392
213932004-03-30 Kenichi Handa <handa@m17n.org>
21394
21395 * international/characters.el: Delete pairs for U+2308..U+230B.
21396
213972004-03-29 Nick Roberts <nick@nick.uklinux.net>
21398
21399 * progmodes/gud.el (gud-gdb-marker-filter): Include "\n" in regexp
21400 to detect the beginning of a level 2 or 3 annotation.
21401
214022004-03-29 Kenichi Handa <handa@m17n.org>
21403
21404 * international/ucs-tables.el (ucs-insert): Fix the error message.
21405
214062004-03-29 Kenichi Handa <handa@m17n.org>
21407
21408 * international/mule-util.el (char-displayable-p): Fix generation
21409 of XLFD file name.
21410
21411 * Makefile.in (setwins, setwins_almost): Change directory to $wd
21412 before finding directories by `find'.
21413
214142004-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
21415
21416 * subr.el (interactive-form): Delete. Now implemented in C.
21417
21418 * pcvs.el (cvs-parse-process): Workaround for Darwin.
21419
21420 * vc.el (vc-version-diff, vc-default-diff-tree): Change `rel' -> `rev'.
21421 (vc-diff-label): New fun.
21422 (vc-diff-internal): Use it.
21423
21424 * progmodes/gdb-ui.el (gdb-post-prompt): Fix test.
21425
214262004-03-28 Vinicius Jose Latorre <viniciusjl@ig.com.br>
21427
21428 * progmodes/ebnf-abn.el (ebnf-abn-parser): Handle initial comments.
21429
21430 * progmodes/ebnf-ebx.el: New file, implement a parser for EBNF used to
21431 specify XML (EBNFX).
21432
21433 * progmodes/ebnf2ps.el: Doc fix.
21434 (ebnf-version): New version number (4.1).
21435 (ebnf-syntax): Adjust customization.
21436 (ebnf-style-database): Add ebnfx entry.
21437 (ebnf-syntax-alist): Add ebnfx initialization.
21438 (ebnf-ebx-parser, ebnf-ebx-initialize): Autoload funs from ebnf-ebx.
21439
21440 * printing.el: Doc fix.
21441 (pr-version): New version number (6.7.3).
21442 (pr-menu-position): Adjust X and Y positions when mouse-pixel-position
21443 returns nil for mouse position. Reported by Drew Adams
21444 <drew.adams@oracle.com>.
21445 (pr-update-menus): Modify interactive declaration. Reported by Drew
21446 Adams <drew.adams@oracle.com>.
21447
214482004-03-28 Nick Roberts <nick@nick.uklinux.net>
21449
21450 * progmodes/gdb-ui.el (gdb-ann3, gdb-send-item)
21451 (gud-gdba-marker-filter): Log the process input and output, if
21452 required. From Stefan Monnier.
21453 (gdb-debug-log, gdb-enable-debug-log): New variables.
21454 (gdb-post-prompt): Don't do gdb-var-update on Mac OS X.
21455
214562004-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
21457
21458 * vc-hooks.el (vc-file-not-found-hook): Fix typo.
21459 From lorentey@elte.hu (L$,1 q(Brentey K,Aa(Broly).
21460
214612004-03-27 Luc Teirlinck <teirllm@auburn.edu>
21462
21463 * autorevert.el (auto-revert-handler): Handle auto-revert-mode.
21464 Call vc-find-file-hook here instead of in auto-revert-buffers.
21465 (auto-revert-buffers): Delete call to vc-find-file-hook.
21466 (auto-revert-verbose, global-auto-revert-non-file-buffers)
21467 (global-auto-revert-mode, auto-revert-set-timer)
21468 (auto-revert-handler, auto-revert-buffers): Doc fixes.
21469
214702004-03-27 Francis J. Wright <F.J.Wright@qmul.ac.uk>
21471
21472 * woman.el (woman-change-fonts): Rename local variable
21473 woman-font-alist to font-alist to avoid a compiler warning.
21474
214752004-03-27 Dave Love <fx@gnu.org>
21476
21477 * emacs-lisp/rx.el (rx): Doc fix.
21478 Fix copyright years.
21479
21480 * strokes.el (strokes-global-set-stroke-string): New function.
21481 (strokes-list-strokes): Cope with strings, not just commands.
21482 Set foreground color of image.
21483 (strokes-global-set-stroke): Doc fix.
21484
214852004-03-26 Luc Teirlinck <teirllm@auburn.edu>
21486
21487 * buff-menu.el (Buffer-menu-revert-function): Make it suitable for
21488 Auto Revert mode.
21489 (Buffer-menu-files-only): New variable.
21490 (Buffer-menu-toggle-files-only): New function.
21491 (Buffer-menu-mode-map): Bind it to `T'.
21492 (Buffer-menu-mode): Mention `T' in docstring.
21493 Set buffer-stale-function.
21494 (list-buffers-noselect): Mark buffer non-modified and set
21495 Buffer-menu-files-only.
21496
21497 * dired.el (buffer-stale-function): Remove no longer needed defvar.
21498
21499 * autorevert.el (auto-revert-handler): Print revert message
21500 before, rather than after, reverting.
21501 (buffer-stale-function): Move to files.el.
21502
21503 * files.el (buffer-stale-function): Move here from autorevert.el.
21504
215052004-03-26 Stefan Monnier <monnier@iro.umontreal.ca>
21506
21507 * vc.el (vc-maybe-resolve-conflicts): Don't prompt the user.
21508
21509 * calc/calc.el (calc-mode-map): Use mapc.
21510
21511 * apropos.el (apropos-mode): Don't autoload.
21512 (apropos-symbols-internal): New fun. Extracted from `apropos'.
21513 (apropos): Use it.
21514 (apropos-print): Add optional `text' argument.
21515 (apropos-describe-plist): Use help-buffer and hexlp-setup-xref.
21516 Don't assume point-min == 1.
21517
21518 * bs.el (bs-buffer-list): Use buffer-local-value.
21519 (bs--set-toggle-to-show): Use with-current-buffer.
21520
21521 * buff-menu.el (Buffer-menu-sort, Buffer-menu-make-sort-button):
21522 New funs.
21523 (list-buffers-noselect): Use them. Adjust :align-to to new style.
21524
21525 * cvs-status.el (cvs-tree-use-jisx0208): Use char-displayable-p.
21526
21527 * dabbrev.el (dabbrev-expand): Fix regexp construction.
21528 (dabbrev--find-expansion): Use pop.
21529 (dabbrev--search): Use match-string-no-properties.
21530
21531 * dired.el (dired-mode): Use run-mode-hooks.
21532 (dired-move-to-end-of-filename): Use match-string.
21533
21534 * ediff-init.el (ediff-hide-face): Check that facemenu-unlisted-faces
21535 is bound before using it.
21536 (ediff-verbose-p): Make it into a var since it's not constant.
21537
21538 * electric.el (Electric-pop-up-window): Avoid popping up a new frame.
21539
21540 * faces.el (read-face-font): Don't cons up unnecessarily.
21541 (header-line, tool-bar): Share common parts.
21542
21543 * files.el (file-relative-name): Use compare-strings.
21544
21545 * finder.el (finder-mode): Follow coding convention.
21546
21547 * subr.el (read-number): New function.
21548
21549 * ses.el (ses-read-number): Move to subr.el.
21550 (ses-set-header-row): Use read-number.
21551
215522004-03-26 Andre Spiegel <spiegel@gnu.org>
21553
21554 * vc-hooks.el (vc-arg-list): New function, which handles both
21555 compiled and uncompiled code.
21556 (vc-default-workfile-unchanged-p): Use it.
21557
21558 * vc.el (vc-print-log): Undo prev change, use new function
21559 vc-arg-list from vc-hooks.el.
21560
215612004-03-26 Masatake YAMATO <jet@gyve.org>
21562
21563 * simple.el (completion-setup-function): Emphasize the
21564 first uncommon characters in the completions; and de-emphasize
21565 the common prefix substrings.
21566 (completion-emphasis): New face.
21567 (completion-de-emphasis): New face.
21568
215692004-03-25 Juanma Barranquero <lektu@terra.es>
21570
21571 * progmodes/cperl-mode.el (cperl-indent-alist, cperl-where-am-i):
21572 Comment out (it's unused and unfinished code).
21573
215742004-03-25 Sam Steingold <sds@gnu.org>
21575
21576 * vc.el (vc-print-log): Fix a bug in the last patch:
21577 backend-function may be a byte-compiled object, not a lambda.
21578
215792004-03-25 Juri Linkov <juri@jurta.org>
21580
21581 * descr-text.el (describe-property-list): Add a button
21582 for `face' property that calls `describe-face'.
21583 Suggested by Luis Fernandes <elf@ee.ryerson.ca>
21584
21585 * international/mule.el (keyboard-coding-system):
21586 * kmacro.el (kmacro-call-macro): Fix docstring.
21587
21588 * dired.el: Fix comments.
21589
21590 * textmodes/fill.el (fill): Fix Info link.
21591
21592 * font-lock.el (fast-lock, lazy-lock):
21593 * jit-lock.el (jit-lock): Remove links to removed Support Modes
21594 Info node.
21595
21596 * eshell/eshell.el (eshell): Fix broken info-link.
21597
21598 * eshell/em-alias.el (eshell-alias, eshell-bad-command-tolerance):
21599 * eshell/em-banner.el (eshell-banner):
21600 * eshell/em-smart.el (eshell-smart):
21601 * eshell/esh-cmd.el (eshell-cmd):
21602 Comment out broken info-links to incomplete Info manual.
21603
21604 * info-xref.el: Fix commentary.
21605
216062004-03-25 Kevin Ryde <user42@zip.com.au>
21607
21608 * info-xref.el (info-xref-check-buffer): Report empty filename parts.
21609 Remove spurious node duplicate suppression, doesn't work, not wanted.
21610 (info-xref-output): Take format style args, add "sit-for 0" to let
21611 user see the results as they progress.
21612 (info-xref-check-all-custom): New function.
21613
216142004-03-25 Nick Roberts <nick@nick.uklinux.net>
21615
21616 * gdb-ui.el: Moved to progmodes.
21617
216182004-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
21619
21620 * diff-mode.el (diff-font-lock-keywords): Disable yank-handler.
21621
216222004-03-24 Glenn Morris <gmorris@ast.cam.ac.uk>
21623
21624 * calendar/appt.el (appt-check): Remove superfluous progn.
21625 When finished with diary buffer: if it was not being displayed
21626 before, kill it; otherwise restore its original state.
21627 Suggested by Matthew Mundell <matt@mundell.ukfsn.org>.
21628
21629 * calendar/calendar.el (calendar-set-mode-line): Use total
21630 available mode-line width, rather than frame-width.
21631
21632 * calendar/diary-lib.el (fancy-diary-display): Set mode-line
21633 after mode change so effect not lost.
21634
216352004-03-23 Dave Love <fx@gnu.org>
21636
21637 * dired.el (dired) <defgroup>: Add link to manual.
21638 (dired-font-lock-keywords): Add highlighting on unusual permissions.
21639 (dired-revert): Use dolist.
21640 (dired-mode-map): Add U binding.
21641 (dired-mode): Add font-lock-beginning-of-syntax-function.
21642 (dired-garbage-files-regexp): Make it a defcustom.
21643
216442004-03-23 Stefan Monnier <monnier@iro.umontreal.ca>
21645
21646 * vc-arch.el (vc-arch-diff): Handle the special case where `newvers'
21647 is equivalent to nil.
21648 (vc-arch-diff3-rej-p): Be a bit more flexible in what we accept.
21649 (vc-arch-mode-line-string): Accept `added' state.
21650 (vc-arch-state): Use inode-sigs if available.
21651 (vc-arch-add-tagline): Rename from vc-arch-add-tag.
21652 Copy&delete existing id file if any. Fallback if uuidgen is absent.
21653 (vc-arch-tagline-re): New var.
21654 (vc-arch-file-source-p, vc-arch-file-id, vc-arch-tagging-method):
21655 New functions.
21656 (vc-arch-find-file-not-found-hook, vc-arch-register): New backend ops.
21657 (vc-arch-registered): Try our best guess using vc-arch-file-source-p.
21658
21659 * vc-hooks.el (vc-default-find-file-not-found-hook): New fun.
21660 (vc-file-not-found-hook): Use it.
21661
21662 * diff-mode.el (diff-default-read-only): Change default.
21663 (diff-mode-hook): Make it a defcustom. Add some options.
21664 (diff-mode-map): Bind diff-refine-hook.
21665 (diff-yank-handler): New var.
21666 (diff-yank-function): New fun.
21667 (diff-font-lock-keywords): Use them.
21668 (diff-end-of-file): Handle case where file-header looks like diff text.
21669 (diff-hunk-kill): Adjust to "new" hunk-next behavior.
21670 (diff-file-kill): Delete a subsequent empty line, if applicable.
21671 (diff-hunk-file-names): New fun, extracted from diff-tell-file-name.
21672 (diff-find-file-name): Use it.
21673 (diff-tell-file-name): New command.
21674 (diff-mode): Be careful with view-mode.
21675 (diff-delete-if-empty, diff-delete-empty-files, diff-make-unified):
21676 New functions, for use in diff-mode-hook.
21677 (diff-find-source-location): Catch "regex too large" errors.
21678 (diff-apply-hunk, diff-test-hunk): Go to old or new file.
21679 (diff-refine-hunk): New command.
21680
21681 * smerge-mode.el (smerge-mode-menu): Fix activate pred for resolve.
21682 (smerge-context-menu-map): Remove unused var.
21683 (smerge-keep-all): Preserve markers.
21684 (smerge-keep-n): New fun.
21685 (smerge-keep-base, smerge-keep-other, smerge-keep-mine)
21686 (smerge-keep-current, smerge-ediff): Use it.
21687 (smerge-kill-current): Use it. Make it work on some 3-part conflicts.
21688 (smerge-popup-context-menu): Also use context-menu on 3-part conflicts.
21689 (smerge-resolve): Resolve trivial 3-part conflicts.
21690
216912004-03-23 Juri Linkov <juri@jurta.org>
21692
21693 * man.el (Man-width): New var.
21694 (Man-getpage-in-background): Use it.
21695 (Man-support-local-filenames): New var and fun.
21696 (Man-build-man-command): Don't add a second %s.
21697 (Man-fontify-manpage): Clean up message.
21698 (Man-mode): Set outline-regexp, outline-level,
21699 imenu-generic-expression.
21700
21701 * woman.el (woman-fill-frame): Doc fix.
21702 (woman-decode-region): Use window-width instead of frame-width.
21703
21704 * abbrevlist.el (list-one-abbrev-table):
21705 * descr-text.el (describe-char):
21706 * international/mule-diag.el (describe-current-coding-system):
21707 * international/quail.el (quail-insert-decode-map):
21708 Use window-width instead of frame-width.
21709
21710 * jka-compr.el (jka-compr-compression-info-list): Add tbz and dz.
21711 (jka-compr-mode-alist-additions): Add tbz.
21712 (jka-compr-write-region, jka-compr-insert-file-contents):
21713 Add message for undefined compress-program.
21714 (jka-compr-write-region): Remove redundant var bindings.
21715
21716 * dired-x.el (dired-guess-shell-alist-default): Add choices for
21717 extracting files into subdirectory. Add tbz and dz. Fix regexps.
21718 Add extensions .[0-9] for man and nroff, and .pod for perldoc.
21719 (dired-man): Use dired-guess-shell-command.
21720 (dired-guess-shell-case-fold-search): Change defvar to defcustom.
21721 Change default nil to t.
21722
21723 * dired-aux.el (dired-compress-file-suffixes): Add dz and tbz.
21724 (dired-compare-directories): Add default value for empty input.
21725
21726 * help-at-pt.el: Move suggestions for key bindings to Commentary.
21727
21728 * time.el (display-time-string-forms): Fix help-echo date format.
21729
217302004-03-22 Luc Teirlinck <teirllm@auburn.edu>
21731
21732 * autorevert.el (global-auto-revert-non-file-buffers): Expand
21733 docstring.
21734 (buffer-stale-function): New variable.
21735 (auto-revert-list-diff, auto-revert-dired-file-list)
21736 (auto-revert-dired-changed-p, auto-revert-buffer-p): Delete.
21737 (auto-revert-handler): Take over some functionality of deleted
21738 functions.
21739 (auto-revert-buffers): Delete call to auto-revert-buffer-p.
21740
21741 * dired.el (dired-directory-changed-p): New fun, extracted from
21742 dired-internal-noselect.
21743 (dired-buffer-stale-p): New fun.
21744 (dired-internal-noselect): Use dired-directory-changed-p.
21745 Eliminate revert messages.
21746 (dired-mode): Set buffer-stale-function to dired-buffer-stale-p.
21747
217482004-03-23 Kenichi Handa <handa@m17n.org>
21749
21750 * international/characters.el: Setup syntaxes for more parentheses
21751 Unicode characters.
21752
21753 * international/mule-cmds.el (select-safe-coding-system):
21754 Merge coding-system and auto-cs before comparing them.
21755
217562004-03-22 Stefan Monnier <monnier@iro.umontreal.ca>
21757
21758 * emacs-lisp/pp.el (pp-eval-expression): Simplify.
21759
21760 * emacs-lisp/lisp-mode.el (lisp-mode-variables): Don't set
21761 normal-auto-fill-function and comment-indent-function.
21762 The default values now work just as well.
21763 Don't set font-lock-beginning-of-syntax-function since we already set
21764 syntax-begin-function.
21765 (lisp-outline-level): Put ;;;###autoload at same level as (.
21766 (prin1-char): Quote special chars.
21767
21768 * emacs-lisp/lisp-mnt.el (lm-keywords-finder-p): Use defvar rather
21769 than with-no-warnings.
21770
21771 * emacs-lisp/edebug.el (edebug-display): Bring up a debug trace
21772 if the source location can't be found.
21773 (edebug-compute-previous-result): Use prin1-char.
21774
21775 * emacs-lisp/checkdoc.el (checkdoc-error): Don't assume point-min == 1.
21776 (debug-ignored-errors): Add an entry.
21777
21778 * emacs-lisp/bytecomp.el (byte-recompile-directory): Ignore hidden dir.
21779 (byte-compile-file): Output warning when deleting a file.
21780
21781 * emacs-lisp/byte-run.el (defsubst): Add edebug spec and use backquote.
21782 (dont-compile, eval-when-compile, eval-and-compile): Add edebug spec.
21783
21784 * emacs-lisp/byte-opt.el (byte-compile-log-lap)
21785 (byte-compile-inline-expand): Use backquote.
21786 (byte-optimize-pure-func): Rename from byte-optimize-concat.
21787 (symbol-name, regexp-opt, regexp-quote): Mark as pure.
21788
21789 * emacs-lisp/backquote.el (backquote-list*-macro): Use nreverse.
21790
21791 * emacs-lisp/advice.el (ad-subr-arglist): Simplify.
21792
217932004-03-22 Juri Linkov <juri@jurta.org>
21794
21795 * finder.el (finder-known-keywords): Fix data, tex, unix.
21796
21797 * play/landmark.el: Fix keywords.
21798
21799 * language/ethio-util.el (ethio-find-file): Doc fix.
21800
21801 * emacs-lisp/warnings.el: Doc fix.
21802
21803 * textmodes/ispell.el (ispell-help): Doc fix.
21804
218052004-03-21 Luc Teirlinck <teirllm@auburn.edu>
21806
21807 * format.el (format-insert-file): Always return a list of two
21808 elements, like insert-file-contents does.
21809
218102004-03-21 Andre Spiegel <spiegel@gnu.org>
21811
21812 * vc.el: Add new optional BUFFER argument to vc-BACKEND-print-log
21813 and vc-BACKEND-diff.
21814 (vc-print-log): If the print-log implementation supports it, use
21815 the new BUFFER argument to direct output to *vc-change-log*, not *vc*.
21816 (vc-version-diff, vc-diff-internal): Doc fixes.
21817
21818 * vc-hooks.el (vc-default-workfile-unchanged-p): If the
21819 implementation supports it, let diff output go to *vc*,
21820 not *vc-diff*, since this is an internal call.
21821
21822 * vc-cvs.el (vc-cvs-print-log, vc-cvs-diff): Add optional BUFFER arg.
21823
21824 * vc-rcs.el (vc-rcs-print-log, vc-rcs-diff): Likewise.
21825
21826 * vc-sccs.el (vc-sccs-print-log, vc-sccs-diff): Likewise.
21827
218282004-03-21 Dave Love <fx@gnu.org>
21829
21830 * progmodes/cfengine.el (cfengine-mode):
21831 Set parse-sexp-ignore-comments.
21832
21833 * emacs-lisp/rx.el (rx): Work at compile time, not run time.
21834
218352004-03-21 Juanma Barranquero <lektu@terra.es>
21836
21837 * allout.el (allout-mode): Fix docstring.
21838
218392004-03-20 Luc Teirlinck <teirllm@auburn.edu>
21840
21841 * files.el (insert-directory): Fix bug if SWITCHES is a list.
21842
21843 * autorevert.el (auto-revert-interval): Make new value take
21844 effect immediately when set through Custom.
21845 (auto-revert-set-timer): Add interactive declaration.
21846
218472004-03-19 David Ponce <david@dponce.com>
21848
21849 * ruler-mode.el (ruler-mode-header-line-format-old):
21850 Don't `make-variable-buffer-local'.
21851 (ruler-mode-ruler-function): Default to `ruler-mode-ruler'.
21852 (ruler-mode-header-line-format): Simply funcall the above.
21853 (ruler-mode): Use `make-local-variable' and `kill-local-variable'
21854 to save/restore a previous header line format.
21855 (ruler-mode-space): Don't depend on a numeric WIDTH value.
21856 (ruler-mode-ruler): Use symbolic display elements for scrollbar,
21857 fringes and margins width.
21858 (ruler-mode-ruler-function): Default to ruler-mode-ruler.
21859
218602004-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
21861
21862 * log-edit.el (log-edit-font-lock-keywords): Typo.
21863
21864 * textmodes/tex-mode.el (tex-shell): Set error parsing function here.
21865 (tex-send-tex-command): Rather than here.
21866 (tex-compilation-parse-errors): Simplify.
21867
21868 * info.el (Info-default-dirs): Don't ignore last part of I-d-d-l.
21869
21870 * time.el (display-time-string-forms): Add help-echo with date on time.
21871
21872 * composite.el (compose-region): Use restore-buffer-modified-p.
21873
21874 * disp-table.el (standard-display-8bit): Simplify.
21875
21876 * server.el (server-process-filter): Delete temp frame.
21877
21878 * add-log.el (add-change-log-entry): Simplify.
21879
218802004-03-19 Kim F. Storm <storm@cua.dk>
21881
21882 * hexl.el (hexl-mode-ruler): Adapt to new :align-to semantics.
21883 (hexl-follow-line): Don't require 'fringe.
21884
21885 * progmodes/compile.el (compilation-start): Always set
21886 compilation-last-buffer and return it.
21887
218882004-03-17 Luc Teirlinck <teirllm@auburn.edu>
21889
21890 * simple.el (clone-buffer): Doc fix.
21891
218922004-03-18 Juanma Barranquero <lektu@terra.es>
21893
21894 * emacs-lisp/byte-run.el (make-obsolete-variable): Fix docstring.
21895
218962004-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
21897
21898 * log-edit.el (log-edit-font-lock-keywords): New var.
21899 (log-edit-mode): Use it.
21900
219012004-03-17 Nick Roberts <nick@nick.uklinux.net>
21902
21903 * gdb-ui.el (gdb-var-list-children-handler): Handle C++ classes
21904 properly for watching in speedbar.
21905
219062004-03-17 Masatake YAMATO <jet@gyve.org>
21907
21908 * smerge-mode.el (smerge-popup-context-menu):
21909 Put `unwind-protect' around `overlay-put' and `popup-menu'.
21910
219112004-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
21912
21913 * vc-arch.el (vc-arch-workfile-unchanged-p): Define to avoid dup-diff.
21914 (vc-arch-workfile-version, vc-arch-mode-line-rewrite):
21915 Take sealed revisions into account.
21916 (vc-arch-checkin): Extract a summary line from the message.
21917
219182004-03-16 Masatake YAMATO <jet@gyve.org>
21919
21920 * register.el (register): Provide `register' feature.
21921
219222004-03-15 Masatake YAMATO <jet@gyve.org>
21923
21924 Added context menu support in smerge mode.
21925 Most of the part is written by Stefan Monnier.
21926
21927 * smerge-mode.el (smerge-context-menu-map, smerge-context-menu):
21928 New keymap and menu.
21929 (smerge-text-properties): New function.
21930 (smerge-remove-props): New function.
21931 (smerge-popup-context-menu): New function.
21932 (smerge-resolve): Call `smerge-remove-props'.
21933 (smerge-keep-base, smerge-keep-other, smerge-keep-mine): Ditto.
21934 (smerge-keep-current): Ditto.
21935 (smerge-kill-current): New function.
21936 (smerge-match-conflict): Put text properties.
21937 Detect the file as `same-diff conflict' if the filename is "ANCESTOR".
21938
219392004-03-15 David Ponce <david@dponce.com>
21940
21941 * ruler-mode.el (ruler-mode-left-fringe-cols)
21942 (ruler-mode-right-fringe-cols, ruler-mode-left-scroll-bar-cols)
21943 (ruler-mode-right-scroll-bar-cols): Remove.
21944 (ruler-mode-window-col, ruler-mode-mouse-set-left-margin)
21945 (ruler-mode-mouse-set-right-margin, ruler-mode-ruler):
21946 Use fringe-columns and scroll-bar-columns.
21947
219482004-03-15 Masatake YAMATO <jet@gyve.org>
21949
21950 * hl-line.el (hl-line-range-function): New variable.
21951 (hl-line-move): New function.
21952 (global-hl-line-highlight): Use `hl-line-move'.
21953 (hl-line-highlight): Ditto.
21954
21955 * scroll-bar.el (scroll-bar-columns):
21956 * fringe.el (fringe-columns): New function derived from ruler-mode.el.
21957
21958 * ruler-mode.el (top-level): Require scroll-bar and fringe.
21959 (ruler-mode-left-fringe-cols)
21960 (ruler-mode-right-fringe-cols): Use `fringe-columns'.
21961 (ruler-mode-right-scroll-bar-cols)
21962 (ruler-mode-left-scroll-bar-cols): Use `scroll-bar-columns'.
21963 (ruler-mode-ruler-function): New variable.
21964 (ruler-mode-header-line-format): Call `ruler-mode-ruler-function'
21965 if the value for `ruler-mode-ruler-function' is given.
21966
21967 * hexl.el (hexl-mode-hook): Make the hook customizable.
21968 (hexl-address-area, hexl-ascii-area): New customize variables.
21969 (hexlify-buffer): Put font-lock-faces on the address area and
21970 the ascii area.
21971 (hexl-activate-ruler): New function.
21972 (hexl-follow-line): New function.
21973 (hexl-highlight-line-range): New function.
21974 (hexl-mode-ruler): New function.
21975
219762004-03-14 Stefan Monnier <monnier@iro.umontreal.ca>
21977
21978 * vc-hooks.el (vc-handled-backends): Add Arch. Move MCVS down.
21979 (vc-default-find-file-hook): New fun.
21980 (vc-find-file-hook): Call new find-file-hook operation.
21981
21982 * vc-arch.el: New file.
21983
219842004-03-12 Jesper Harder <harder@ifa.au.dk>
21985
21986 * info-look.el (info-lookup): Reuse an existing Info window.
21987
219882004-03-12 Francis J. Wright <F.J.Wright@qmul.ac.uk>
21989
21990 * woman.el (woman-preserve-ascii): Default value changed to t and
21991 doc string revised.
21992
219932004-03-12 Richard M. Stallman <rms@gnu.org>
21994
21995 * pcvs.el (cvs-mode-add-change-log-entry-other-window):
21996 Fix minor bug.
21997
21998 * replace.el (occur-engine): Change message for count of matches.
21999
22000 * emacs-lisp/bytecomp.el (byte-compile-get-constant):
22001 For strings, do compare text properties.
22002
220032004-03-11 Daniel Pfeiffer <occitan@esperanto.org>
22004
22005 * progmodes/compile.el (compile-auto-highlight)
22006 (compilation-error-list, compilation-old-error-list)
22007 (compilation-parse-errors-function, compilation-parsing-end)
22008 (compilation-error-message, compilation-directory-stack)
22009 (compilation-enter-directory-regexp-alist)
22010 (compilation-leave-directory-regexp-alist)
22011 (compilation-file-regexp-alist, compilation-nomessage-regexp-alist)
22012 (compilation-current-file, compilation-regexps): Remove vars.
22013
22014 (compile-error-at-point, compilation-error-filedata)
22015 (compilation-error-filedata-file-name, compile-reinitialize-errors)
22016 (compilation-next-error-locus, compilation-forget-errors)
22017 (count-regexp-groupings, compilation-parse-errors)
22018 (compile-collect-regexps, compile-buffer-substring): Remove funs.
22019
22020 (compile-internal): Make obsolete.
22021
22022 (compilation-first-column, compilation-error)
22023 (compilation-directory-matcher, compilation-page-delimiter)
22024 (compilation-mode-font-lock-keywords, compilation-debug)
22025 (compilation-error-face, compilation-warning-face)
22026 (compilation-info-face, compilation-line-face)
22027 (compilation-column-face, compilation-enter-directory-face)
22028 (compilation-leave-directory-face, compilation-skip-threshold)
22029 (compilation-skip-visited, compilation-context-lines): New vars.
22030
22031 (compilation-warning-face, compilation-info-face)
22032 (compilation-message-face): New faces.
22033
22034 (compilation-error-regexp-alist-alist): New constant.
22035
22036 (compilation-face, compilation-directory-properties)
22037 (compilation-assq, compilation-error-properties, compilation-start)
22038 (define-compilation-mode, compilation-loop)
22039 (compilation-set-window): New functions.
22040
22041 (compile): Additional argument for interactive compiles like TeX.
22042
22043 * progmodes/grep.el (kill-grep): Move here from compile.el
22044 (grep-error, grep-hit-face, grep-error-face)
22045 (grep-mode-font-lock-keywords): New variables.
22046 (grep-regexp-alist): Simplify regexp and add `binary' case.
22047 (grep-mode): New mode.
22048 (grep-process-setup): Simplify.
22049
220502004-03-11 Jason Rumney <jasonr@gnu.org>
22051
22052 * net/ldap.el (ldap-search-internal): Handle file URLs with drive
22053 letters on DOS/Windows.
22054
220552004-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
22056
22057 * server.el (server-name): New var.
22058 (server-socket-dir): New var to replace server-socket-name.
22059 (server-start): Use them.
22060
220612004-03-11 Simon Josefsson <jas@extundo.com>
22062
22063 * mail/smtpmail.el (smtpmail-read-response): Abort if process has
22064 died to avoid infloop. Reported by Jonathan Glauner
22065 <jglauner@sbum.org>.
22066
220672004-03-10 Stefan Monnier <monnier@iro.umontreal.ca>
22068
22069 * smerge-mode.el (smerge-check-cache, smerge-check): New var and fun.
22070 (smerge-mode-menu): Use it to deactivate menu entries.
22071 (smerge-keep-current): New fun.
22072 (smerge-keep-current): Use it.
22073
220742004-03-10 John Paul Wallington <jpw@gnu.org>
22075
22076 * foldout.el (foldout-fold-list, foldout-modeline-string):
22077 Declare them as variables, not constants.
22078
220792004-03-10 Vinicius Jose Latorre <viniciusjl@ig.com.br>
22080
22081 * ps-print.el: Modification to print *Messages* buffer.
22082 (ps-print-version): New version 6.6.4.
22083 (ps-message-log-max): New fun.
22084 (ps-spool-without-faces, ps-spool-with-faces)
22085 (ps-count-lines-preprint): Code fix.
22086
22087 * printing.el: New tips in Tips section.
22088
220892004-03-09 Vinicius Jose Latorre <viniciusjl@ig.com.br>
22090
22091 * delim-col.el: Doc fix.
22092
22093 * printing.el: Doc fix. New doc section (Tips).
22094
220952004-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
22096
22097 * type-break.el (type-break-emacs-variant): Remove.
22098 (type-break-run-at-time, type-break-cancel-function-timers):
22099 Use fboundp rather than version name and number.
22100
221012004-03-09 Masatake YAMATO <jet@gyve.org>
22102
22103 * hexl.el (hexl-mode): Use `make-local-variable' instead of
22104 `make-variable-buffer-local'.
22105
221062004-03-08 Michael Albinus <Michael.Albinus@alcatel.de>
22107
22108 * find-dired.el (find-dired): Call `shell-command' instead of
22109 `start-process-shell-command'. By this, Tramp takes over
22110 handling of remote directories.
22111
221122004-03-07 Stefan Monnier <monnier@iro.umontreal.ca>
22113
22114 * newcomment.el (comment-use-global-state): New var.
22115 (comment-search-forward): Use it.
22116
22117 * emacs-lisp/lisp-mode.el (lisp-mode-variables): Set it.
22118
22119 * cus-edit.el (fill) <defgroup>: Move to fill.el.
22120
22121 * textmodes/fill.el (fill) <defgroup>: Move from cus-edit.el.
22122 (enable-kinsoku): Make it a defcustom.
22123 (fill-comment-paragraph): Don't rely on fill-prefix to bound the
22124 paragraph to same-comment-start-marker.
22125
221262004-03-07 Dave Love <fx@gnu.org>
22127
22128 * net/browse-url.el (rfc2368-parse-mailto-url): Autoload.
22129 (browse-url-mail): Use it.
22130
22131 * mail/rfc2368.el (rfc2368-unhexify-char): Delete.
22132 (rfc2368-unhexify-string): Use replace-regexp-in-string.
22133
221342004-03-07 Francis J. Wright <F.J.Wright@qmul.ac.uk>
22135
22136 * woman.el (woman-man.conf-path): Doc fix.
22137 (woman-parse-man.conf): Also parse OPTIONAL_MANPATH.
22138
221392004-03-07 Eli Zaretskii <eliz@gnu.org>
22140
22141 * sort.el (sort-columns): Remove ms-dos from the list of systems
22142 where the external `sort' command is not used.
22143
221442004-03-07 Kim F. Storm <storm@cua.dk>
22145
22146 * gdb-ui.el (gdb-overlay-arrow-position): Add defvar.
22147 (gdb-reset): Reset gdb-overlay-arrow-position marker and remove it
22148 from overlay-arrow-variable-list.
22149 (gdb-assembler-mode): Use add-to-list for gdb-overlay-arrow-position.
22150
221512004-03-06 Nick Roberts <nick@nick.uklinux.net>
22152
22153 * gdb-ui.el (gdb-assembler-mode, gdb-assembler-custom): Set up
22154 overlay arrow string properly for the assembler buffer.
22155
221562004-03-05 Stefan Monnier <monnier@iro.umontreal.ca>
22157
22158 * mail/sendmail.el (mail-mode): Fix last change.
22159
221602004-03-05 Nick Roberts <nick@nick.uklinux.net>
22161
22162 * gdb-ui.el (gdb-assembler-mode): Create a second overlay arrow
22163 for the assembler buffer.
22164 (gdb-assembler-custom): Position the overlay arrow.
22165 (gdb-put-arrow, gdb-remove-arrow): Delete functions.
22166
221672004-03-04 Stefan Monnier <monnier@iro.umontreal.ca>
22168
22169 * progmodes/sh-script.el (sh-font-lock-paren): Add @ in case patterns.
22170
22171 * pcvs-info.el (cvs-fileinfo->backup-file): Use a more constraining
22172 regexp to distinguish .#ChangeLog.9.1.400 and .#ChangeLog.1.400.
22173
22174 * mail/sendmail.el (mail-mode): Set comment-start-skip.
22175
22176 * newcomment.el (uncomment-region): Allow non-terminated comment.
22177 (comment-normalize-vars): Check the user-specified comstart marker.
22178
221792004-03-04 Jesper Harder <harder@ifa.au.dk>
22180
22181 * sort.el (sort-columns): Don't use external 'sort' on ms-windows.
22182 Otherwise, do use it if the region only contains font-lock text
22183 properties.
22184
221852004-03-04 Masatake YAMATO <jet@gyve.org>
22186
22187 * hexl.el (hexl-mode): Set `hexl-print-current-point-info'
22188 as the callback function for eldoc.
22189 (hexl-print-current-point-info): New function.
22190 (hexl-current-address): Print the address in both decimal
22191 and hexadecimal format.
22192
221932004-03-04 Richard M. Stallman <rms@gnu.org>
22194
22195 * mail/rmail.el (rmail-convert-to-babyl-format):
22196 Specify t for UNIBYTE when calling mail-unquote-printable-region.
22197
22198 * mail/mail-utils.el (mail-unquote-printable-region):
22199 New arg UNIBYTE.
22200
22201 * startup.el (command-switch-alist): Doc fix.
22202
22203 * simple.el (undo): Temporarily set this-command to `undo-start',
22204 then set it to `undo' once undo-start returns without error.
22205
22206 * simple.el (minibuffer-history-sexp-flag): Doc fix.
22207
22208 * simple.el (kill-line): Don't disregard trailing whitespace
22209 in eol condition, if show-trailing-whitespace is set.
22210
22211 * mouse-sel.el (mouse-sel-has-been-enabled): New var.
22212 (mouse-sel-mode): When enabling, set mouse-sel-has-been-enabled.
22213 When disabling, restore old values only if mouse-sel-has-been-enabled.
22214
22215 * isearch.el (isearch-*-char): New arg WANT-BACKSLASH.
22216 (isearch-{-char): New function.
22217 (isearch-mode-map): Bind { to isearch-{-char.
22218
22219 * font-lock.el (lisp-font-lock-keywords-2):
22220 Turn off the CL with-... and do-... general patterns.
22221 Instead, recognize several specific with... and do... constructs.
22222
22223 * files.el (switch-to-buffer-other-window):
22224 Bind same-window-buffer-names and same-window-regexps to nil.
22225 (switch-to-buffer-other-frame): Likewise.
22226
222272004-03-03 Stefan Monnier <monnier@iro.umontreal.ca>
22228
22229 * textmodes/fill.el (fill-comment-paragraph): Be more careful when
22230 recognizing leading comment on code line.
22231
222322004-03-02 Stefan Monnier <monnier@iro.umontreal.ca>
22233
22234 * Makefile.in (setwins, setwins_almost): Skip .arch-ids and other
22235 hidden files/directories.
22236
222372004-03-02 Stefan Monnier <monnier@iro.umontreal.ca>
22238
22239 * textmodes/fill.el (fill-paragraph): Don't check comment-start-skip,
22240 only comment-start (in case the mode hasn't set it).
22241
22242 * Makefile.in (AUTOGENEL): New var.
22243 (bootstrap-prepare): Rename from bootstrap-clean.
22244 Don't remove elc files.
22245 (maintainer-clean): New target.
22246
22247 * xml.el (xml-get-attribute-or-nil): Simplify.
22248
222492004-03-02 Juri Linkov <juri@jurta.org>
22250
22251 * net/browse-url.el (browse-url-netscape, browse-url-mozilla)
22252 (browse-url-galeon, browse-url-epiphany): Encode dollar signs in
22253 URL to prevent their substitution with the environment variable
22254 values by browsers.
22255
222562004-03-03 Vinicius Jose Latorre <viniciusjl@ig.com.br>
22257
22258 * ps-print.el: Doc fix.
22259 (ps-print-version): New version number (6.6.3).
22260 (ps-right-header, ps-right-footer, ps-left-header, ps-left-footer):
22261 Docstring fix.
22262 (ps-kill-emacs-check): Check if ps-print temporary buffer is killed
22263 before printing.
22264 (ps-time-stamp-yyyy-mm-dd): New fun.
22265 (ps-time-stamp-iso8601): Alias for ps-time-stamp-yyyy-mm-dd.
22266
222672004-03-02 Kim F. Storm <storm@cua.dk>
22268
22269 * gdb-ui.el (gdb-mouse-toggle-breakpoint): Remove debug message.
22270
222712004-03-01 Juanma Barranquero <lektu@terra.es>
22272
22273 * allout.el (allout-rebullet-heading): Fix typo in docstring.
22274
22275 * desktop.el (desktop-file-version)
22276 (desktop-after-read-hook): Fix typos.
22277 (desktop-clear-preserve-buffers): Remove redundant info in
22278 docstring already shown by the obsolescence message.
22279 (desktop-truncate, desktop-internal-v2s)
22280 (desktop-value-to-string): Change argument name to match docstring.
22281
22282 * emulation/tpu-edt.el (tpu-set-mark): Fix typo in docstring.
22283
22284 * eshell/em-smart.el (eshell-smart-maybe-jump-to-end): Fix typo in
22285 docstring.
22286
222872004-02-29 Vinicius Jose Latorre <viniciusjl@ig.com.br>
22288
22289 * printing.el: Replace "As Is..." in PostScript file print/preview by
22290 "No Preprocessing...". Suggested by Colin Marquardt
22291 <_marquardt_@zmd.de>.
22292 (pr-insert-section-4): Adjust buffer interface.
22293
222942004-02-29 Kai Grossjohann <kai.grossjohann@gmx.net>
22295
22296 Version 2.0.39 of Tramp released.
22297
22298 * net/tramp.el (tramp-handle-file-local-copy)
22299 (tramp-handle-write-region, tramp-open-connection-rsh):
22300 Variable name typo. Small change. From Patrick Tullmann
22301 <tullmann@flux.utah.edu>.
22302 (tramp-process-connection-type): New variable.
22303 (tramp-maybe-open-connection): Use it.
22304 (tramp-do-copy-or-rename-via-buffer): Handle KEEP-DATE arg if possible.
22305 (tramp-touch): Set last-modified time of a remote file.
22306 (tramp-handle-write-region): Say which function is used when encoding.
22307
223082004-02-29 Michael Albinus <Michael.Albinus@alcatel.de>
22309
22310 * net/tramp-smb.el (tramp-smb-handle-file-writable-p): Handle the
22311 case of non-existing filename, too. Reported by Christoph Bauer
22312 <c_bauer@informatik.uni-kl.de>.
22313 (tramp-smb-get-file-entries): The directory in question should
22314 have permissions "drwxrwxrwx". Just virtual, because we don't
22315 know the real permissions. Don't we know?
22316 (tramp-smb-prompt): Add virtual prompt from listing shares, too.
22317 (tramp-smb-errors): Add "NT_STATUS_ACCOUNT_LOCKED_OUT".
22318 (tramp-smb-wait-for-output): Optimize algorithm getting pending
22319 output. If it was received chunkwise, there have been problems.
22320 Remove the "prompt not found" error message; it is obvious.
22321 Simplify algorithm.
22322 (tramp-smb-process-running): Remove. Since we acknowledge the
22323 virtual prompt for shares, there's no need for distinction of
22324 reading shares (process ends afterwards) and interactive mode of
22325 smblient.
22326 (tramp-smb-open-connection): Setting process sentinel removed.
22327 (tramp-smb-errors): Add "NT_STATUS_WRONG_PASSWORD" and
22328 "NT_STATUS_NETWORK_ACCESS_DENIED".
22329 (tramp-smb-maybe-open-connection): Set `process-connection-type'
22330 to 'pty. Suggested by Piet van Oostrum <piet@cs.uu.nl>.
22331 (top-level): Setting default value in `tramp-default-method-alist'
22332 corrected. Order of USER and HOST have been wrong.
22333 Nobody complained for months ...
22334 (tramp-smb-maybe-open-connection): Use `tramp-process-connection-type'.
22335 (tramp-smb-open-connection): Clear password cache if login has failed.
22336
22337 * net/tramp.el (tramp-completion-mode) Don't check for 'xemacs' but
22338 `tramp-unified-filenames'.
22339 (tramp-completion-mode): Make test for XEmacs explicitly.
22340 `event-to-character' can exists in Emacs packages too.
22341 Reported by Matt Swift <swift@alum.mit.edu>.
22342 (tramp-buffer-name): Buffer name must contain the user if exists.
22343 Reported by Adrian Phillips <a.phillips@met.no>.
22344 (tramp-do-copy-or-rename-file): Handle out-of-band methods.
22345 Call `tramp-do-copy-or-rename-file-out-of-band' this case.
22346 (tramp-do-copy-or-rename-file-out-of-band): Rename from
22347 `tramp-do-copy-or-rename-file-one-local', because it handles also
22348 the case both files use the same out-of-band method.
22349 Implementation added.
22350 (tramp-handle-file-local-copy, tramp-handle-write-region):
22351 Out-of-band handling removed. `copy-file' called instead, which
22352 calls `tramp-do-copy-or-rename-file-out-of-band'.
22353 (tramp-action-password): Check for out-of-band method removed.
22354 This function is used for 'login-program.
22355 (tramp-post-connection): Use `tramp-method-out-of-band-p' when
22356 appropriate.
22357 (tramp-completion-function-alist-ssh): Add `tramp-parse-shostkeys'
22358 and `tramp-parse-sknownhosts'.
22359 (tramp-completion-function-alist): It's a defvar now, because we
22360 want to apply the optimized `tramp-set-completion-function'
22361 instead of a static list.
22362 (tramp-set-completion-function): Implementation tuned.
22363 Avoid double entries, and entries where the function or the
22364 file/directory doesn't exist.
22365 (tramp-parse-shostkeys, tramp-parse-sknownhosts): New functions
22366 for SSH2.
22367 (tramp-file-name-handler-alist): Add `dired-compress-file' entry.
22368 (tramp-handle-dired-compress-file): New function.
22369 (tramp-async-proc): New variable.
22370 (tramp-handle-shell-command): Adding asynchronous processes.
22371 They are far from being perfect, but it works at least for
22372 `find-grep-dired' and `find-name-dired' in Emacs 22.1.
22373 (top-level): Require password.el if visible. Should be mandatory
22374 once No Gnus has found its way into (X)Emacs.
22375 (tramp-read-passwd): Invoke `password-read' if available,
22376 `read-passwd' otherwise. `ange-ftp-read-passwd' isn't used as
22377 fallback any longer.
22378 (tramp-clear-passwd): New function.
22379 (tramp-process-actions, tramp-process-multi-actions):
22380 Clear password cache if login has failed.
22381
22382 * net/tramp-ftp.el (Commentary): Remove pointer to EFS. It has
22383 its own module.
22384 (tramp-ftp-file-name-handler): Unset `ange-ftp-ftp-name-arg' and
22385 `ange-ftp-ftp-name-res'. There could be incorrect values from
22386 previous calls in case the "ftp" method is used in the Tramp file
22387 name. Reported by Katsumi Yamaoka <yamaoka@jpl.org>.
22388
223892004-02-28 Richard M. Stallman <rms@gnu.org>
22390
22391 * term.el (term-mouse-paste): Call mouse-set-point.
22392
22393 * thumbs.el: New file.
22394
223952004-02-28 Vinicius Jose Latorre <viniciusjl@ig.com.br>
22396
22397 * progmodes/ebnf-abn.el: Doc fix.
22398
22399 * progmodes/ebnf-bnf.el: Doc fix.
22400 (ebnf-repeat): Code fix.
22401
22402 * progmodes/ebnf2ps.el: Doc fix.
22403 (ebnf-syntax-directory, ebnf-syntax-file): New funs.
22404
224052004-02-28 Juri Linkov <juri@jurta.org>
22406
22407 * ffap.el (dired-at-point): Additional writability test for
22408 relative directory names.
22409 (dired-at-point-prompter): Treat directories as a directory, get
22410 the directory component from files.
22411 (ffap-string-at-point): Return string from region if region is active.
22412 (ffap-file-at-point): Remove redundant code.
22413
224142004-02-28 Kim F. Storm <storm@cua.dk>
22415
22416 * gdb-ui.el (breakpoint-enabled-icon, breakpoint-disabled-icon):
22417 Initialize margin area images to nil.
22418 (breakpoint-bitmap): New defvar for breakpoint fringe bitmaps.
22419 (breakpoint-enabled-bitmap-face)
22420 (breakpoint-disabled-bitmap-face): New faces for bpt in fringe.
22421 (gdb-info-breakpoints-custom): Use gdb-remove-breakpoint-icons.
22422 (gdb-info-breakpoints-custom): Use gdb-put-breakpoint-icon.
22423 (gdb-mouse-toggle-breakpoint): Handle bpt in fringe.
22424 (gdb-reset): Use gdb-remove-breakpoint-icons.
22425 (gdb-put-string): Add dprop arg to specify alternative display
22426 property (for setting fringe bitmap).
22427 (gdb-remove-strings): Doc fix.
22428 (gdb-put-breakpoint-icon): New defun which displays a breakpoint
22429 icon in fringe (if available), or else as icon or text in display
22430 margin. Creates necessary icons in breakpoint-bitmap,
22431 breakpoint-enabled-icon, and/or breakpoint-disabled-icon.
22432 Also make left window margin if required.
22433 (gdb-remove-breakpoint-icons): New defun to remove breakpoint
22434 icons inserted by gdb-put-breakpoint-icon. Remove left margin if
22435 no longer needed.
22436 (gdb-assembler-custom): Use gdb-remove-breakpoint-icons and
22437 gdb-put-breakpoint-icon.
22438 (gdb-assembler-mode): Don't set left-margin-width here.
22439
224402004-02-27 Kevin Ryde <user42@zip.com.au>
22441
22442 * info-look.el: In scheme-mode symbol regexp, disallow backquote and
22443 comma, so that it DTRT in macros.
22444
224452004-02-27 Markus Rost <rost@mathematik.uni-bielefeld.de>
22446
22447 * progmodes/sh-script.el (sh-shell-arg)
22448 (sh-require-final-newline, sh-assignment-regexp, sh-builtins)
22449 (sh-leading-keywords, sh-other-keywords): Fix custom type.
22450
224512004-02-27 Dan Nicolaescu <dann@ics.uci.edu>
22452
22453 * faces.el (face-spec-set-match-display): Add a new attribute,
22454 `min-colors'.
22455 (region, highlight, secondary-selection): Use `min-colors'.
22456
22457 * custom.el (defface): Add documentation for `min-colors'.
22458
22459 * font-lock.el (font-lock-comment-face, font-lock-string-face)
22460 (font-lock-keyword-face, font-lock-function-name-face)
22461 (font-lock-variable-name-face, font-lock-constant-face):
22462 Use `min-colors'.
22463
22464 * isearch.el (isearch, isearch-lazy-highlight-face): Use `min-colors'.
22465
224662004-02-25 Vinicius Jose Latorre <viniciusjl@ig.com.br>
22467
22468 * progmodes/ebnf2ps.el: Doc fix. For compatibility with Emacs 20,
22469 define assq-delete-all if it's not defined.
22470 (ebnf-generate-region): Code fix.
22471
22472 * printing.el: Doc fix.
22473 (pr-version): New version number (6.7.2).
22474 (pr-command): Return empty string if command is an empty string.
22475
224762004-02-24 Vinicius Jose Latorre <viniciusjl@ig.com.br>
22477
22478 * progmodes/ebnf-abn.el: New file, implements an ABNF parser.
22479
22480 * progmodes/ebnf2ps.el: Doc fix. Accept ABNF (Augmented BNF). New
22481 arrow shapes: semi-up-hollow, semi-up-full, semi-down-hollow and
22482 semi-down-full. Fix a bug on productions like test = {"test"}* | (
22483 "tt" ["test"] ). Reported by Markus Dreyer
22484 <mdreyer@ix.urz.uni-heidelberg.de>.
22485 (ebnf-version): New version number (4.0).
22486 (ebnf-print-directory, ebnf-print-file, ebnf-spool-directory)
22487 (ebnf-spool-file, ebnf-eps-directory, ebnf-eps-file)
22488 (ebnf-delete-style): New commands.
22489 (ebnf-directory, ebnf-file): New funs.
22490 (ebnf-special-show-delimiter, ebnf-file-suffix-regexp)
22491 (ebnf-production-name-p, ebnf-stop-on-error): New options.
22492 (ebnf-syntax-alist): New var.
22493 (ebnf-element-width): New fun replacing ebnf-list-width.
22494 (ebnf-arrow-shape, ebnf-syntax): Custom fix.
22495 (ebnf-style-custom-list, ebnf-style-database, ebnf-arrow-shape-alist)
22496 (ebnf-prologue): Adjust vars.
22497 (ebnf-setup, ebnf-insert-style, ebnf-merge-style, ebnf-apply-style)
22498 (ebnf-reset-style, ebnf-push-style, ebnf-pop-style)
22499 (ebnf-check-style-values, ebnf-generate-production)
22500 (ebnf-generate-region, ebnf-production-dimension, ebnf-justify-list)
22501 (ebnf-make-terminal1, ebnf-make-or-more1, ebnf-make-repeat)
22502 (ebnf-token-repeat): Code fix.
22503
22504 * progmodes/ebnf-yac.el: Doc fix. Handle Bison pragmas %nonassoc,
22505 %right, %left and %prec. Suggested by Matthew K. Junker
22506 <junker@alum.mit.edu>.
22507 (ebnf-yac-definitions, ebnf-yac-lex): Code fix.
22508
22509 * progmodes/ebnf-iso.el: Doc fix.
22510 (ebnf-iso-token-table, ebnf-iso-non-terminal-chars): Adjust vars.
22511 (ebnf-iso-lex): Code fix.
22512
22513 * progmodes/ebnf-bnf.el: Doc fix.
22514 (ebnf-bnf-lex): Code fix.
22515
22516 * progmodes/ebnf-otz.el: Doc fix.
22517
225182004-02-23 Luc Teirlinck <teirllm@auburn.edu>
22519
22520 * abbrev.el (write-abbrev-file): Make argument optional. Doc fix.
22521 (abbrev-prefix-mark): Doc fix.
22522
225232004-02-23 Nick Roberts <nick@nick.uklinux.net>
22524
22525 * gdb-ui.el (gud-watch): Load tooltip, if necessary.
22526 (gdb-var-create-handler): Force speedbar-update-flag to be non-nil.
22527 (gdb-var-delete): Make interactive (really).
22528 (gdb-edit-value): Make non-interactive.
22529
22530 * progmodes/gud.el (gud-speedbar-menu-items):
22531 Add gdb-var-delete and, indirectly, gdb-edit-value.
22532 (gud-install-speedbar-variables): Bind gdb-var-delete to "D".
22533 (gud-speedbar-buttons): Remove gdb-var-delete from tag-line.
22534 (gud-gdb-marker-filter): Add comment for annotations.
22535
225362004-02-23 Glenn Morris <gmorris@ast.cam.ac.uk>
22537
22538 * calendar/calendar.el (generate-calendar)
22539 (calendar-read-date): Prevent display of BC calendars once more -
22540 reverts 2003-10-01 change.
22541 (generate-calendar-month): Doc fix.
22542
225432004-02-03 Matthew Mundell <matt@mundell.ukfsn.org> (tiny change)
22544
22545 * calendar/diary-lib.el (fancy-diary-display): Don't rely on
22546 return value of increment-calendar-month.
22547
225482004-02-21 Stephen Compall <s11@member.fsf.org>
22549
22550 * saveplace.el (save-place-forget-unreadable-files)
22551 (save-place-save-skipped, save-place-skip-check-regexp): New vars.
22552 (save-place-forget-unreadable-files): New function.
22553 (save-place-alist-to-file): Use it to filter out files that are
22554 no longer readable.
22555
22556 * textmodes/texinfo.el (texinfo-insert-@item): Look for the
22557 current Texinfo environment, using the same method as in
22558 `texinfo-insert-@end', and insert a space rather than a newline if
22559 point in a @table environment.
22560
225612004-02-21 Juri Linkov <juri@jurta.org>
22562
22563 * ffap.el (ffap-file-at-point): Try parent directories.
22564
225652004-02-21 Klaus Zeitler <kzeitler@lucent.com>
22566
22567 * vcursor.el (vcursor-modifiers): New defcustom.
22568 (vcursor-cs-binding): Use vcursor-modifiers instead of a
22569 hard-coded list.
22570
225712004-02-21 Masatake YAMATO <jet@gyve.org>
22572
22573 * play/animate.el (animate-birthday-present): Accept names other
22574 than `Sarah', too.
22575
225762004-02-21 Juri Linkov <juri@jurta.org>
22577
22578 * startup.el: Remove table of command line arguments from the
22579 Commentary section.
22580
225812004-02-20 John Wiegley <johnw@newartisans.com>
22582
22583 * eshell/em-pred.el (eshell-modifier-alist): Change the "eval
22584 again" modifier from 'e' to 'E', since 'e' is also used by the
22585 "file extension" modifier.
22586
225872004-02-19 Luc Teirlinck <teirllm@auburn.edu>
22588
22589 * help-fns.el (describe-categories): Doc fix.
22590
225912003-02-19 Michael Kifer <kifer@cs.stonybrook.edu>
22592
22593 * ediff-util.el (ediff-compute-custom-diffs-maybe): Avoid creating
22594 temporary file for buffer already visiting one. This change makes
22595 output likely to be directly usable by patch program.
22596 Suggested by Adrian Aichner <adrian@xemacs.org>
22597
225982004-02-20 Nick Roberts <nick@nick.uklinux.net>
22599
22600 * gdb-ui.el (gdb-use-colon-colon-notation): Set default to nil for
22601 case of variables defined in compound statements.
22602 (gdb-setup-windows, gdb-source-info, gdb-source-info):
22603 Simplify constructions using switch-to-buffer.
22604
226052004-02-19 Simon Josefsson <jas@extundo.com>
22606
22607 * play/morse.el: Fix typo.
22608 (morse-code): Add @.
22609
226102004-02-19 Glenn Morris <gmorris@ast.cam.ac.uk>
22611
22612 * calendar/appt.el (appt-display-format): Change default to
22613 'ignore, for backwards compatibility.
22614 (appt-display-message): If appt-display-format is 'ignore,
22615 respect old vars appt-msg-window and appt-visible.
22616 (appt-activate): Don't depend on return value of cancel-timer.
22617
22618 * calendar/calendar.el (calendar-holidays): Doc fix.
22619
22620 * calendar/cal-coptic.el (coptic-prompt-for-date):
22621 Use assoc-string instead of assoc-ignore-case.
22622 * calendar/cal-french.el (calendar-goto-french-date): Ditto.
22623 * calendar/cal-hebrew.el (calendar-goto-hebrew-date)
22624 (mark-hebrew-diary-entries, list-yahrzeit-dates): Ditto.
22625 * calendar/cal-islam.el (calendar-goto-islamic-date)
22626 (mark-islamic-diary-entries): Ditto.
22627 * calendar/cal-julian.el (calendar-goto-julian-date): Ditto.
22628 * calendar/cal-mayan.el (calendar-read-mayan-haab-date)
22629 (calendar-read-mayan-tzolkin-date): Ditto.
22630 * calendar/calendar.el (calendar-read-date): Ditto.
22631 * calendar/diary-lib.el (mark-diary-entries): Ditto.
22632
226332004-02-18 Markus Rost <rost@mathematik.uni-bielefeld.de>
22634
22635 * progmodes/executable.el (executable-command-find-posix-p):
22636 Fix choice of the directory.
22637
226382004-02-17 Luc Teirlinck <teirllm@auburn.edu>
22639
22640 * simple.el (interprogram-cut-function)
22641 (interprogram-paste-function, kill-new, kill-append):
22642 Doc fixes.
22643 (kill-region): Make it return nil. Doc fix.
22644 (yank-pop): Make its argument optional.
22645 (yank): Make ARG `-' equivalent to `-1'.
22646
226472004-02-17 Eli Zaretskii <eliz@gnu.org>
22648
22649 * mail/rmail.el (rmail-get-new-mail): Don't reference
22650 rmail-use-spam-filter if rmail-spam-filter is not loaded.
22651
226522004-02-16 Luc Teirlinck <teirllm@auburn.edu>
22653
22654 * autorevert.el (auto-revert-buffer-p): Only revert dired buffers
22655 if one of global-auto-revert-non-file-buffers or autorevert-mode
22656 is non-nil.
22657
226582004-02-16 Eli Zaretskii <eliz@gnu.org>
22659
22660 * subr.el (delete-dups): A better implementation from Karl Heuer
22661 <kwzh@gnu.org>.
22662
226632004-02-16 Matt Hodges <matt@stchem.bham.ac.uk> (tiny change)
22664
22665 * net/telnet.el (telnet-interrupt-subjob): Move doc string to the
22666 correct place.
22667 * progmodes/icon.el (icon-indent-command): Ditto.
22668 * textmodes/paragraphs.el (repunctuate-sentences): Ditto.
22669
226702004-02-16 Eli Zaretskii <eliz@gnu.org>
22671
22672 * progmodes/grep.el (grep-compute-defaults): Undo change from
22673 2004-01-29: don't use executable-command-find-posix-p.
22674
226752004-02-16 Richard Sharman <rsharman@pobox.com>
22676
22677 * hilit-chg.el: Use require instead of eval-and-compile.
22678 (highlight-compare-buffers): New function.
22679
226802004-02-16 John Basrai <jbasrai@comcast.net> (tiny change)
22681
22682 * man.el (Man-fontify-manpage): Render section headings in
22683 `Man-overstrike-face' even when overstrike was not used by man
22684 formatter for section headings.
22685
226862004-02-16 Eli Tziperman <eli@deas.harvard.edu>
22687
22688 * rmail-spam-filter.el (vm-use-spam-filter)
22689 (rsf-min-region-length-added-to-spam-list): New variables.
22690 (rsf-bbdb-auto-delete-spam-bbdb-entries): Rename from
22691 rmail-bbdb-auto-delete-spam-entries. Add cc: to recipients for
22692 spam testing. Don't delete spam message if automatic deletion
22693 after output via variable rmail-delete-after-output is turned on.
22694 (rsf-bbdb-dont-create-entries-for-deleted-messages): Rename from
22695 rsf-bbdb-dont-create-entries-for-spam.
22696 (check-field): New function, extracted from code in
22697 rmail-spam-filter to ease addition of header fields like content-type.
22698 (message-content-type): New variable to check the content-type:
22699 field added, also in defcustom of rsf-definitions-alist.
22700 (rmail-spam-filter): Replace repeated test code for header fields
22701 by calls to check-field; change the call to
22702 rmail-output-to-rmail-file such that rmail-current-message stays
22703 the same to avoid wrong deletion of unseen flags.
22704 (rsf-add-contents-type): New function to convert old format
22705 of rmail-spam-definitions-alist into new one.
22706 Change prefixes of all variables and functions from
22707 rmail-spam-filter- or spam-filter- or rmail-spam- to rsf-.
22708
227092004-02-16 Eli Zaretskii <eliz@gnu.org>
22710
22711 * loadhist.el (unload-hook-features-list): New defvar.
22712
227132004-02-16 Dave Love <fx@gnu.org>
22714
22715 * loadhist.el (unload-feature): Doc fix. Rename flist to
22716 unload-hook-features-list.
22717
227182004-02-16 Jay Belanger <belanger@truman.edu> (tiny change)
22719
22720 * calc/calc-embed.el (calc-do-embedded-activate): Add autoload
22721 cookie. Don't check if we are looking-at open-formula.
22722
227232004-02-16 Jesper Harder <harder@ifa.au.dk> (tiny change)
22724
22725 * subr.el (match-string-no-properties): Use substring-no-properties.
22726
227272004-02-16 Eli Zaretskii <eliz@gnu.org>
22728
22729 * emacs-lisp/rx.el (rx-check, rx-check-any, rx-check-not)
22730 (rx-repeat, rx-check-backref, rx-syntax, rx-to-string):
22731 Use lower-case "rx" in all error message.
22732
227332004-02-16 Dave Love <fx@gnu.org>
22734
22735 * emacs-lisp/rx.el (rx-or): Put group around result.
22736 (rx-constituents): Add backref.
22737 (rx-syntax): Add string-delimiter, comment-delimiter.
22738 (rx-categories): Add combining-diacritic.
22739 (rx-check-not, rx-greedy, rx): Doc fix.
22740 (rx-backref, rx-check-backref): New.
22741
227422004-02-16 Jesper Harder <harder@ifa.au.dk>
22743
22744 * newcomment.el (uncomment-region): Allow eob as comment end.
22745
227462004-02-16 Jari Aalto <jari.aalto@poboxes.com>
22747
22748 * filecache.el: All message and error commands now use prefix
22749 "Filecache:" to make it easy to read *Messages* buffer.
22750
227512004-02-16 Jari Aalto <jari.aalto@poboxes.com>
22752
22753 * autorevert.el: Add support to detect changed dired and VC buffers.
22754 (auto-revert-active-p, auto-revert-list-diff)
22755 (auto-revert-dired-file-list, auto-revert-dired-changed-p)
22756 (auto-revert-handler, auto-revert-active-p): New functions.
22757 (auto-revert-buffers): Move revert logic to `auto-revert-handler'
22758 and `auto-revert-active-p'.
22759 (eval-when-compile): Defvar dired-directory and vc-mode.
22760 (auto-revert-vc-cvs-file-version, auto-revert-vc-buffer-p)
22761 (auto-revert-handler-vc): New functions.
22762
227632004-02-16 Alfred M. Szmidt <ams@kemisten.nu> (tiny change)
22764
22765 * progmodes/compile.el (compilation-directory): New defvar.
22766 (compile): Save current directory in compilation-directory.
22767 (recompile): Bind default-directory to compilation-directory if
22768 that is non-nil.
22769
227702004-02-16 Dave Love <fx@gnu.org>
22771
22772 * newcomment.el (comment-insert-comment-function)
22773 (comment-region-function, uncomment-region-function): New.
22774 (comment-indent): Use comment-insert-comment-function.
22775 (uncomment-region): Use uncomment-region-function.
22776 (comment-region): Use comment-region-function.
22777
22778 * emacs-lisp/rx.el (rx-not): Bind case-fold-search to nil.
22779
227802004-02-16 Richard Stallman <rms@gnu.org>
22781
22782 * Makefile.in (TAGS, TAGS-LISP): Filter out of `els' only
22783 loaddefs* and ldefs-boot*.
22784
227852004-02-16 Eli Zaretskii <eliz@gnu.org>
22786
22787 * mail/mail-utils.el (rmail-dont-reply-to): Anchor user login name
22788 and email address at the beginning and end of the address.
22789
22790 * mail/rmail.el (rmail-default-dont-reply-to-names): Make "info-"
22791 anchored at the beginning of the email address.
22792
227932004-02-16 TAKAI Kousuke <tak@kmc.gr.jp> (tiny change)
22794
22795 * international/ccl.el (ccl-compile-write): Pass `left' to
22796 ccl-embed-code to generate correct code of write-expr-register.
22797
227982004-02-15 Dan Nicolaescu <dann@ics.uci.edu> (tiny change)
22799
22800 * progmodes/grep.el (grep-compute-defaults): Fix typos.
22801
228022004-02-15 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
22803
22804 * x-dnd.el: Mention support for Motif in commentary.
22805 (x-dnd-handle-drag-n-drop-event): Ditto.
22806
228072004-02-14 Jonathan Yavner <jyavner@member.fsf.org>
22808
22809 * ses.el: Use "ses--" prefixes for buffer-local variables.
22810 Use (point-min) instead of 1, even when we know the buffer
22811 is unnarrowed.
22812 (ses-build-load-map): Delete. Distribute its content to defconsts for
22813 the three maps.
22814 (ses-menu, ses-header-line-menu): New menus.
22815 (ses-mode-map): Use them.
22816 (ses-read-number) New fun. Duplicates code from interactive "N" spec.
22817
228182004-02-14 Martin Stjernholm <bug-cc-mode@gnu.org>
22819
22820 * Makefile.in: Fix the CC Mode recompile kludge so it works
22821 when building in a different directory.
22822
228232004-02-13 Luc Teirlinck <teirllm@auburn.edu>
22824
22825 * simple.el (kill-new): Put yank-handler property on the entire string.
22826
228272004-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
22828
22829 * diff.el: Don't use compile any more, use diff-mode instead.
22830 (diff-regexp-alist, diff-old-file, diff-new-file)
22831 (diff-parse-differences, diff-process-setup): Remove.
22832 (diff-sentinel): New fun.
22833 (diff): Use it. Run the process ourselves.
22834 Use diff-mode for the rest of the processing.
22835
22836 * diff.el (diff): Simplify code handling `switch'.
22837
228382004-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
22839
22840 * pcvs-defs.el (cvs-menu): Add `tag'.
22841
228422004-02-11 Luc Teirlinck <teirllm@auburn.edu>
22843
22844 * simple.el (kill-append): Doc fix.
22845
22846 * emacs-lisp/lisp-mode.el (lisp-mode-variables):
22847 Adapt outline-regexp to the new conventions for commenting out code.
22848
228492004-02-11 John Paul Wallington <jpw@gnu.org>
22850
22851 * mail/smtpmail.el (smtpmail-try-auth-methods): Fix typo.
22852
228532004-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
22854
22855 * diff.el (diff-switches): New fun.
22856 (diff, diff-backup): Use it.
22857 (diff): Clean up the args construction. Use backquote.
22858 Use listp instead of consp to avoid putting a nil arg.
22859 (diff): Add a revert-buffer function.
22860
228612004-02-10 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
22862
22863 * x-dnd.el (x-dnd-types-alist): Add COMPOUND_TEXT, FILE_NAME
22864 handled by x-dnd-handle-file-name.
22865 (x-dnd-known-types): Add COMPOUND_TEXT.
22866 (x-dnd-init-frame): Call x-dnd-init-motif-for-frame.
22867 (x-dnd-get-state-cons-for-frame): Must do copy-sequence on
22868 x-dnd-empty-state.
22869 (x-dnd-forget-drop): Ditto.
22870 (x-dnd-save-state): Add optional parameter extra-data (for Motif).
22871 (x-dnd-handle-one-url): Return private when inserting text.
22872 (x-dnd-insert-ctext): New function.
22873 (x-dnd-handle-file-name): New function for FILE_NAME.
22874 (x-dnd-handle-drag-n-drop-event): Add Motif, remove call to error.
22875 (x-dnd-init-motif-for-frame, x-dnd-get-motif-value)
22876 (x-dnd-motif-value-to-list, x-dnd-handle-motif): New functions.
22877
228782004-02-10 Kenichi Handa <handa@m17n.org>
22879
22880 * term/x-win.el (x-select-utf8-or-ctext): Use compare-strings
22881 instead of while loop.
22882
228832004-02-10 Miles Bader <miles@gnu.org>
22884
22885 * emacs-lisp/macroexp.el: New file, implements `macroexpand-all'.
22886
228872004-02-09 Kenichi Handa <handa@m17n.org>
22888
22889 * tar-mode.el (tar-extract): Fix for the case that a file doesn't
22890 have end-of-line.
22891
228922004-02-09 Martin Stjernholm <bug-cc-mode@gnu.org>
22893
22894 * Makefile.in: Added extra dependencies in the recompile target
22895 needed to cope with the compile time macro expansions in CC Mode.
22896
228972004-02-09 Kim F. Storm <storm@cua.dk>
22898
22899 * fringe.el (no-fringe-bitmap, undef-fringe-bitmap)
22900 (left-truncation-fringe-bitmap, right-truncation-fringe-bitmap)
22901 (up-arrow-fringe-bitmap, down-arrow-fringe-bitmap)
22902 (continued-line-fringe-bitmap, continuation-line-fringe-bitmap)
22903 (overlay-arrow-fringe-bitmap, top-left-angle-fringe-bitmap)
22904 (top-right-angle-fringe-bitmap, bottom-left-angle-fringe-bitmap)
22905 (bottom-right-angle-fringe-bitmap, left-bracket-fringe-bitmap)
22906 (right-bracket-fringe-bitmap, filled-box-cursor-fringe-bitmap)
22907 (hollow-box-cursor-fringe-bitmap, hollow-square-fringe-bitmap)
22908 (bar-cursor-fringe-bitmap, hbar-cursor-fringe-bitmap)
22909 (empty-line-fringe-bitmap): Define standard fringe bitmaps id's.
22910
229112004-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
22912
22913 * window.el (window-safely-shrinkable-p): Don't change the buffer-list.
22914 Don't allow shrink if there's a window on our right.
22915
22916 * progmodes/prolog.el (prolog-program-name): Use gprolog if available.
22917 (prolog-mode-syntax-table, prolog-mode-abbrev-table, prolog-mode-map):
22918 Bring together declaration and initialization.
22919 (prolog-mode-variables): Don't set the syntax table.
22920 Don't set paragraph-start and comment-indent-function.
22921 Add /*..*/ to the comment regexps.
22922 (prolog-mode-commands): Remove. Do it during init of prolog-mode-map.
22923 (prolog-mode-map): Don't bind TAB.
22924 (prolog-mode): Set the syntax table.
22925 (prolog-comment-indent): Remove.
22926 (inferior-prolog-mode-map): Initialize in the declaration.
22927 (inferior-prolog-mode-syntax-table)
22928 (inferior-prolog-mode-abbrev-table): New vars.
22929 (inferior-prolog-mode): Derive from comint-mode.
22930 (run-prolog): Avoid switch-to-buffer which can fail in dedicated and
22931 minibuffer windows.
22932
22933 * progmodes/grep.el (grep-regexp-alist): Allow :, \t and (
22934 in file names, as long as it is unambiguous.
22935
229362004-02-08 Andreas Schwab <schwab@suse.de>
22937
22938 * textmodes/reftex-toc.el
22939 (reftex-toc-load-all-files-for-promotion): Remove useless use of
22940 format. Doc fix.
22941
22942 * textmodes/refer.el (refer-find-entry-internal): Remove extra
22943 format string arguments.
22944
22945 * tar-mode.el (tar-parse-octal-integer-safe): Add missing format
22946 string argument.
22947
22948 * progmodes/xscheme.el (verify-xscheme-buffer): Fix format strings.
22949
22950 * play/zone.el (zone-call): Fix format string.
22951
22952 * net/webjump.el (webjump-builtin): Add missing format string argument.
22953
22954 * midnight.el (midnight-delay-set): Remove extra format string
22955 argument.
22956
22957 * mail/rmail.el (rmail-get-new-mail): Remove useless use of format.
22958
22959 * hexl.el (hexl-insert-char): Add missing format string argument.
22960
22961 * format.el (format-decode): Fix format string.
22962
22963 * emulation/vi.el (vi-mode): Remove extra format string argument.
22964 (vi-repeat-last-search): Likewise.
22965 (vi-reverse-last-search): Likewise.
22966 (vi-goto-mark): Likewise.
22967 (vi-reverse-last-find-char): Likewise.
22968 (vi-repeat-last-find-char): Likewise.
22969 (vi-locate-def): Likewise.
22970
22971 * emacs-lisp/lisp-mnt.el (lm-verify): Remove useless use of format.
22972
22973 * ediff-util.el (ediff-toggle-read-only): Remove extra format
22974 string argument.
22975 (ediff-toggle-regexp-match): Likewise.
22976
22977 * dired-aux.el (dired-do-query-replace-regexp): Add missing
22978 format string argument.
22979
22980 * calc/calc-map.el (calc-get-operator): Remove extra format
22981 string argument.
22982
22983 * calc/calc-forms.el (calc-convert-time-zones): Fix format string.
22984
22985 * calc/calc-ext.el (calc-do-prefix-help): Remove extra format
22986 string argument.
22987
22988 * eshell/esh-mode.el (eshell-send-invisible): Fix format string.
22989
22990 * eshell/em-hist.el (eshell-hist-word-reference): Fix format string.
22991
22992 * emulation/viper-ex.el (ex-mark): Remove extra format string argument.
22993
22994 * emacs-lisp/cl-macs.el (defstruct): Remove extra format string arg.
22995 (cl-struct-setf-expander): Likewise.
22996
22997 * vc.el (with-vc-file): Fix unsafe uses of error.
22998 (vc-cancel-version): Likewise.
22999
230002004-02-08 Jan Nieuwenhuizen <jan.nieuwenhuizen@aspiratie.nl> (tiny change)
23001
23002 * progmodes/gud.el (gud-jdb-marker-filter): Add period as optional
23003 thousands separator; fixes <class>:<line-number> regexp for
23004 non-english locales.
23005
230062004-02-08 Andreas Schwab <schwab@suse.de>
23007
23008 * view.el (view-mode-enable): Revert previous change.
23009
230102004-02-07 Kim F. Storm <storm@cua.dk>
23011
23012 * simple.el (line-number-at-pos): Rename from line-at-pos.
23013 Uses changed (what-line and vc-annotate-warp-version).
23014
230152004-02-06 Stefan Monnier <monnier@iro.umontreal.ca>
23016
23017 * diff-mode.el (diff-file-regexp-alist, diff-error-regexp-alist)
23018 (diff-mode): Remove aborted attempt at support for compile.el.
23019 (diff-mode, diff-minor-mode): Avoid obsolete write-contents-hooks.
23020
230212004-02-06 Andreas Schwab <schwab@suse.de>
23022
23023 * view.el (view-mode-enable): Add view-mode-map to
23024 minor-mode-overriding-map-alist.
23025
230262004-02-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
23027
23028 * x-dnd.el (x-dnd-get-local-file-name): Fix byte compiler warning
23029
230302004-02-04 Stefan Monnier <monnier@iro.umontreal.ca>
23031
23032 * progmodes/cperl-mode.el (cperl-fill-paragraph): Call fill-paragraph
23033 with point inside rather than after the paragraph.
23034
230352004-02-04 Sam Steingold <sds@gnu.org>
23036
23037 * mail/smtpmail.el (smtpmail-try-auth-methods):
23038 Do not try authentication when no mechanism is available.
23039 Pass port-name as defaultport to `netrc-machine'.
23040
230412004-02-04 Stephen Eglen <stephen@gnu.org>
23042
23043 * iswitchb.el (iswitchb-minibuffer-setup-hook): Update doc string
23044 to show how minibuffer height can be constrained.
23045
230462004-02-04 John Paul Wallington <jpw@gnu.org>
23047
23048 * files.el (auto-mode-alist): Fix .scm, .stk, .ss, .sch entry.
23049
230502004-02-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
23051
23052 * x-dnd.el: New file for drag and drop.
23053
23054 * term/x-win.el: require x-dnd, set after-make-frame-functions
23055 to x-dnd-init-frame, let x-dnd-handle-drag-n-drop-event handle
23056 drag-n-drop event.
23057
23058 * dired.el (dired-dnd-test-function, dired-dnd-popup-notice)
23059 (dired-dnd-do-ask-action, dired-dnd-handle-local-file)
23060 (dired-dnd-handle-file): New functions for drag and drop support.
23061 (dired-mode): Initialize drag and drop if x-dnd present.
23062
230632004-02-02 Stefan Monnier <monnier@iro.umontreal.ca>
23064
23065 * progmodes/cperl-mode.el (cperl-mode-map, cperl-do-auto-fill)
23066 (cperl-menu): Use fill-paragraph, not cperl-fill-paragraph.
23067 (cperl-mode): Set fill-paragraph-function.
23068 (cperl-fill-paragraph): Make it non-interactive.
23069
230702004-02-02 Benjamin Rutt <brutt@bloomington.in.us>
23071
23072 * diff-mode.el (diff-mode-shared-map): Bind q to `quit-window'.
23073
230742004-02-02 David Kastrup <dak@gnu.org>
23075
23076 * replace.el (perform-replace): Allow 'literal argument in
23077 regexp-flag to indicate literal replacement.
23078 (query-replace-regexp-eval): Use it.
23079
230802004-02-01 Andreas Schwab <schwab@suse.de>
23081
23082 * progmodes/executable.el (executable-command-find-posix-p): Doc fix.
23083
230842004-02-01 Stephen Eglen <stephen@gnu.org>
23085
23086 * info-look.el: Add support for maxima-mode. Update commentary
23087 because info-lookup-symbol is now bound to C-h S.
23088
230892004-01-31 Luc Teirlinck <teirllm@auburn.edu>
23090
23091 * simple.el (edit-and-eval-command): Bind print-level and
23092 minibuffer-history-sexp-flag around call to read-from-minibuffer.
23093 Correct initial position in command-history.
23094
230952004-01-30 Luc Teirlinck <teirllm@auburn.edu>
23096
23097 * files.el (read-directory-name): Adapt the docstring to recent
23098 change in Fread_file_name.
23099
231002004-01-30 Jonathan Yavner <jyavner@member.fsf.org>
23101
23102 * ses.el (ses-print-cell): If print format too wide for column
23103 width, truncate decimal places if that helps to avoid "#####" fill.
23104 * ses.el (ses-initial-column-width): Revert previous change.
23105
231062004-01-29 Stefan Monnier <monnier@iro.umontreal.ca>
23107
23108 * jit-lock.el (jit-lock-context-time, jit-lock-context-timer): New var.
23109 (with-buffer-unmodified, with-buffer-prepared-for-jit-lock):
23110 Add edebug info.
23111 (jit-lock-mode): Setup/cancel the new timer.
23112 (jit-lock-context-fontify): New fun. Extracted from
23113 context fontification code of jit-lock-stealth-fontify.
23114 (jit-lock-stealth-fontify): Don't do context fontification any more.
23115
23116 * jit-lock.el (jit-lock-stealth-fontify): Allow quit.
23117 (jit-lock-fontify-now): Handle the `quit' case.
23118 (jit-lock-contextually): Rename from jit-lock-defer-contextually.
23119
231202004-01-29 Jari Aalto <jari.aalto@poboxes.com>
23121
23122 * progmodes/executable.el (executable-command-find-posix-p):
23123 New. Check if find handles arguments Posix-style.
23124
23125 * progmodes/grep.el (grep-compute-defaults):
23126 Use executable-command-find-posix-p.
23127 (grep-find): Check `grep-find-command'.
23128
23129 * filecache.el (file-cache-find-posix-p): Delete.
23130 (file-cache-add-directory-using-find):
23131 Use `executable-command-find-posix-p'.
23132
231332004-01-29 Dave Love <fx@gnu.org>
23134
23135 * emacs-lisp/lisp.el (beginning-of-defun-raw, end-of-defun):
23136 Iterate the hook function if arg is given.
23137 (mark-defun, narrow-to-defun): Change order of finding the limits.
23138
23139 * emacs-lisp/bytecomp.el (byte-compile-compatibility): Doc fix.
23140 (byte-compile-format-warn): New.
23141 (byte-compile-callargs-warn): Use it.
23142 (Format, message, error): Add byte-compile-format-like property.
23143 (byte-compile-maybe-guarded): New.
23144 (byte-compile-if, byte-compile-cond): Use it.
23145 (byte-compile-lambda): Compile interactive forms,
23146 just to make warnings about them.
23147
231482004-01-29 Jonathan Yavner <jyavner@member.fsf.org>
23149
23150 * ses.el (ses-initial-column-width): Increase to 14, so it will
23151 work well with the default printer of "%.7g" for extreme values
23152 like "-1.234567e+07".
23153
231542004-01-29 Kenichi Handa <handa@m17n.org>
23155
23156 * term/x-win.el (x-selection-value): Optimize for ASCII only case.
23157
231582004-01-28 Peter 'Luna' Runestig <peter@runestig.com>
23159
23160 * dos-w32.el: Added support for the `default-printer-name' function.
23161
231622004-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
23163
23164 * server.el (server-socket-name): Don't use the hostname in the
23165 socket name since /tmp is local to the host anyway.
23166
23167 * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): Use a more
23168 robust check of widening and fix var-naming.
23169
231702004-01-27 Eli Tziperman <eli@deas.harvard.edu>
23171
23172 * rmail-spam-filter.el: Change rmail-spam-filter- or spam-filter-
23173 or rmail-spam- to rsf- in all function and variable names.
23174 (rsf-min-region-to-spam-list): New variable.
23175 (rsf-bbdb-auto-delete-spam-entries): Rename from
23176 rmail-bbdb-auto-delete-spam-bbdb-entries. The cc: field is
23177 scanned together with the recipients field for spam testing; Don't
23178 delete spam message if rmail-delete-after-output is non-nil;
23179 (rsf-check-field): New function, extracted from code in
23180 rmail-spam-filter to ease addition of header fields like
23181 content-type:;
23182 (message-content-type): New variable. The content-type: field was
23183 added also in defcustom of rsf-definitions-alist;
23184 (rmail-spam-filter): Replace repeated test code for header fields
23185 by calls to check-field; change the call to
23186 rmail-output-to-rmail-file such that rmail-current-message stays
23187 the same to avoid wrong deletion of unseen flags.
23188 (rmail-use-spam-filter): Add autoload cookie.
23189
231902004-01-27 Jari Aalto <jari.aalto@poboxes.com>
23191
23192 * filecache.el (file-cache-find-posix-p): New function. Detect Cygwin.
23193 (file-cache-add-directory-using-find): Add Cygwin support.
23194 (file-cache-find-command-posix-flag): New user variable.
23195
23196 * filecache.el (file-cache-add-directory): Check for
23197 directories an remove them from dir-files.
23198
231992004-01-27 Richard M. Stallman <rms@gnu.org>
23200
23201 * man.el (Man-fontify-manpage): Clean up message.
23202
232032004-01-27 Kenichi Handa <handa@m17n.org>
23204
23205 * textmodes/paragraphs.el (sentence-end-without-space): New variable.
23206 (sentence-end): Define using sentence-end-without-space.
23207
23208 * textmodes/fill.el (fill-delete-newlines): Don't add a space if
23209 a sentence ends with one of a character in sentence-end-without-space.
23210
232112004-01-26 Stefan Monnier <monnier@iro.umontreal.ca>
23212
23213 * font-lock.el (font-lock): Add jit-lock as explicit group member.
23214 (jit-lock): Group declaration moved to jit-lock.el.
23215 (toplevel): Don't explicitly require jit-lock, since it's autoloaded
23216 when necessary.
23217
23218 * jit-lock.el (jit-lock): Move group declaration from font-lock.el.
23219 (jit-lock-context-unfontify-pos): Rename from
23220 jit-lock-first-unfontify-pos.
23221 (jit-lock-defer-buffers): Rename from jit-lock-buffers.
23222
232232004-01-25 Glenn Morris <gmorris@ast.cam.ac.uk>
23224
23225 * progmodes/fortran.el (fortran-break-before-delimiters): Doc fix.
23226 (fortran-break-delimiters-re, fortran-no-break-re): New consts.
23227 (fortran-fill): When filling a string, adjust re-search-backward
23228 argument for special case of string just on fill-column.
23229 When filling non-string, allow one extra char if
23230 fortran-break-before-delimiters is non-nil.
23231 Suggested by Michael Hagemann <michael.hagemann@unibas.ch>.
23232 Use fortran-break-delimiters-re and fortran-no-break-re to
23233 correctly handle cases such as "**".
23234
23235 * progmodes/f90.el (f90-break-delimiters): Doc fix.
23236 (f90-no-break-re): Add some extra tokens. Doc fix.
23237
232382004-01-24 Thien-Thi Nguyen <ttn@gnu.org>
23239
23240 * mail/rmail-spam-filter.el:
23241 Use two semicolons as Commentary line prefix.
23242 Add ";;; Code:" stylized comment.
23243 Delete end-of-line whitespace.
23244 Wrap (require 'cl) with `eval-when-compile'.
23245
232462004-01-23 Benjamin Rutt <brutt@bloomington.in.us>
23247
23248 * vc.el (vc-annotate): Fix improper use of `make-local-variable'
23249 at the top level of vc.el.
23250
232512004-01-23 Andre Spiegel <spiegel@gnu.org>
23252
23253 * vc.el (vc-current-line): Function removed. This is now done by
23254 the new function line-at-pos in simple.el.
23255 (vc-annotate-warp-version): Use line-at-pos instead of
23256 vc-current-line.
23257
232582004-01-22 Kim F. Storm <storm@cua.dk>
23259
23260 * simple.el (line-at-pos): New defun.
23261 (what-line): Use it. Optimize by only counting lines in narrowed
23262 region once.
23263
232642004-01-22 Kenichi Handa <handa@m17n.org>
23265
23266 * language/cyrillic.el (ccl-encode-windows-1251-font): Rearrange code
23267 point (register r1) only for charset mule-unicode-0100-24ff.
23268
232692004-01-21 Markus Rost <rost@mathematik.uni-bielefeld.de>
23270
23271 * mail/rmail.el (rmail-convert-to-babyl-format): Avoid deleting
23272 trailing white space and ensure a final newline.
23273
23274 * mail/rmail-spam-filter.el (rmail-use-spam-filter):
23275 Add autoload cookie.
23276
232772004-01-21 Benjamin Rutt <brutt@bloomington.in.us>
23278
23279 * vc.el (vc-annotate-mode): Inherit from fundamental-mode and
23280 activate view-mode explicitly.
23281
232822004-01-21 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
23283
23284 * term/x-win.el (x-clipboard-yank, menu-bar-edit-menu): Call
23285 menu-bar-enable-clipboard and make Paste use clipboard first.
23286
232872004-01-20 Stefan Monnier <monnier@iro.umontreal.ca>
23288
23289 * vc-mcvs.el (vc-mcvs-mode-line-string): Remove. Does not work.
23290 (vc-mcvs-workfile-version): Manually macro expand vc-mcvs-cvs.
23291 (vc-mcvs-cvs): Remove.
23292 (vc-mcvs-command): Remove use of assert.
23293
23294 * outline.el (outline-insert-heading): Tighten up match.
23295 (outline-demote, outline-move-subtree-down): Don't assume anything
23296 about outline-regexp.
23297
23298 * textmodes/texinfo.el (texinfo-mode): Remove ^ from outline-regexp.
23299 (texinfo-show-structure): Explicitly add ^, and simplify.
23300
233012004-01-20 Glenn Morris <gmorris@ast.cam.ac.uk>
23302
23303 * calendar/appt.el (appt-check): Restore usage of
23304 appt-issue-message deleted in previous change.
23305 (top-level): Activate package when loaded (needed for backwards
23306 compatibility).
23307
233082004-01-20 Jesper Harder <harder@ifa.au.dk>
23309
23310 * mail/smtpmail.el (smtpmail-via-smtp): No need to add two bytes
23311 following previous change to smtpmail-send-data.
23312
233132004-01-20 Benjamin Rutt <brutt@bloomington.in.us>
23314
23315 * vc.el (vc-default-previous-version): Doc enhancement.
23316 (vc-default-next-version): New function.
23317 (vc-print-log): New arg FOCUS-REV.
23318 (vc-annotate-mode): Derive from view-mode.
23319 (vc-annotate): New args REVISION, DISPLAY-MODE.
23320 (vc-annotate-workfile-version, vc-annotate-extract-revision-at-line)
23321 (vc-annotate-revision-at-line, vc-annotate-revision-previous-to-line)
23322 (vc-annotate-show-log-revision-at-line, vc-annotate-warp-version)
23323 (vc-annotate-show-diff-revision-at-line, vc-current-line)
23324 (vc-annotate-prev-version, vc-annotate-next-version): New functions.
23325
23326 * vc-cvs.el (vc-cvs-annotate-extract-revision-at-line): New function.
23327
233282004-01-19 Karl Berry <karl@gnu.org>
23329
23330 * textmodes/texinfo.el: Use "Texinfo" consistently, no "TeXinfo"
23331 or "TexInfo".
23332
233332004-01-19 Luc Teirlinck <teirllm@auburn.edu>
23334
23335 * subr.el (delete-dups): New function.
23336
233372004-01-19 Karl Berry <karl@gnu.org>
23338
23339 * textmodes/texinfo.el (texinfo-mode): Define outline-regexp to start
23340 with ^, since that's what texinfo-show-structure
23341 documentation says (plus it works much better in texinfo.txi).
23342
233432004-01-18 Jesper Harder <harder@ifa.au.dk>
23344
23345 * mail/smtpmail.el (smtpmail-send-data): Don't append spurious newline.
23346
233472004-01-18 David Ponce <david@dponce.com> (tiny change)
23348
23349 * progmodes/which-func.el (which-function-mode): Don't cancel
23350 which-func-update-timer if not set.
23351
233522004-01-17 Thien-Thi Nguyen <ttn@gnu.org>
23353
23354 * calendar/diary-lib.el (diary-entry-time): Fix typo/bug:
23355 Remove spurious left square bracket in XX:XXam regexp.
23356
233572004-01-16 Luc Teirlinck <teirllm@auburn.edu>
23358
23359 * progmodes/cc-defs.el: Do not require cl at run time.
23360
233612004-01-16 Richard M. Stallman <rms@gnu.org>
23362
23363 * emacs-lisp/cl.el (cl-cannot-unload): New function.
23364 (cl-unload-hook): Defvar this to run cl-cannot-unload.
23365
23366 * mail/rmail.el (rmail-get-new-mail): New local rsf-number-of-spam.
23367 Call rmail-spam-filter. Delete and expunge spam.
23368 Print number of spam messages deleted.
23369 Save and restore the deletion status of old messages when reading
23370 new mail with spam filter, so that expunging spam does not expunge
23371 msgs deleted by the user.
23372 (rmail-only-expunge): Add an optional argument dont-show to
23373 prevent showing message after expunge.
23374
233752004-01-15 Luc Teirlinck <teirllm@auburn.edu>
23376
23377 * emacs-lisp/cl.el (declare): Add `fmakunbound' for `declare'.
23378 * subr.el (declare): New macro.
23379
233802004-01-15 Thien-Thi Nguyen <ttn@gnu.org>
23381
23382 * progmodes/scheme.el (scheme-font-lock-keywords-2): Add "force".
23383
233842004-01-14 Stefan Monnier <monnier@iro.umontreal.ca>
23385
23386 * mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event):
23387 Test window-system rather than system-type (for X11/Mac).
23388
233892004-01-12 Luc Teirlinck <teirllm@auburn.edu>
23390
23391 * emacs-lisp/bytecomp.el (compile-defun): Doc fix.
23392
233932004-01-12 Richard M. Stallman <rms@gnu.org>
23394
23395 * mail/rmail.el (rmail-convert-to-babyl-format):
23396 Use mail-unquote-printable-region.
23397 (rmail-hex-string-to-integer, rmail-decode-quoted-printable):
23398 (rmail-hex-char-to-integer): Functions deleted.
23399
23400 * mail/mail-utils.el (mail-unquote-printable-hexdigit): Upcase CHAR.
23401 (mail-unquote-printable-region): New arg NOERROR.
23402 For invalid encoding, either signal an error to just return nil.
23403
234042004-01-11 Glenn Morris <gmorris@ast.cam.ac.uk>
23405
23406 * calendar/appt.el: Update copyright and commentary.
23407 (appt-issue-message): Make obsolete.
23408 (appt-visible, appt-msg-window): Make obsolete, in favor of
23409 appt-display-format.
23410 (appt-display-mode-line, appt-display-duration)
23411 (appt-display-diary, appt-time-msg-list, appt-mode-string)
23412 (appt-prev-comp-time, appt-display-count, appt-timer)
23413 (appt-convert-time): Doc change.
23414 (appt-disp-window-function, appt-delete-window-function):
23415 Use defcustom rather than defvar.
23416 (appt-display-format): New variable.
23417 (appt-display-message): New function with display code from appt-check.
23418 (appt-check): Add optional FORCE argument. Doc change.
23419 Add appt-make-list to diary-hook if displaying diary.
23420 Remove checking of view-diary-entries-initially.
23421 Message display section removed to new function appt-display-message.
23422 (appt-display-window): Doc change. Remove unused internal var
23423 this-buffer. Do not beep, since appt-display-message does that.
23424 (appt-make-list): Doc change. Use caar.
23425 (appt-sort-list): Simplify by using builtin sort function.
23426 (appt-update-list): New function for updating appts when diary is
23427 saved.
23428 (appt-activate): New autoloaded function to toggle package
23429 functionality.
23430
23431 * calendar/cal-x.el: (calendar-one-frame-setup)
23432 (calendar-only-one-frame-setup, calendar-two-frame-setup): Doc change.
23433
23434 * calendar/calendar.el: Update copyright.
23435 (view-diary-entries-initially, european-calendar-style): Doc change.
23436 (calendar-setup): Make defcustom rather than defvar.
23437 (mark-visible-calendar-date): Initialize temp-face and faceinfo
23438 in let binding so local to function.
23439
23440 * calendar/diary-lib.el: Update copyright.
23441 (diary, diary-entry-time): Doc change.
23442 (list-diary-entries): Doc change. Trivial logic change.
23443 (fancy-diary-display): Restore make-face command mistakenly
23444 deleted 2003-05-08.
23445 (show-all-diary-entries): Allow to pop-up frame if needed.
23446
234472004-01-09 John Paul Wallington <jpw@gnu.org>
23448
23449 * bindings.el (mode-line-change-eol): Add EVENT parameter.
23450 Temporarily select EVENT's window for changing eol type.
23451
234522004-01-09 Deepak Goel <deego@gnufans.org>
23453
23454 * calendar/diary-lib.el (diary-entry-time):
23455 Also accept time in the form XX[.XX][am/pm/AM/PM].
23456 (fancy-diary-font-lock-keywords): Likewise.
23457 (diary-font-lock-keywords): Likewise.
23458 * calendar/appt.el (appt-add): Likewise.
23459 (appt-make-list): Likewise.
23460 (appt-convert-time): Likewise.
23461
234622004-01-08 Nick Roberts <nick@nick.uklinux.net>
23463
23464 * gdb-ui.el (gdb-ann3): Revert previous change.
23465 (gdb-source-info): Allow for case of where compilation directory
23466 is not recorded.
23467
234682004-01-08 John Paul Wallington <jpw@gnu.org>
23469
23470 * emerge.el (emerge-restore-buffer-characteristics): Doc fix.
23471
234722004-01-07 Nick Roberts <nick@nick.uklinux.net>
23473
23474 * progmodes/gud.el (gdb-first-prompt): Rename from gdb-first-pre-prompt
23475
23476 * gdb-ui.el (gdba): Avoid duplication, use gdb-ann3.
23477 (gdb-ann3): Use GDB command "set width 0" to prevent word wrapping
23478 problems.
23479 (gdb-prompt): Set (renamed) gdb-first-prompt to nil in gdb-ann3.
23480
234812004-01-07 Luc Teirlinck <teirllm@auburn.edu>
23482
23483 * files.el (write-file-functions, write-contents-functions):
23484 Clarify docstrings.
23485
234862004-01-07 Kenichi Handa <handa@m17n.org>
23487
23488 * international/mule.el (set-auto-coding): Fix for the case that
23489 end-of-line is only CR.
23490
234912004-01-07 Kim F. Storm <storm@cua.dk>
23492
23493 * subr.el (event-start, event-end): Doc fix.
23494 (posn-string, posn-image): New defuns.
23495 (posn-object): Return either image or string object.
23496 (posn-object-x-y): Return 8th element of position.
23497 (posn-object-width-height): New defun.
23498
234992004-01-06 Andreas Schwab <schwab@suse.de>
23500
23501 * gdb-ui.el (gdb-frame-handler): Handle word wrapping anywhere in
23502 output.
23503
235042004-01-05 Karl Berry <karl@gnu.org>
23505
23506 * emacs-lisp/copyright.el (copyright-regexp): Might as well allow
23507 / and *, too.
23508
235092003-12-31 Simon Josefsson <jas@extundo.com>
23510
23511 * files.el (before-save-hook): Add.
23512 (basic-save-buffer): Use before-save-hook.
23513
23514 * emacs-lisp/copyright.el: Fix comment to recommend
23515 before-save-hook instead of write-file-functions.
23516
235172004-01-05 Richard M. Stallman <rms@gnu.org>
23518
23519 * finder.el (finder-commentary): Call delete-other-windows.
23520
23521 * net/ange-ftp.el (ange-ftp-file-attributes):
23522 Pass 2 args to ange-ftp-real-file-attributes only if ID-FORMAT non-nil.
23523
235242004-01-04 Karl Berry <karl@gnu.org>
23525
23526 * emacs-lisp/copyright.el (copyright-regexp): Allow the common
23527 comment characters % and # in the copyright year notice,
23528 as well as ;.
23529
235302004-01-04 Per Abrahamsen <abraham@dina.kvl.dk>
23531
23532 * wid-edit.el (default): Define dummy :value-delete.
23533 Reported by Jesper Harder <harder@ifa.au.dk>.
23534
235352004-01-03 Richard M. Stallman <rms@gnu.org>
23536
23537 * progmodes/compile.el (compile-internal): Use point, not point-min,
23538 for set-window-point.
23539
23540 * textmodes/tex-mode.el (latex-find-indent): Avoid error at end of buf.
23541
23542 * emacs-lisp/lisp-mnt.el (lm-section-end): Require outline.
23543
23544 * progmodes/grep.el (grep-mode-map):
23545 Don't remap next-line, previous-line.
23546
235472004-01-03 Eric M. Ludlam <eric@siege-engine.com>
23548
23549 * speedbar.el (speedbar-edit-line): Change regexp to position
23550 the cursor on the first character of this line's button.
23551
235522004-01-03 Luc Teirlinck <teirllm@auburn.edu>
23553
23554 * subr.el (functionp): Doc fix.
23555
235562004-01-03 Jesper Harder <harder@ifa.au.dk> (tiny change)
23557
23558 * progmodes/idlwave.el (idlwave-make-tags):
23559 * textmodes/flyspell.el (flyspell-large-region):.
23560 * progmodes/make-mode.el (makefile-query-by-make-minus-q):
23561 * emulation/viper-util.el (viper-glob-unix-files):
23562 * emacs-lisp/shadow.el (shadow-same-file-or-nonexistent):
23563 * man.el (Man-init-defvars):
23564 * jka-compr.el (jka-compr-call-process):
23565 * files.el (get-free-disk-space,insert-directory):
23566 * ediff-ptch.el (ediff-test-patch-utility):
23567 * ediff-diff.el (ediff-test-utility):
23568 * dired-aux.el (dired-check-process):
23569 * mail/sendmail.el (sendmail-send-it): Don't use = or zerop to
23570 test the return value of call-process, because it can be a string.
23571
235722003-12-31 John Paul Wallington <jpw@gnu.org>
23573
23574 * bindings.el (completion-ignored-extensions): Add .pfsl.
23575
235762003-12-31 Kim F. Storm <storm@cua.dk>
23577
23578 * ido.el (ido-nonreadable-directory-p): New defun to check for
23579 nonreadable directory without activating tramp (to avoid problems
23580 with checking incomplete tramp paths).
23581 (ido-set-current-directory, ido-file-internal)
23582 (ido-file-name-all-completions1): Use it.
23583
235842003-12-30 Luc Teirlinck <teirllm@auburn.edu>
23585
23586 * help-mode.el (help-xref-info-regexp): Make hyperlinks to Info
23587 documentation if the anchor (or node) name is preceded by `info
23588 anchor' or `Info anchor' in addition to earlier `info node' and
23589 `Info node'.
23590 (help-make-xrefs): Adapt to new value of `help-xref-info-regexp'.
23591
235922003-12-30 Eli Zaretskii <eliz@gnu.org>
23593
23594 * mail/rmail.el (rmail-convert-to-babyl-format): Fix off-by-one
23595 error in arguments to base64-decode-region. Remove ^M characters
23596 after decoding base64.
23597
235982003-12-30 Simon Josefsson <jas@extundo.com>
23599
23600 * textmodes/texinfo.el: Change maintainer to FSF. Suggested by
23601 karl@freefriends.org (Karl Berry), since the Texinfo Elisp files
23602 have only been distributed with Emacs for some years.
23603 (texinfo-mode-hook): Customize.
23604
236052003-12-30 Eli Zaretskii <eliz@gnu.org>
23606
23607 * mail/rmail.el (rmail-convert-to-babyl-format): Make the code
23608 cleaner (suggested by Richard Stallman).
23609
23610 * progmodes/gud.el (gud-tool-bar-map): Modify names of icon files
23611 for gud-next, gud-nexti, gud-step and gud-stepi to prevent
23612 file-name clashes on 8+3 DOS filesystems.
23613
23614 * toolbar/gud-next.pbm, toolbar/gud-next.xpm
23615 * toolbar/gud-nexti.pbm, toolbar/gud-nexti.xpm
23616 * toolbar/gud-step.pbm, toolbar/gud-step.xpm
23617 * toolbar/gud-stepi.pbm, toolbar/gud-stepi.xpm: Renamed to
23618 gud-n.*, gud-ni.*, gud-s.*, and gud-si.*, respectively, to avoid
23619 file-name clashes on 8+3 filesystems.
23620
23621 * emacs-lisp/tcover-unsafep.el, emacs-lisp/tcover-ses.el:
23622 Renamed from testcover-unsafep.el and testcover-ses.el to avoid
23623 file-name clashes on 8+3 DOS filesystems.
23624
236252003-12-29 Richard M. Stallman <rms@gnu.org>
23626
23627 * mail/mail-utils.el (mail-unquote-printable-hexdigit):
23628 Upcase the character.
23629
23630 * textmodes/flyspell.el (mail-mode-flyspell-verify):
23631 Search for header separator alone on a line, literally,
23632 and search for it backward, not forward.
23633 (flyspell-abbrev-table): Always use global-abbrev-table
23634 if there is no local one.
23635
23636 * progmodes/sh-script.el (sh-get-indent-info):
23637 Don't move point back if at bob.
23638
23639 * progmodes/antlr-mode.el (save-buffer-state-x): Use with-no-warnings.
23640
23641 * play/handwrite.el (handwrite): Make the handwrite credit message
23642 a comment rather than an output command.
23643
23644 * obsolete/sc.el: Display message that this file is obsolete.
23645
23646 * net/ange-ftp.el (ange-ftp-start-process): Copy the environment.
23647
23648 * mail/rfc822.el (rfc822-address-start): Declare variable.
23649 Renamed from address-start. All uses changed.
23650
23651 * term.el (term-exec): Set up sentinel.
23652 (term-sentinel): New function.
23653 (term-handle-exit): New function.
23654
23655 * subr.el (assoc-ignore-case, assoc-ignore-representation):
23656 Use assoc-string, and mark them obsolete.
23657 (delay-mode-hooks): Mark as permanent local.
23658
23659 * simple.el (sendmail-user-agent-compose): Use assoc-string.
23660
23661 * register.el (copy-rectangle-to-register): Doc fix.
23662
23663 * info.el (Info-insert-dir): Use assoc-string.
23664
23665 * info-look.el (info-lookup): Use assoc-string.
23666
23667 * frame.el (pop-up-frame-function): Use quote, not `function'.
23668 (frame-notice-user-settings): Calculate ADJUSTED-TOP
23669 copying with lists as coordinate values.
23670
23671 * font-lock.el (font-lock-after-change-function): Bind inhibit-quit.
23672
23673 * find-dired.el (kill-find): New command.
23674 (find-dired): Make buffer read-only.
23675 Set up a keymap with C-c C-k running kill-find.
23676 (find-dired-filter, find-dired-sentinel): Bind inhibit-read-only.
23677
23678 * files.el (backup-buffer-copy): If MODES is nil, don't set modes.
23679
23680 * filecache.el (file-cache-ignore-case): New variable.
23681 (file-cache-assoc-function): Var deleted. Use assoc-string instead.
23682
23683 * comint.el (comint-arguments): Set COUNT after ARGS is complete.
23684 (comint-dynamic-complete-as-filename): Rename local vars.
23685 (comint-dynamic-list-filename-completions): Likewise.
23686
23687 * comint.el (comint-dynamic-list-completions-config): New var.
23688 (comint-dynamic-list-completions): Handle both SPC and TAB right.
23689
23690 * comint.el (comint-file-name-chars): Add [].
23691 (comint-word): Use skip-chars-backward, not search.
23692
23693 * shell.el (shell-file-name-chars): Add [].
23694
23695 * shell.el (shell-dynamic-complete-as-command): Rename local vars.
23696
23697 * bookmark.el (bookmark-get-bookmark): Use assoc-string.
23698
23699 * generic.el (define-generic-mode): Doc fix.
23700
237012003-12-29 Eli Zaretskii <eliz@gnu.org>
23702
23703 * files.el (kill-some-buffers): Doc fix.
23704
237052003-12-29 David Herring <sdh6@ra.msstate.edu> (tiny change)
23706
23707 * comint.el (comint-watch-for-password-prompt): Pass `string' as
23708 arg to send-invisible
23709 (send-invisible): Doc fix. The argument is now a prompt, not the
23710 string to send.
23711 (comint-read-noecho): Doc fix.
23712
237132003-12-29 Michael R. Wolf <MichaelRWolf@att.net> (tiny change)
23714
23715 * net/ange-ftp.el (ange-ftp-name-format): Allow USER to contain
23716 "@", as required by some ISP hosting service. Fix defcustom
23717 argument syntax errors that prevented use of customization.
23718
237192003-12-29 Eli Zaretskii <eliz@gnu.org>
23720
23721 * xml.el (xml-get-attribute-or-nil): Doc fix.
23722
237232003-12-29 Peter 'Luna' Runestig <peter@runestig.com>
23724
23725 * net/zone-mode.el (zone-mode): Use write-file-functions, not
23726 write-file-hooks.
23727
237282003-12-29 Eric Hanchrow <offby1@blarg.net> (tiny change)
23729
23730 * autorevert.el (auto-revert-interval): Doc fix.
23731
237322003-12-29 Mark A. Hershberger <mah@everybody.org>
23733
23734 * xml.el (xml-get-attribute-or-nil): New function, like
23735 xml-get-attribute, but returns nil if the attribute was not found.
23736 (xml-get-attribute): Convert to defsubst, uses
23737 xml-get-attribute-or-nil.
23738
237392003-12-29 Eli Zaretskii <eliz@gnu.org>
23740
23741 * emacs-lisp/easymenu.el (easy-menu-define): Doc fix.
23742
237432003-12-29 Alex Schroeder <alex@emacswiki.org> (tiny change)
23744
23745 * custom.el (custom-declare-theme): Use `value' when putting
23746 properties on `theme'.
23747
237482003-12-29 Takaaki Ota <Takaaki.Ota@am.sony.com>
23749
23750 * subr.el (insert-for-yank): Call insert-for-yank-1 repetitively
23751 for each yank-handler segment.
23752 (insert-for-yank-1): New function, with the body of the previous
23753 insert-for-yank.
23754
23755 * textmodes/table.el (table-yank-handler): New defcustom.
23756 (table--put-cell-indicator-property): Put yank-handler property
23757 that indicates the yank handler for the table cell.
23758
237592003-12-29 Jesper Harder <harder@ifa.au.dk> (tiny change)
23760
23761 * generic-x.el (etc-modules-conf-generic-mode): A more complete
23762 set of keywords.
23763
237642003-12-29 Eli Zaretskii <eliz@gnu.org>
23765
23766 * international/mule-cmds.el (reset-language-environment)
23767 (set-language-environment): Don't invoke fontset-related functions
23768 if fontset-list is not fboundp.
23769
237702003-12-29 Kenichi Handa <handa@m17n.org>
23771
23772 * international/mule-cmds.el (reset-language-environment):
23773 Call set-overriding-fontspec-internal with nil.
23774 (set-language-environment): Call set-overriding-fontspec-internal
23775 if the language environment specify `overriding-fontspec'.
23776 (language-info-alist): Doc added.
23777
23778 * language/cyrillic.el (ccl-encode-koi8-font): Make it work for
23779 characters of mule-unicode-0100-24ff.
23780 (ccl-encode-windows-1251-font): New CCL program.
23781 ("Bulgarian"): Specify overriding-fontspec.
23782 ("Belarusian"): Likewise.
23783
237842003-12-28 Sam Steingold <sds@gnu.org>
23785
23786 * net/ange-ftp.el (ange-ftp-file-attributes): Add new optional
23787 parameter ID-FORMAT to conform with the 2003-11-30 patch.
23788
237892003-12-28 Nick Roberts <nick@nick.uklinux.net>
23790
23791 * progmodes/gud.el (gud-gdb-command-name): Set default to
23792 "gdb --annotate=3".
23793 (gud-gdb-marker-filter): Look out for annotations.
23794 (gdb-first-pre-prompt): New variable.
23795 Remove trailing white space.
23796
23797 * gdb-ui.el (gdb-prompt): Change filter for level 3 annotations,
23798 if necessary.
23799 (gdb-ann3): New function. Initialize M-x gdb as for M-x gdba if
23800 annotations are detected.
23801 (gud-gdba-marker-filter): Use global variable gud-marker-acc
23802 instead of a local one to allow transition from
23803 gud-gdb-marker-filter.
23804 Remove trailing white space.
23805
238062003-12-27 Kim F. Storm <storm@cua.dk>
23807
23808 * ido.el: Handle non-readable directories.
23809 (ido-decorations): Add 9th element for non-readable directory.
23810 (ido-directory-nonreadable): New dynamic var.
23811 (ido-set-current-directory): Set it.
23812 (ido-read-buffer, ido-file-internal):
23813 (ido-read-file-name, ido-read-directory-name): Let-bind it.
23814 (ido-file-name-all-completions1): Return empty list for
23815 non-readable directory.
23816 (ido-exhibit): Print [Not readable] if directory is not readable.
23817 (ido-expand-directory): New defun (based on tiny fix from Karl Chen).
23818 (ido-read-file-name, ido-file-internal, ido-read-directory-name):
23819 Use it.
23820
238212003-12-27 Lars Hansen <larsh@math.ku.dk>
23822
23823 * ls-lisp.el (ls-lisp-insert-directory): Add parameter 'string in
23824 calls to directory-files-and-attributes and file-attributes.
23825 (ls-lisp-format): Remove system dependent handling of user and
23826 group id's.
23827
238282003-12-25 Luc Teirlinck <teirllm@auburn.edu>
23829
23830 * ffap.el (ffap-read-file-or-url): Revert previous change.
23831
238322003-12-25 Robert J. Chassell <bob@rattlesnake.com>
23833
23834 * textmodes/texnfo-upd.el (texinfo-multi-file-update): Create a
23835 new list of included files called `files-with-node-lines', that
23836 only have node lines. This way @include commands can include any
23837 file, such as version and update files without node lines, not
23838 just files that are chapters.
23839
238402003-12-25 Andreas Schwab <schwab@suse.de>
23841
23842 * jka-compr.el (jka-compr-insert-file-contents): Avoid error when
23843 file not found.
23844
238452003-12-08 Miles Bader <miles@gnu.org>
23846
23847 * dired.el (dired-between-files): Always use dired-move-to-filename,
23848 which is more robust in non-english locales.
23849
238502003-12-25 Markus Rost <rost@mathematik.uni-bielefeld.de>
23851
23852 * vc.el (vc-dired-purge): Avoid error from `kill-line'.
23853
238542003-12-24 Andreas Schwab <schwab@suse.de>
23855
23856 * shell.el (shell-file-name-quote-list): Add backslash.
23857
23858 * comint.el (comint-quote-filename): Correctly handle backslash
23859 in comint-file-name-quote-list.
23860
238612003-12-24 Kenichi Handa <handa@m17n.org>
23862
23863 * international/mule-cmds.el (set-default-coding-systems):
23864 Call ucs-set-table-for-input for all buffers that don't have local
23865 value of buffer-file-coding-system.
23866
23867 * international/ucs-tables.el (ucs-set-table-for-input):
23868 If translation-table-for-encode is a symbol, get its
23869 translation-table property.
23870
238712003-12-23 Luc Teirlinck <teirllm@auburn.edu>
23872
23873 * ffap.el (ffap-read-file-or-url): Eliminate reliance of the call
23874 to `completing-read' on a recently fixed bug.
23875
23876 * fringe.el (fringe-query-style): Suggest `?' in minibuffer prompt,
23877 instead of SPACE, to get the list of possible fringe modes.
23878 SPACE only works if both `partial-completion-mode' and
23879 `completion-auto-help' are nil.
23880
23881 * complete.el (PC-is-complete-p): Delete.
23882 (PC-do-completion): Replace all calls to `PC-is-complete-p' with
23883 calls to `test-completion'.
23884
238852003-12-23 Nick Roberts <nick@nick.uklinux.net>
23886
23887 * progmodes/gud.el (gud-speedbar-buttons): Use speed-bar-edit-line
23888 to edit values when there are no children.
23889
23890 * gdb-ui.el (gdba, gdb-assembler-mode): Call the mode "Machine" as
23891 a mode called "Assembler" already exists.
23892 (gdb-use-colon-colon-notation, gdb-show-changed-values): New options.
23893 (gud-watch): Use format option. Remove font properties from string.
23894 (gdb-var-create-handler, gdb-var-list-children-handler):
23895 Don't bother about properties as there are none.
23896 (gdb-var-create-handler, gdb-var-list-children-handler)
23897 (gdb-var-update-handler): Call gdb-var-evaluate-expression-handler
23898 with two arguments.
23899 (gdb-var-evaluate-expression-handler, gdb-post-prompt):
23900 Let speedbar show value changes with a different font.
23901 (gdb-edit-value): New defun.
23902 (gdb-clear-partial-output, gdb-clear-inferior-io)
23903 (def-gdb-auto-update-handler): Use erase-buffer.
23904 (gdb-frame-handler): Display watch expressions in
23905 FUNCTION::VARIABLE format if required.
23906
239072003-12-23 John Paul Wallington <jpw@gnu.org>
23908
23909 * info.el (Info-unescape-quotes, Info-split-parameter-string)
23910 (Info-goto-emacs-command-node): Doc fixes.
23911
239122003-12-12 Jesper Harder <harder@ifa.au.dk>
23913
23914 * cus-edit.el (custom-add-parent-links): Define "many".
23915
239162003-12-08 Per Abrahamsen <abraham@dina.kvl.dk>
23917
23918 * wid-edit.el (widget-child-value-get, widget-child-value-inline)
23919 (widget-child-validate, widget-type-value-create)
23920 (widget-type-default-get, widget-type-match): New functions.
23921 (lazy): New widget.
23922 (menu-choice, checklist, radio-button-choice, editable-list)
23923 (group, documentation-string): Remove redundant (per 2003-10-25
23924 change) calls to `widget-children-value-delete'.
23925 (widget-choice-value-get, widget-choice-value-inline): Remove.
23926 (menu-choice): Update widget.
23927
239282003-12-03 Kenichi Handa <handa@m17n.org>
23929
23930 * language/cyrillic.el: Register "microsoft-cp1251" in
23931 ctext-non-standard-encodings-alist.
23932 ("Bulgarian"): Add ctext-non-standard-encodings.
23933 ("Belarusian"): Likewise.
23934
23935 * international/mule-conf.el (compound-text-with-extensions):
23936 Change the type to 2 (iso-2022 base).
23937
23938 * international/mule.el (ctext-non-standard-encodings-alist):
23939 Change the format.
23940 (ctext-non-standard-encodings): New variable.
23941 (ctext-post-read-conversion): Fully re-written.
23942 (ctext-non-standard-designations-alist): Delete it.
23943 (ctext-non-standard-encodings-table): New function.
23944 (ctext-pre-write-conversion): Fully re-written.
23945
239462003-11-30 Per Abrahamsen <abraham@dina.kvl.dk>
23947
23948 * cus-edit.el (custom-add-parent-links): Add documentation links
23949 for parent, if the item has none of its own.
23950
239512003-11-30 Richard M. Stallman <rms@gnu.org>
23952
23953 * dired-aux.el (dired-do-query-replace-regexp):
23954 Report files visited read-only.
23955
239562003-11-30 Juri Linkov <juri@jurta.org>
23957
23958 * dired-aux.el (dired-compare-directories): New command.
23959 (dired-file-set-difference, dired-files-attributes): New functions.
23960
239612003-11-30 Kai Grossjohann <kai.grossjohann@gmx.net>
23962 Version 2.0.38 of Tramp released.
23963
23964 * net/tramp.el (tramp-chunksize): Extend docstring. Suggested by
23965 Charles Curley <charlescurley@charlescurley.com>.
23966 (tramp-multi-connection-function-alist): Add ssht entry which adds
23967 "-e none -t -t" to the list of ssh args. Suggested by Adrian
23968 Aichner.
23969 (tramp-get-method-parameter): New function to retrieve a method
23970 parameter. This allows for omission of method parameters.
23971 Callers adjusted.
23972
239732003-11-30 Michael Albinus <Michael.Albinus@alcatel.de>
23974
23975 * net/tramp.el: Add new optional parameter ID-FORMAT to
23976 `file-attributes'. Calls of `file-attributes' won't use this
23977 parameter for backward compatibility reasons.
23978 (tramp-perl-file-attributes): Add a new parameter to Perl script
23979 in order to handle uid/gid as strings, if desired.
23980 (tramp-handle-file-truename, tramp-handle-file-symlink-p):
23981 Apply `file-attributes' instead of `tramp-handle-file-attributes' in
23982 order to make the function more general.
23983 (tramp-handle-file-attributes): Replace proprietary optional
23984 parameter NONNUMERIC by the recently (Emacs 22.1) introduced ID-FORMAT.
23985 (tramp-handle-file-attributes-with-perl): Handle parameter
23986 NONNUMERIC if set. This wasn't done in the past.
23987 (tramp-post-connection): Apply second parameter "$2" if
23988 `tramp-remote-perl' is called.
23989
23990 * net/tramp-smb.el (tramp-smb-handle-delete-file):
23991 Correct cut'n'waste error (`filename' instead of `directory').
23992 (tramp-smb-handle-directory-files-and-attributes)
23993 (tramp-smb-handle-file-attributes): Add recently (Emacs 22.1)
23994 introduced parameter ID-FORMAT.
23995 (tramp-smb-handle-make-directory-internal): Correct cut'n'waste
23996 error (`directory' instead of `ldir').
23997
23998 * net/tramp-vc.el (tramp-handle-vc-user-login-name): Check if
23999 `file-attributes' has a second parameter. If yes, apply it with
24000 value "'integer". Otherwise, don't use that parameter (default is
24001 integer format).
24002
240032003-11-30 Luc Teirlinck <teirllm@auburn.edu>
24004
24005 * help.el (help-map): Bind `display-local-help' to `C-h .'.
24006 (help-for-help): Add `C-h .' to the listed Help options.
24007 Remove trailing whitespace.
24008
24009 * help-at-pt.el: New file.
24010
240112003-11-30 Jonathan Yavner <jyavner@member.fsf.org>
24012
24013 * subr.el (noreturn, 1value): New macros for test coverage.
24014 See `testcover.el'.
24015
24016 * emacs-lisp/edebug.el: Add def-edebug-spec for `noreturn' and
24017 `1value'.
24018
24019 * emacs-lisp/testcover.el (testcover-reinstrument): Special case
24020 for macro `1value'.
24021 (testcover-1value): New function. Checks that a 1value form
24022 actually returns only one value. Requested by RMS.
24023
240242003-11-29 Nick Roberts <nick@nick.uklinux.net>
24025
24026 * gdb-ui.el (gud-watch, gdb-var-create-handler)
24027 (gdb-var-list-children, gdb-var-list-children-handler)
24028 (gdb-var-update-handler, gdb-var-delete): Add server prefix to the
24029 gdb commands that use mi to keep them out of the command history.
24030
240312003-11-29 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
24032
24033 * cus-start.el (all): Add use-file-dialog.
24034
240352003-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
24036
24037 * textmodes/tex-mode.el (latex-mode): `tex-trailer' is not a regexp.
24038
240392003-11-27 Kim F. Storm <storm@cua.dk>
24040
24041 * subr.el (posn-object-x-y): New defun.
24042
240432003-11-26 Stefan Monnier <monnier@iro.umontreal.ca>
24044
24045 * progmodes/make-mode.el (makefile-font-lock-syntactic-keywords):
24046 Don't use `space' for \\\n.
24047 Be more selective as to which # are comment-starters.
24048
240492003-11-26 Luc Teirlinck <teirllm@auburn.edu>
24050
24051 * subr.el (number-sequence): Improve handling of floating point
24052 arguments (suggested by Kim Storm). Allow negative arguments.
24053
240542003-11-26 Kenichi Handa <handa@m17n.org>
24055
24056 * international/mule-cmds.el (standard-display-european-internal):
24057 Cancel the standard-display-table setting for ` and '.
24058
240592003-11-26 Kim F. Storm <storm@cua.dk>
24060
24061 * ido.el (ido-use-filename-at-point, ido-use-url-at-point):
24062 New defcustoms to add ffap-like functionality to ido.
24063 (ido-saved-vc-hb): Rename from ido-saved-vc-mt. Uses changed.
24064 (ido-no-final-slash): New defun.
24065 (ido-make-prompt, ido-file-internal, ido-toggle-vc)
24066 (ido-read-file-name): ): Toggle VC checking via
24067 vc-handled-backends instead of vc-master-templates.
24068 (ido-file-internal): Handle ido-use-url-at-point and
24069 ido-use-filename-at-point via code borrowed from ffap-guesser.
24070 Handle new ido-exit code ffap.
24071 (ido-sort-list): Ignore final slash when sorting file names.
24072
240732003-11-25 Kim F. Storm <storm@cua.dk>
24074
24075 * emulation/cua-base.el (cua--standard-movement-commands):
24076 Add forward-sentence and backward-sentence.
24077
240782003-11-25 Stephen Eglen <stephen@gnu.org>
24079
24080 * iswitchb.el (iswitchb-read-buffer,iswitchb-exit-minibuffer):
24081 iswitchb-exit is set to 'usefirst when user selects buffer at head
24082 of list using RET. (Selecting buffers at the head of the list was
24083 broken if the substring was also a complete buffername.)
24084
240852003-11-23 Kim F. Storm <storm@cua.dk>
24086
24087 * progmodes/compile.el (grep-command, grep-use-null-device)
24088 (grep-find-command, grep-tree-command, grep-tree-files-aliases)
24089 (grep-tree-ignore-case, grep-tree-ignore-CVS-directories)
24090 (grep-regexp-alist, grep-program, find-program)
24091 (grep-find-use-xargs, grep-history, grep-find-history)
24092 (grep-process-setup, grep-compute-defaults)
24093 (grep-default-command, grep, grep-tag-default, grep-find)
24094 (grep-expand-command-macros, grep-tree-last-regexp)
24095 (grep-tree-last-files, grep-tree): Move grep variables, functions
24096 and commands to new file grep.el.
24097 (compilation-mode-map): Remove grep commands from Compile sub-menu.
24098 (compilation-process-setup-function): Doc fix.
24099 (compilation-highlight-regexp, compilation-highlight-overlay): New
24100 defvars used for highlighting current compile error in source buffer.
24101 (compile-internal): New optional args HIGHLIGHT-REGEXP and
24102 LOCAL-MAP which overrides compilation-highlight-regexp and
24103 compilation-mode-map for this compilation.
24104 Delay calling compilation-set-window-height until after running
24105 compilation-process-setup-function so it can buffer-local override
24106 compilation-window-height.
24107 Check buffer-local value of compilation-scroll-output.
24108 (compilation-set-window-height): Use buffer-local value of
24109 compilation-window-height.
24110 (compilation-revert-buffer): Don't pass (undefined)
24111 preserve-modes arg to revert-buffer.
24112 (next-error-no-select, previous-error-no-select): New commands.
24113 (compilation-goto-locus): Temporarily highlight current match in
24114 source buffer using compilation-highlight-regexp.
24115
24116 * progmodes/grep.el: New file with grep code from compile.el.
24117 (grep): New defcustom group.
24118 (grep-window-height): New defcustom, like compilation-window-height.
24119 (grep-auto-highlight): New defcustom, like compile-auto-highlight.
24120 (grep-scroll-output): New defcustom, like compilation-scroll-output.
24121 (grep-command, grep-use-null-device, grep-find-command)
24122 (grep-tree-files-aliases, grep-tree-ignore-case)
24123 (grep-tree-ignore-CVS-directories): Move to grep custom group.
24124 (grep-setup-hook): New hook variable.
24125 (grep-mode-map): New keymap for grep commands. Add Grep menu.
24126 (grep-last-buffer): New defvar, override compilation-last-buffer.
24127 (grep): Add optional arg HIGHLIGHT-REGEXP. Doc fix.
24128 Call compile-internal with args highlight-regexp and grep-mode-map.
24129
241302003-11-23 Kim F. Storm <storm@cua.dk>
24131
24132 * subr.el (event-start, event-end): Doc fix.
24133 (posn-window, posn-x-y, posn-timestamp): Simplify doc.
24134 (posn-area, posn-actual-col-row, posn-object): New defuns.
24135 (posn-col-row): Simplify doc. Rewrite to use cond.
24136 (posn-point): Also return buffer position for events outside text
24137 area (that info is now present in the event position).
24138
24139 * mouse.el: Bind mouse-1 on left-fringe and right-fringe to
24140 mouse-set-point so that hscroll still works now that clicks on
24141 fringes generate specific mouse events.
24142 (mouse-set-point): Note that it now works in fringes and margins
24143 too due to new semantics of posn-point in fringes and margins.
24144
24145 * gdb-ui.el (gdb-mouse-toggle-breakpoint): New defun.
24146 (gdba): Bind it to [left-margin mouse-1] and [left-fringe mouse-1].
24147
241482003-11-20 Kim F. Storm <storm@cua.dk>
24149
24150 * gdb-ui.el (gud-gdba-command-name): Find gdb command via PATH.
24151 (breakpoint-xpm-data, breakpoint-enabled-pbm-data): Make smoother.
24152 (breakpoint-enabled-icon, breakpoint-disabled-icon): Set :ascent
24153 to 100 for icons to avoid increasing line height when shown.
24154
241552003-11-17 Jesper Harder <harder@ifa.au.dk> (tiny change)
24156
24157 * newcomment.el (comment-normalize-vars): Initialize properly if
24158 comment-start was nil.
24159
241602003-11-19 Andreas Schwab <schwab@suse.de>
24161
24162 * simple.el (set-variable): Fix indentation.
24163
241642003-11-17 Kenichi Handa <handa@m17n.org>
24165
24166 * international/latin1-disp.el (latin1-display-ucs-per-lynx):
24167 Fix docstring.
24168
241692003-11-17 Jesper Harder <harder@ifa.au.dk> (tiny change)
24170
24171 * international/latin1-disp.el (latin1-display): Fix docstring.
24172
241732003-11-16 John Wiegley <johnw@newartisans.com>
24174
24175 * eshell/em-ls.el (eshell-ls-file): There are times with
24176 size-width is nil and uncomputed (when directories are created in
24177 dired, for example); in this case, 4 is reasonable default value,
24178 although it may caused skewed new entries (which could be avoided
24179 by returning the original value of 8 in all cases, but 99% of the
24180 time this is a waste of whitespace).
24181
241822003-11-16 Martin Stjernholm <bug-cc-mode@gnu.org>
24183
24184 * cc-engine.el (c-guess-continued-construct)
24185 (c-guess-basic-syntax): Check a little more carefully if it's a
24186 function declaration when an unknown construct followed by a block
24187 is found inside a statement context. This avoids macros followed
24188 by blocks to be taken as function declarations.
24189
24190 (c-guess-continued-construct): Change the analysis of a statement
24191 continuation with a brace open to `substatement-block', for
24192 consistency with recognized statements.
24193
24194 (c-add-stmt-syntax): Don't continue to the surrounding sexp if the
24195 start is in a position so that `c-beginning-of-statement-1' jumped
24196 to the beginning of the same statement.
24197
24198 * cc-fonts.el, cc-engine.el (c-forward-<>-arglist-recur):
24199 Don't accept binary operators in the arglist if we're in a function
24200 call context, i.e. if `c-restricted-<>-arglists' is set. That avoids
24201 template recognition in cases like "if (a < b || c > d)".
24202
24203 (c-restricted-<>-arglists): New more appropriate name for
24204 `c-disallow-comma-in-<>-arglists'.
24205
24206 Accessing functions updated for the variable name change.
24207
24208 * cc-engine.el (c-syntactic-re-search-forward): Fix bug where the
24209 match data could get clobbered if NOT-INSIDE-TOKEN is used.
24210
24211 * cc-engine.el (c-beginning-of-statement-1): Don't allow parens in
24212 labels.
24213
24214 (c-backward-to-decl-anchor): Use `c-beginning-of-statement-1'
24215 instead of duplicating parts of it. This fixes bogus label
24216 recognition.
24217
24218 * cc-align.el (c-gnu-impose-minimum): Revert to the old method
24219 of checking the context in which to apply the minimum indentation,
24220 so that it isn't enforced in e.g. namespace blocks.
24221
24222 * cc-vars.el (c-inside-block-syms): New constant used by
24223 `c-gnu-impose-minimum'. It's defined close to `c-offsets-alist'
24224 to somewhat reduce the risk of becoming stale.
24225
24226 * cc-cmds.el, cc-engine.el (c-shift-line-indentation): Move from
24227 cc-cmds to cc-engine to allow use from cc-align.
24228
24229 * cc-engine.el (c-beginning-of-inheritance-list): Cope with fully
24230 qualified identifiers containing "::".
24231
24232 * cc-defs.el (c-make-keywords-re): Add kludge for bug in
24233 `regexp-opt' in Emacs 20 and XEmacs when strings contain newlines.
24234
24235 * cc-vars.el (c-emacs-features): Use a space in front of the name
24236 of the temporary buffer. That also avoids dumping problems in
24237 XEmacs due to undo info being left around after the buffer is killed.
24238
24239 * cc-engine.el (c-in-knr-argdecl): Look closer at the function
24240 arglist to see if it's a K&R style declaration.
24241
24242 (c-guess-basic-syntax): CASE 5B.2: Check with `c-in-knr-argdecl'
24243 before returning `knr-argdecl-intro'.
24244
242452003-11-16 John Wiegley <johnw@newartisans.com>
24246
24247 * eshell/em-ls.el (eshell-ls-file): Instead of making the size
24248 field in a long-listing always 8 characters, use `size-width',
24249 which has already been computed.
24250
242512003-11-15 Thien-Thi Nguyen <ttn@gnu.org>
24252
24253 * subr.el (minor-mode-list): Add `hs-minor-mode'.
24254
242552003-11-14 Thien-Thi Nguyen <ttn@gnu.org>
24256
24257 * diff-mode.el (diff-hunk-prev, diff-hunk-next):
24258 Support operation while narrowed, with `diff-restrict-view'.
24259
242602003-11-14 Thien-Thi Nguyen <ttn@gnu.org>
24261
24262 * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
24263 Take additional optional arg NARROWFUN. For the generated functions:
24264 Add local var `was-narrowed-p'. Also, if NARROWFUN is specified,
24265 include frags that arrange to check for and save narrowing state before
24266 the move and then conditionally call NARROWFUN after the move.
24267
242682003-11-14 John Wiegley <johnw@newartisans.com>
24269
24270 * eshell/esh-var.el (eshell-parse-variable-ref): Add a backslash
24271 that was optional, but obviously missing based on surrounding code.
24272
24273 * eshell/esh-cmd.el (eshell-lisp-command): Do not late-convert
24274 string arguments to numbers unless the whole argument was seen as
24275 a number.
24276
242772003-11-14 Kenichi Handa <handa@m17n.org>
24278
24279 * international/mule.el (ctext-non-standard-encodings-alist):
24280 Fix coding systems.
24281
242822003-11-10 Kenichi Handa <handa@m17n.org>
24283
24284 * language/kannada.el ("Kannada"): Add sample-text.
24285
24286 * language/knd-util.el (kannada-compose-region)
24287 (kannada-compose-string, kannada-post-read-conversion):
24288 Add autoload cookie.
24289
24290 * international/quail.el (quail-completion): Change the message
24291 "corresponding translations" to "corresponding characters".
24292
242932003-11-09 Markus Rost <rost@mathematik.uni-bielefeld.de>
24294
24295 * descr-text.el (describe-char): Fix typo.
24296
242972003-11-08 Kailash C. Chowksey <klchxbec@m-net.arbornet.org>
24298
24299 These changes are to support Kannada language/script.
24300
24301 * Makefile.in (DONTCOMPILE): Add kannada.el.
24302
24303 * makefile.w32-in (DONTCOMPILE): Add kannada.el.
24304
24305 * loadup.el: Preload kannada.el.
24306
24307 * language/ind-util.el (ucs-kannada-to-is13194-alist)
24308 (is13194-to-ucs-kannada-hashtbl, is13194-to-ucs-kannada-regexp):
24309 New variables.
24310
24311 * language/kannada.el: New file.
24312
24313 * language/knd-util.el: New file.
24314
243152003-11-07 Andreas Schwab <schwab@suse.de>
24316
24317 * progmodes/autoconf.el (autoconf-font-lock-keywords):
24318 Also highlight AH_*.
24319
24320 * xml.el (xml-parse-dtd): Fix misplaced paren.
24321
243222003-11-07 Kenichi Handa <handa@m17n.org>
24323
24324 * language/european.el (windows-1252): Fix table (0x8F and 0x9E).
24325
243262003-11-05 Juri Linkov <juri@jurta.org>
24327
24328 * desktop.el (desktop-locals-to-save): Add buffer-file-coding-system.
24329 (desktop-buffer-file): Use saved buffer-file-coding-system
24330 for file reading. Set auto-insert to nil to prevent automatic
24331 insertion into restored empty files.
24332
243332003-11-04 Luc Teirlinck <teirllm@auburn.edu>
24334
24335 * files.el (risky-local-variable-p): Make second argument optional.
24336
243372003-11-03 Stefan Monnier <monnier@iro.umontreal.ca>
24338
24339 * subr.el (add-hook): Fix last change.
24340
243412003-11-03 Eli Zaretskii <eliz@gnu.org>
24342
24343 * mail/rmail.el (rmail-convert-to-babyl-format):
24344 If base64-decode-region signals an error, catch it and silently
24345 ignore it.
24346
243472003-11-01 Mark A. Hershberger <mah@everybody.org>
24348
24349 * xml.el (xml-parse-region): Allow comments to appear after the
24350 topmost element has closed.
24351 (xml-ns-parse-ns-attrs, xml-ns-expand-el)
24352 (xml-ns-expand-attr): New functions to do namespace handling.
24353 (xml-intern-attrlist): Back-compatible handling of attribute names.
24354 (xml-parse-tag): Move namespace handling to separate functions.
24355 Now produces elements in the form ((:ns . "element") (attr-list)
24356 children) instead of ('ns:element (attr-list) children).
24357 (xml-parse-attlist): Fix attribute parsing.
24358 (xml-parse-dtd): Change parsing so that it produces strings
24359 instead of interned symbols.
24360
243612003-11-01 era@iki.fi <era@iki.fi> (tiny change)
24362
24363 * dired.el (dired-ls-sorting-switches): Doc fix.
24364
243652003-11-01 Oliver Scholz <epameinondas@gmx.de>
24366
24367 * emacs-lisp/rx.el (rx-or): Fix the case of
24368 "(rx (and ?a (or ?b ?c) ?d))".
24369
243702003-11-01 Christoph Wedler <wedler@users.sourceforge.net> (tiny change)
24371
24372 * textmodes/texinfmt.el (texinfo-pre-format-hook): New variable.
24373 (texinfo-format-region): Use it.
24374 (texinfo-format-buffer-1): Ditto.
24375
243762003-11-01 Alan Mackenzie <acm@muc.de>
24377
24378 Changes to allow scrolling whilst in isearch mode:
24379 * isearch.el (isearch-unread-key-sequence): New function,
24380 extracted from isearch-other-meta-char.
24381 (top level): (put 'foo 'isearch-scroll) on all Emacs's
24382 "scrollable" standard functions.
24383 (isearch-allow-scroll): New customizable variable.
24384 (isearch-string-out-of-window, isearch-back-into-window)
24385 (isearch-reread-key-sequence-naturally)
24386 (isearch-lookup-scroll-key): New functions.
24387 (isearch-other-meta-char): Doc string and functionality enhanced.
24388 Now accepts a prefix argument.
24389 (isearch-lazy-highlight-window-end): New variable.
24390 (isearch-lazy-highlight-new-loop): Pay attention to the window's
24391 end (thru isearch-lazy-highlight-window-end), not only its start.
24392
24393 * simple.el (overriding-map-is-bound, saved-overriding-map): New vars.
24394 (ensure-overriding-map-is-bound, restore-overriding-map): New funs.
24395 (universal-argument, universal-argument-more, negative-argument)
24396 (digit-argument, universal-argument-other-key): Minor changes.
24397
243982003-11-01 Alexander Pohoyda <alexander.pohoyda@gmx.net> (tiny change)
24399
24400 * mail/rmailsum.el (rmail-summary-goto-msg): Don't call itself
24401 recursively if the last message is deleted, thus avoiding an
24402 infinite loop.
24403
244042003-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
24405
24406 * textmodes/tex-mode.el (tex-compile-commands): Add `yap' and `ps2pdf'.
24407 (tex-main-file): Don't add .tex if the extension is already present.
24408 (tex-uptodate-p): Don't recurse indefinitely with symlinks.
24409
244102003-10-29 Lute Kamstra <lute@gnu.org>
24411
24412 * progmodes/octave-inf.el (inferior-octave-prompt):
24413 Recognize version number in prompt.
24414
244152003-10-28 Dave Love <fx@gnu.org>
24416
24417 * international/characters.el: Fix some Unicode ranges.
24418
244192003-10-28 Kenichi Handa <handa@m17n.org>
24420
24421 * disp-table.el (standard-display-8bit)
24422 (standard-display-default, standard-display-ascii)
24423 (standard-display-g1, standard-display-graphic)
24424 (standard-display-underline): Assure that standard-display-table
24425 is a display table.
24426
244272003-10-27 Stefan Monnier <monnier@iro.umontreal.ca>
24428
24429 * simple.el (reindent-then-newline-and-indent): Delete space *after*
24430 reindenting the first line.
24431
244322003-10-25 Per Abrahamsen <abraham@dina.kvl.dk>
24433
24434 * wid-edit.el (widget-default-delete): Always delete child widgets.
24435
244362003-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
24437
24438 * newcomment.el (comment-indent): Don't call indent-according-to-mode
24439 if the line has code.
24440 Don't try to line up with something that's too far left.
24441
24442 * progmodes/octave-mod.el (octave-comment-start): Simplify.
24443 (octave-mode-syntax-table): Add % as a comment starter.
24444 (octave-point): Remove.
24445 (octave-in-comment-p, octave-in-string-p)
24446 (octave-not-in-string-or-comment-p, calculate-octave-indent)
24447 (octave-blink-matching-block-open, octave-auto-fill):
24448 Use line-(beginning|end)-position instead.
24449
244502003-10-23 Francesco Potort,Al(B <pot@gnu.org>
24451
24452 * emacs-lisp/authors.el (authors-aliases): Add correct realname
24453 for Francesco Potort,Al(B.
24454
244552003-10-23 Dave Love <fx@gnu.org>
24456
24457 * international/mule-cmds.el (locale-charset-to-coding-system):
24458 Don't rely on nil being a coding system.
24459
24460 * mail/mail-extr.el (mail-extr-ignore-single-names): Add :version.
24461 (mail-extr-address-syntax-table): Remove non-ASCII unibyte chars.
24462 (mail-extr-voodoo): Use char classes in regexps (for non-ASCII).
24463
244642003-10-21 Nick Roberts <nick@nick.uklinux.net>
24465
24466 * gdb-ui.el (gdb-current-language): New variable.
24467 (gdb-update-flag): Remove variable.
24468 (gud-watch, gdb-frame-handler): Adapt for other languages (Fortran).
24469 (gdb-take-last-elt): Remove function.
24470 (gdb-dequeue-input): Avoid recursion by not using gdb-take-last-elt.
24471 (gdb-post-prompt): Check for variable object changes here.
24472
24473 * progmodes/gud.el (gud-speedbar-buttons): Check for variable
24474 object changes in gdb-ui.el.
24475
244762003-10-21 Richard M. Stallman <rms@gnu.org>
24477
24478 * emacs-lisp/edebug.el (edebug-display-freq-count): Doc fix.
24479
24480 * ls-lisp.el (ls-lisp-insert-directory): Arg is now wildcard-regexp.
24481 Don't check for foo*/ wildcard form here.
24482 (insert-directory): Recognize foo*/ as a wildcard.
24483 Separate wildcard-regexp variable from the arg, wildcard.
24484
24485 * subr.el (add-hook): Correctly detect when make-local-hook was used.
24486 (remove-hook): Correctly handle strange cases about local hooks.
24487
244882003-10-21 David Ponce <david@dponce.com>
24489
24490 * ruler-mode.el (ruler-mode-left-fringe-cols): Add new optional
24491 argument REAL, to return a real number instead of a rounded
24492 integer value. Define as inline function.
24493 (ruler-mode-right-fringe-cols): Likewise.
24494 (ruler-mode-scroll-bar-cols): New function.
24495 (ruler-mode-left-scroll-bar-cols): Use it. Define as macro.
24496 (ruler-mode-right-scroll-bar-cols): Likewise.
24497 (ruler-mode-space): New function.
24498 (ruler-mode-ruler): Use it. Handle variations of fringe style,
24499 scroll bar mode and margins in a more robust way.
24500
245012003-10-21 Christoph Wedler <Christoph.Wedler@sap.com>
24502
24503 * progmodes/antlr-mode.el: Make major mode work with cc-mode-5.30+.
24504 (antlr-c-init-language-vars): New function.
24505 (antlr-mode): Use it with cc-mode before v5.29.
24506 (antlr-c-common-init): Don't set some local vars here.
24507 (antlr-mode): Set them here.
24508 (antlr-c-forward-sws): New function alias.
24509 (antlr-mode): Redefine with cc-mode before v5.30.
24510 (antlr-skip-sexps): Use it.
24511 (antlr-skip-exception-part): Ditto.
24512 (antlr-skip-file-prelude): Ditto.
24513 (antlr-outside-rule-p): Ditto.
24514 (antlr-end-of-body): Ditto.
24515 (antlr-option-kind): Ditto.
24516 (antlr-insert-option-area): Ditto.
24517 (antlr-file-dependencies): Ditto.
24518
245192003-10-21 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
24520
24521 * textmodes/bibtex.el (bibtex-move-outside-of-entry):
24522 Move backward only if point was not inside an entry.
24523
245242003-10-21 Richard M. Stallman <rms@gnu.org>
24525
24526 * progmodes/compile.el (compile-auto-highlight): Undo July 7 change.
24527
245282003-10-21 Juri Linkov <juri@jurta.org>
24529
24530 * compare-w.el: Automatically skip non-matching text to resync.
24531 (compare-windows-whitespace): Doc fix.
24532 (compare-windows-sync, compare-windows-sync-string-size)
24533 (compare-windows-recenter, compare-ignore-whitespace)
24534 (compare-windows-highlight, compare-windows-face): New variables.
24535 (compare-windows): Use compare-windows-sync.
24536 (compare-windows-highlight, compare-windows-dehighlight)
24537 (compare-windows-sync-regexp)
24538 (compare-windows-sync-default-function): New functions.
24539
245402003-10-21 Juri Linkov <juri@jurta.org>
24541
24542 * diff.el (diff-parse-differences): Don't visit the files now;
24543 instead, just record the error locus.
24544
245452003-10-21 Dave Love <fx@gnu.org>
24546
24547 * progmodes/cfengine.el: New file.
24548
245492003-10-20 Stefan Monnier <monnier@iro.umontreal.ca>
24550
24551 * complete.el (PC-do-completion): Do not forget to use `pred' as the
24552 default-directory when completing file names.
24553
245542003-10-20 Luc Teirlinck <teirllm@auburn.edu>
24555
24556 * help-mode.el (help-make-xrefs): Make sure that if a symbol is
24557 followed by the word `face', it gets treated as a face, even if
24558 it is also defined as a variable or a function.
24559
245602003-10-20 Dave Love <fx@gnu.org>
24561
24562 * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
24563 Avoid incf in macro expansion.
24564
245652003-10-20 John Paul Wallington <jpw@gnu.org>
24566
24567 * emacs-lisp/elint.el (elint-check-defcustom-form): Don't use
24568 `evenp' so we don't implicitly require cl library at runtime.
24569
245702003-10-18 Luc Teirlinck <teirllm@auburn.edu>
24571
24572 * help-mode.el (help-xref-symbol-regexp): Treat newlines as whitespace.
24573 (help-make-xrefs): Only make cross-references for faces if
24574 preceded or followed by the word `face'. Do not make a
24575 cross-reference for variables without variable documentation,
24576 unless preceded by the word `variable' or `option'. Update doc
24577 string accordingly.
24578
245792003-10-18 Thien-Thi Nguyen <ttn@gnu.org>
24580
24581 * progmodes/hideshow.el: Rewrite one-armed `if'
24582 constructs using either `when' or `unless'.
24583 (hs-grok-mode-type): Elide superfluous `progn'; nfc.
24584
245852003-10-16 Nick Roberts <nick@nick.uklinux.net>
24586
24587 * gdb-ui.el (breakpoint-xpm-data, breakpoint-enabled-pbm-data)
24588 (breakpoint-disabled-pbm-data): Make breakpoint icons 10x10
24589 instead of 12x12.
24590
245912003-10-16 Eli Zaretskii <eliz@gnu.org>
24592
24593 * mail/rmail.el (rmail-convert-to-babyl-format): Display a
24594 message while converting to Babyl.
24595
245962003-10-16 Vadim Nasardinov <vadimn@redhat.com> (tiny change)
24597
24598 * allout.el (allout-mode): Doc fix.
24599
246002003-10-16 Lute Kamstra <lute@gnu.org>
24601
24602 * subr.el (force-mode-line-update): Fix docstring.
24603
246042003-10-14 Dave Love <fx@gnu.org>
24605
24606 * international/mule-cmds.el (find-multibyte-characters): Doc fix.
24607 (default-input-method): Add :link, improve :type.
24608 (locale-charset-language-names): Fix utf-8 pattern.
24609 (locale-charset-match-p, locale-charset-alist)
24610 (locale-charset-to-coding-system): New.
24611 (set-locale-environment): Deal with codeset part of locale specs.
24612
246132003-10-14 Lute Kamstra <lute@gnu.org>
24614
24615 * fringe.el (fringe-mode): Use active voice in docstring.
24616 (set-fringe-style): Ditto.
24617
246182003-10-13 Lute Kamstra <lute@gnu.org>
24619
24620 * fringe.el (fringe-mode): Fix docstring.
24621 (set-fringe-style): Ditto.
24622
246232003-10-12 Michael Kifer <kifer@cs.stonybrook.edu>
24624
24625 * ediff-mult.el (ediff-filegroup-action):
24626 Use ediff-default-filtering-regexp.
24627
24628 * ediff-util.el (ediff-recenter): Don't call
24629 ediff-restore-highlighting twice.
24630 (ediff-select-difference): Set current difference.
24631 (ediff-unselect-and-select-difference): Add comment.
24632
24633 * ediff.el (ediff-directories,ediff-directory-revisions)
24634 (ediff-directories3,ediff-merge-directories)
24635 (ediff-merge-directories-with-ancestor)
24636 (ediff-merge-directory-revisions)
24637 (ediff-merge-directory-revisions-with-ancestor):
24638 Use ediff-default-filtering-regexp.
24639
246402003-10-12 Andreas Schwab <schwab@suse.de>
24641
24642 * international/mule-cmds.el (locale-charset-language-names):
24643 Simplify regex by removing unused grouping.
24644
246452003-10-10 Dave Love <fx@gnu.org>
24646
24647 * bindings.el: Don't bind stop.
24648
246492003-10-08 Miles Bader <miles@gnu.org>
24650
24651 * gdb-ui.el (gdb-info-frames-custom): Use proper :inverse-video
24652 face instead of attempting to emulate it.
24653
246542003-10-07 Kenichi Handa <handa@m17n.org>
24655
24656 * international/mule-diag.el (list-coding-systems-1): List coding
24657 systems that are loaded automatically.
24658
24659 * international/code-pages.el (iso-8859-11): Add autoload cookie.
24660
24661 * international/mule.el (autoload-coding-system): New function.
24662
246632003-10-07 Andreas Schwab <schwab@suse.de>
24664
24665 * log-edit.el (log-edit-changelog-entries): Prefer local value of
24666 change-log-default-name in the buffer visiting the file.
24667
246682003-10-06 Dave Love <fx@gnu.org>
24669
24670 * files.el (find-file-hook): Customize.
24671 (auto-mode-alist): Add .stk, .ss, .sch, .orig.
24672
24673 * bindings.el (completion-ignored-extensions): Remove .log.
24674 (global-map): Add again, open, stop keys.
24675
246762003-10-05 Richard M. Stallman <rms@gnu.org>
24677
24678 * progmodes/sh-script.el (sh-feature): Handle sh-modify like sh-append.
24679 (sh-for, sh-indexed-loop, sh-function, sh-while, sh-while-getopts):
24680 Use sh-modify directly.
24681 (sh-select): Use sh-append, not eval.
24682
24683 * mail/emacsbug.el (report-emacs-bug): Fix previous change.
24684
24685 * info.el (Info-following-node-name): New function.
24686
24687 * loadhist.el (unload-feature-special-hooks):
24688 Rename from loadhist-hook-functions.
24689 (loadhist-hook-functions): Now an alias.
24690
246912003-10-04 Eli Zaretskii <eliz@gnu.org>
24692
24693 * ldefs-boot.el: Renamed from loaddefs-boot.el, to prevent
24694 file-name clashes on 8+3 filesystems.
24695
24696 * Makefile.in (DONTCOMPILE, bootstrap-clean):
24697 Rename loaddefs-boot.el to ldefs-boot.el
24698
24699 * makefile.w32-in (DONTCOMPILE, bootstrap-clean-CMD)
24700 (bootstrap-clean-SH): Rename loaddefs-boot.el to ldefs-boot.el
24701
247022003-10-03 Lute Kamstra <lute@gnu.org>
24703
24704 * info.el (Info-mode): Revert previous change.
24705 (Info-escape-percent): New function.
24706 (Info-fontify-node): Use it.
24707
247082003-10-02 Andreas Schwab <schwab@suse.de>
24709
24710 * loaddefs-boot.el: Regenerated.
24711
247122003-10-01 Rajesh Vaidheeswarran <rv@gnu.org>
24713
24714 * ffap.el: Remove defadvice related code from CVS since `complete'
24715 provides a `PC-completion-as-file-name-predicate' variable that
24716 ffap can override.
24717
247182003-10-02 Kenichi Handa <handa@m17n.org>
24719
24720 * international/utf-8.el (ccl-decode-mule-utf-8):
24721 Lookup utf-subst-table-for-decode even for U+E000..U+FFFF.
24722
24723 * international/subst-jis.el: Include U+FF00..U+FFEF in decode table.
24724 * international/subst-big5.el: Likewise.
24725 * international/subst-gb2312.el: Likewise.
24726 * international/subst-ksc.el: Likewise.
24727
247282003-10-01 Glenn Morris <gmorris@ast.cam.ac.uk>
24729
24730 * calendar/calendar.el (increment-calendar-month)
24731 (calendar-leap-year-p, calendar-absolute-from-gregorian)
24732 (generate-calendar, calendar-read-date, calendar-interval)
24733 (calendar-day-of-week): Handle years BC.
24734 (generate-calendar-month, calendar-gregorian-from-absolute): Doc fix.
24735
247362003-10-01 Dave Love <fx@gnu.org>
24737
24738 * language/cyrillic.el (cp1251): Alias for windows-1251.
24739
24740 * vc-cvs.el (vc-cvs-parse-entry): Revert last change to allow
24741 bootstrap.
24742
247432003-10-01 Lute Kamstra <lute@gnu.org>
24744
24745 * files.el: Fix typo.
24746 * imenu.el (imenu--generic-function): Docstring fix.
24747
247482003-09-30 Richard M. Stallman <rms@gnu.org>
24749
24750 * dired.el (dired-mode): Handle dired-directory as a list.
24751
247522003-09-30 Nick Roberts <nick@nick.uklinux.net>
24753
24754 * toolbar/gud-watch.xpm, toolbar/gud-watch.pbm: Add.
24755
24756 * toolbar/gud-display.xpm, toolbar/gud-display.pbm: Remove.
24757
24758 * progmodes/gud.el (gud-menu-map, gud-tool-bar-map):
24759 Replace gud-display with gud-watch.
24760 (gud-speedbar-buttons): Add stuff for watching expressions
24761 in the speedbar when using M-x gdba. Use dolist on old part
24762 of this function.
24763
24764 * gdb-ui.el (gdb-var-list, gdb-var-changed, gdb-update-flag)
24765 (gdb-update-flag): New variables.
24766 (gdb-var-update, gdb-var-update-handler,gdb-var-delete)
24767 (gdb-speedbar-expand-node, gdb-var-evaluate-expression-handler)
24768 (gud-watch, gdb-var-create-handler) : New functions.
24769 (gdb-var-list-children, gdb-var-list-children-handler)
24770 (gdb-var-create-regexp, gdb-var-update-regexp)
24771 (gdb-var-list-children-regexp): New constants.
24772 (gud-gdba-command-name): Don't specify -noasync so that GDB/MI works.
24773 (gdb-annotation-rules): Reduce annotation set (level 3).
24774 (gdb-pre-prompt, gdb-prompt): Call handler in gdb-prompt.
24775 (gdb-post-prompt): Don't update GDB buffers every time speedbar
24776 updates.
24777 (gdb-window-height, gdb-window-width, gdb-display-in-progress)
24778 (gdb-expression-buffer-name, gdb-display-number, gdb-point)
24779 (gdb-dive-display-number, gdb-nesting-level, gdb-expression)
24780 (gdb-annotation-arg, gdb-dive-map, gdb-values, gdb-array-start)
24781 (gdb-array-stop, gdb-array-slice-map, gdb-display-string)
24782 (gdb-array-size, gdb-display-mode-map, gdb-expressions-mode-map):
24783 (gdb-expressions-mode-menu, gdb-dive): Remove variables.
24784 (gud-display, gud-display1)
24785 (gdb-display-begin,gdb-display-number-end, gdb-delete-line)
24786 (gdb-display-end, gdb-display-go-back, gdb-array-section-end)
24787 (gdb-field-begin, gdb-field-end, gdb-elt,gdb-field-format-begin)
24788 (gdb-field-format-end, gdb-dive, gdb-dive-new-frame)
24789 (gdb-insert-field, gdb-array-format, gdb-mouse-array-slice)
24790 (gdb-array-slice, gdb-array-format1, gdb-info-display-custom)
24791 (gdb-delete-frames, gdb-display-mode, gdb-display-buffer-name)
24792 (gdb-display-display-buffer, gdb-toggle-display)
24793 (gdb-delete-display, gdb-expressions-popup-menu)
24794 (gdb-expressions-mode, gdb-array-visualise): Remove functions.
24795 (gdb-setup-windows, gdb-reset, gdb-source-info): Remove references
24796 to display buffer.
24797
247982003-09-30 Richard M. Stallman <rms@gnu.org>
24799
24800 * progmodes/ada-mode.el (ada-mode): Don't use advice.
24801 Instead, set which-func-functions.
24802
24803 * progmodes/which-func.el (which-func-modes): Add ada-mode.
24804 (which-func-functions): New variable.
24805 (which-function): Use that.
24806
24807 * info.el (Info-mode): Double each `%' in header line.
24808
24809 * emacs-lisp/lisp-mnt.el (lm-with-file):
24810 When FILE is nil, run BODY in current buffer.
24811
24812 * mail/emacsbug.el (report-emacs-bug): Mention major and minor modes.
24813
24814 * help.el (describe-mode): Start with a brief list of minor modes.
24815 Find them thru minor-mode-list so as to find them all.
24816 Show them in alphabetical order.
24817
24818 * mail/sendmail.el (mail-aliases): Doc fix.
24819
24820 * progmodes/sh-script.el (sh-mode-syntax-table): Add defvar.
24821
248222003-09-30 Alexander Pohoyda <alexander.pohoyda@gmx.net> (tiny change)
24823
24824 * mail/rmailsum.el (rmail-make-summary-line-1):
24825 Change comma after last label to a space.
24826 (rmail-summary-font-lock-keywords): Adapt to that change.
24827
248282003-09-30 Thien-Thi Nguyen <ttn@gnu.org>
24829
24830 * progmodes/scheme.el (scheme-mode-variables): When setting
24831 `font-lock-defaults', also specify that "#" should
24832 be interpreted with `word' syntax.
24833 (scheme-font-lock-keywords-2): Also interpret "#:foo" as keyword.
24834
248352003-09-30 Lars Hansen <larsh@math.ku.dk>
24836
24837 * desktop.el: A lot of comments updated.
24838 (desktop-save-mode): Minor mode introduced.
24839 (desktop-enable, desktop-clear-preserve-buffers): Make vars obsolete.
24840 (desktop-load-default): Function made obsolete.
24841 (desktop-locals-to-save): Variable made customizable.
24842 (desktop-read): Optional parameter `dirname' added.
24843 (desktop-change-dir, desktop-revert): Parameter `dirname' in
24844 `desktop-read' used.
24845 (desktop-save-in-load-dir): Rename to `desktop-save-in-desktop-dir'.
24846
248472003-09-29 Rajesh Vaidheeswarran <rv@gnu.org>
24848
24849 * whitespace.el (whitespace-clean-msg): Add user customizable message
24850 for displaying ``clean'' output.
24851 (whitespace-buffer): Use `whitespace-clean-msg'.
24852 (whitespace-global-mode): Fix typo.
24853
248542003-09-29 Thien-Thi Nguyen <ttn@gnu.org>
24855
24856 * pcvs.el (cvs-mode-unmark-up): Move to goal column when done.
24857
248582003-09-29 Lute Kamstra <lute@gnu.org>
24859
24860 * bindings.el (mode-line-modes): Remove superfluous :propertize
24861 construct in initialization.
24862 (mode-line-position): Change cons cell into proper list in
24863 initialization.
24864
248652003-09-29 SAITO Takuya <tabmore@rivo.mediatti.net> (tiny change)
24866
24867 * international/mule.el (decode-coding-inserted-region): Use car
24868 of the return value of find-operation-coding-system.
24869
248702003-09-29 Kenichi Handa <handa@m17n.org>
24871
24872 * descr-text.el (describe-char): Fix previous change.
24873
248742003-09-28 Kenichi Handa <handa@m17n.org>
24875
24876 * descr-text.el (describe-char-display): New function.
24877 (describe-char): Pay attention to display table on describing how
24878 a character is displayed.
24879
24880 * international/mule-cmds.el (encoded-string-description):
24881 Prepend "0x" to each encoded byte.
24882
248832003-09-28 Andreas Schwab <schwab@suse.de>
24884
24885 * find-file.el (ff-special-constructs): Add autoload cookie.
24886
248872003-09-28 Kevin Ryde <user42@zip.com.au>
24888
24889 * info.el (Info-find-index-name): Remove any "<n>" suffixes which
24890 makeinfo appends to duplicate index entries.
24891
248922003-09-28 Eli Zaretskii <eliz@gnu.org>
24893
24894 * dired-x.el (dired-clean-tex): Doc fix.
24895
24896 * language/chinese.el ("Chinese-GB", "Chinese-BIG5"): Set up for
24897 using a Chinese tutorial.
24898
248992003-09-28 Jesper Harder <harder@ifa.au.dk> (tiny change)
24900
24901 * mail/smtpmail.el (smtpmail-via-smtp): Don't insert a space
24902 between "MAIL FROM:" and "RCPT TO:" and the following address.
24903
249042003-09-28 Jesper Harder <harder@ifa.au.dk> (tiny change)
24905
24906 * textmodes/text-mode.el (paragraph-indent-minor-mode): Doc fix.
24907
249082003-09-28 David Ponce <david@dponce.com>
24909
24910 * recentf.el (recentf-initialize-file-name-history): New defcustom.
24911 (recentf-load-list): When `recentf-initialize-file-name-history'
24912 is non-nil, initialize an empty `file-name-history' with the
24913 recent list.
24914
249152003-09-28 Evgeni Dobrev <evgeni_dobrev@developer.bg> (tiny change)
24916
24917 * man.el (Man-default-man-entry): Remove the leading `*' from the
24918 word at point.
24919
249202003-09-26 Lute Kamstra <lute@gnu.org>
24921
24922 * bindings.el (mode-line-position): Mention size indication in
24923 docstring.
24924
249252003-09-26 Andre Spiegel <spiegel@gnu.org>
24926
24927 * calendar/parse-time.el (parse-time-string): Add autoload cookie.
24928
24929 * vc-cvs.el (vc-cvs-parse-entry): Don't require parse-time,
24930 because it's autoloaded now.
24931
249322003-09-25 Glenn Morris <gmorris@ast.cam.ac.uk>
24933
24934 * progmodes/sh-script.el (sh-builtins): Add bash `shopt' builtin.
24935 (sh-font-lock-keywords, sh-feature): Fix previous change of
24936 sh-feature to avoid infloop with sh-font-lock-keywords.
24937
249382003-09-25 Kim F. Storm <storm@cua.dk>
24939
24940 * frame.el (frame-current-scroll-bars): New defun.
24941
24942 * window.el (window-current-scroll-bars): New defun.
24943
249442003-09-24 Martin Stjernholm <bug-cc-mode@gnu.org>
24945
24946 * progmodes/cc-engine.el (c-parse-state): Fix bug that could
24947 cause errors when the state cache contains info on parts that have
24948 been narrowed out.
24949
249502003-09-24 Martin Stjernholm <bug-cc-mode@gnu.org>
24951
24952 * progmodes/cc-vars.el (c-comment-prefix-regexp): Document that
24953 `c-setup-paragraph-variables' has to be used when this variable is
24954 changed; it doesn't work to reinitialize the mode since that
24955 typically clobbers the variable.
24956
24957 * progmodes/cc-styles.el (c-setup-paragraph-variables):
24958 Make it interactive.
24959
249602003-09-24 Martin Stjernholm <bug-cc-mode@gnu.org>
24961
24962 * progmodes/cc-fonts.el (c-font-lock-declarations):
24963 Fix recognition of constructors and destructors for classes whose
24964 names are matched by `*-font-lock-extra-types'.
24965
24966 * progmodes/cc-langs.el (c-type-list-kwds): If "operator" is
24967 followed by an identifier in C++ then it's a type.
24968
249692003-09-24 Martin Stjernholm <bug-cc-mode@gnu.org>
24970
24971 * progmodes/cc-fonts.el (c-font-lock-invalid-string): Fix eob
24972 problem that primarily affected XEmacs. Don't use faces to find
24973 unterminated strings since Emacs and XEmacs fontify strings
24974 differently - this function should now work better in XEmacs.
24975
249762003-09-24 Martin Stjernholm <bug-cc-mode@gnu.org>
24977
24978 * progmodes/cc-cmds.el (c-electric-brace): Fix a bug in the
24979 `expand-abbrev' workaround which caused braces to misbehave inside
24980 macros.
24981
24982 * progmodes/cc-engine.el (c-forward-keyword-clause): Fix error
24983 handling. This bug could cause interactive font locking to bail out.
24984
249852003-09-24 Martin Stjernholm <bug-cc-mode@gnu.org>
24986
24987 * progmodes/cc-engine.el (c-just-after-func-arglist-p):
24988 Handle paren-style types in Pike. Also fixed some cases of
24989 insufficient handling of unbalanced parens.
24990
249912003-09-24 Rajesh Vaidheeswarran <rv@gnu.org>
24992
24993 * ffap.el (ffap-shell-prompt-regexp): Add regexp to identify
24994 common shell prompts that are not common filename or URL characters.
24995 (ffap-file-at-point): Use the new regexp to strip the prompts from
24996 the file names. This is an issue mostly for user prompts that
24997 don't have a trailing space and find-file-at-point is invoked from
24998 within a shell inside Emacs.
24999
250002003-09-24 Andre Spiegel <spiegel@gnu.org>
25001
25002 * vc-cvs.el (vc-cvs-parse-entry): Restore the code to compare time
25003 stamps numerically, rather than textually.
25004
250052003-09-24 Kenichi Handa <handa@m17n.org>
25006
25007 * language/devan-util.el (devanagari-post-read-conversion):
25008 * language/mlm-util.el (malayalam-post-read-conversion):
25009 * language/tml-util.el (tamil-post-read-conversion):
25010 Add autoload cookie.
25011
25012 * international/utf-8.el (utf-8-post-read-conversion):
25013 Call post-read-conversion functions for Devanagari, Malayalam,
25014 and Tamil.
25015
250162003-09-23 Dave Love <fx@gnu.org>
25017
25018 * Makefile.in (bootstrap-clean): Fix misplaced `!'.
25019
250202003-09-22 Nick Roberts <nick@nick.uklinux.net>
25021
25022 * progmodes/gud.el (perldb): Add gud-until to list of commands.
25023 Update gud-remove.
25024
250252003-09-22 Richard M. Stallman <rms@gnu.org>
25026
25027 * progmodes/sh-script.el (sh-mode-default-syntax-table):
25028 Rename from sh-mode-syntax-table. Call sh-mode-syntax-table directly.
25029 (sh-mode-syntax-table-input): New variable.
25030 (sh-require-final-newline): Don't use eval.
25031 (sh-builtins, sh-leading-keywords, sh-other-keywords)
25032 (sh-variables, sh-font-lock-keywords): Don't use eval.
25033 (sh-set-shell): When setting require-final-newline,
25034 treat value = `require-final-newline' as don't change it.
25035 Set sh-mode-syntax-table locally based on
25036 sh-mode-syntax-table-input and sh-mode-default-syntax-table.
25037
25038 * progmodes/compile.el (compile-internal):
25039 Call compilation-set-window-height before setting window start.
25040
250412003-09-22 Greg Hill <ghill@synergymicro.com> (tiny change)
25042
25043 * emacs-lisp/bytecomp.el (byte-compile-log-file):
25044 Clear out byte-compile-last-warned-form.
25045
250462003-09-22 Richard M. Stallman <rms@gnu.org>
25047
25048 * woman.el (woman-file-name, woman-follow-word):
25049 If current-word returns nil, use "".
25050
25051 * simple.el (eval-expression): Bind standard-output in to-buffer case.
25052
250532003-09-22 Richard M. Stallman <rms@gnu.org>
25054
25055 * emacs-lisp/lisp-mnt.el (lm-with-file):
25056 Don't visit the file, just use insert-file-contents in temp buffer.
25057
250582003-09-22 Jari Aalto <jari.aalto@poboxes.com>
25059
25060 * emacs-lisp/lisp-mnt.el (lm-get-header-re):
25061 Add surrounding \\( and \\) around the header, as in
25062 for lm-history-header 'Change Log\\|History'.
25063
250642003-09-22 John Paul Wallington <jpw@gnu.org>
25065
25066 * progmodes/ld-script.el: Add Commentary section,
25067 minor cleanup of file header.
25068 (ld-script-font-lock-keywords): Doc fix.
25069 (toplevel): Provide `ld-script' feature.
25070
250712003-09-21 Kim F. Storm <storm@cua.dk>
25072
25073 * scroll-bar.el (set-scroll-bar-mode): Initialize to
25074 new built-in variable default-frame-scroll-bars.
25075 (scroll-bar-mode): Use default-frame-scroll-bars when enabling
25076 scroll-bar-mode; notably, use it instead of t when we toggle
25077 scroll-bars on.
25078 (toggle-scroll-bar): Use default-frame-scroll-bars.
25079
250802003-09-19 Masatake YAMATO <jet@gyve.org>
25081
25082 * pcvs.el (cvs-do-removal): Change the prompt depending on
25083 `filter' value.
25084
250852003-09-19 Glenn Morris <gmorris@ast.cam.ac.uk>
25086
25087 * startup.el (command-line-1): Stop startup-echo-area-message
25088 being hidden by "Loading image..." message.
25089 (use-fancy-splash-screens-p, display-splash-screen):
25090 Move display-graphic-p test from latter to former.
25091
25092 * progmodes/sh-script.el (sh-font-lock-keywords):
25093 Highlight escaped EOLs differently from other backslash constructs.
25094
250952003-09-19 Richard M. Stallman <rms@gnu.org>
25096
25097 * emacs-lisp/edebug.el (edebug-var-status, edebug-restore-status):
25098 New functions.
25099 (edebug-enter, edebug-outside-excursion): Use them.
25100
25101 * emacs-lisp/bytecomp.el (byte-compile-warning-prefix):
25102 Fix the condition for whether to print "In WHERE".
25103
251042003-09-19 Jari Aalto <jari.aalto@poboxes.com>
25105
25106 * finder.el (finder-mode-hook): New variable.
25107 (finder-mode): Run hook finder-mode-hook
25108
251092003-09-18 Masatake YAMATO <jet@gyve.org>
25110
25111 * progmodes/ebrowse.el: Fix broken magic autoload comments.
25112
251132003-09-17 Mario Lang <mlang@delysid.org>
25114
25115 * progmodes/gud.el (perldb): Change gud-print from just "%e" to
25116 "p %e" to actually print the value in the GUD buffer.
25117
251182003-09-16 Miles Bader <miles@gnu.ai.mit.edu>
25119
25120 From David Ponce <david.ponce@wanadoo.fr>:
25121 * makefile.w32-in (DONTCOMPILE): Add loaddefs-boot.el.
25122 (bootstrap-clean-CMD, bootstrap-clean-SH): Recreate loaddefs.el
25123 from loaddefs-boot.el if necessary.
25124
251252003-09-15 Zoltan Kemenczy <kemenczy@rogers.com>
25126
25127 * progmodes/gud.el (gud-find-class): Make jdb work again since
25128 cc-mode changed the syntactic information.
25129
251302003-09-15 David Ponce <david@dponce.com>
25131
25132 * recentf.el: (recentf-exclude): Accept predicates too.
25133 (recentf-file-readable-p): New function.
25134 (recentf-include-p): Handle predicates in recentf-exclude.
25135 (recentf-add-file): Doc fix. Use recentf-file-readable-p.
25136 (recentf-cleanup): Likewise.
25137 (recentf-save-list): Use write-file to handle backup of
25138 recentf-save-file.
25139
251402003-09-15 Miles Bader <miles@gnu.ai.mit.edu>
25141
25142 * loaddefs-boot.el: Renamed from `loaddefs.el'
25143 * Makefile.in (DONTCOMPILE): Add loaddefs-boot.el.
25144 (bootstrap-clean): Recreate loaddefs.el from loaddefs-boot.el if
25145 necessary.
25146
251472003-09-13 Thien-Thi Nguyen <ttn@gnu.org>
25148
25149 * electric.el (Electric-pop-up-window): For the `one-window' case,
25150 no longer disconcertingly move point in the original buffer.
25151
251522003-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
25153
25154 * emacs-lisp/tq.el (tq-create): Fix mixed up unquote style.
25155
251562003-09-12 Eric Hanchrow <offby1@blarg.net> (tiny change)
25157
25158 * dired.el (dired-mode-map): Fix typo.
25159
251602003-09-11 Richard M. Stallman <rms@gnu.org>
25161
25162 * dired.el (dired-mode-map): Bind M-g to dired-goto-file.
25163
251642003-09-11 Paul Pogonyshev <pogonyshev@gmx.net> (tiny change)
25165
25166 * window.el (kill-buffer-and-window): Remove `yes-or-no-p' so that
25167 the function is less noisy. Now only `kill-buffer' can ask questions.
25168
251692003-09-10 Mario Lang <mlang@delysid.org>
25170
25171 * battery.el: Update Commentary and Copyright.
25172 (battery-linux-proc-acpi): Fix a bug in %b which made "!" never
25173 appear due to wrong ordering of the expressions in `or'.
25174
251752003-09-09 Lute Kamstra <lute@gnu.org>
25176
25177 * misc.el (upcase-char): Fix docstring.
25178 (zap-up-to-char): New command.
25179
251802003-09-08 David Ponce <david@dponce.com>
25181
25182 Ensure that recentf correctly updates the menu bar.
25183 * recentf.el (recentf-menu-path,recentf-menu-before): Doc fix.
25184 (recentf-menu-bar): New function.
25185 (recentf-clear-data): Use it
25186 (recentf-update-menu): Likewise. Use easy-menu-add-item instead
25187 of easy-menu-change.
25188
251892003-09-08 Lute Kamstra <lute@gnu.org>
25190
25191 * simple.el (size-indication-mode): New.
25192 * bindings.el (mode-line-position): Add buffer size indicator.
25193
251942003-09-04 Mario Lang <mlang@delysid.org>
25195
25196 * battery.el (battery-linux-proc-acpi): New function.
25197 (battery-status-function): Modify default value calculation to also
25198 check for availability of ACPI.
25199 (battery-echo-area-format): Ditto.
25200 (battery-mode-line-format): Ditto.
25201
252022003-09-06 Dave Love <fx@gnu.org>
25203
25204 * ielm.el (ielm-mode-hook): Add :options.
25205
25206 * emacs-lisp/eldoc.el (eldoc-print-current-symbol-info-function): New.
25207 (eldoc-print-current-symbol-info): Use it.
25208
252092003-09-04 Nick Roberts <nick@nick.uklinux.net>
25210
25211 * gdb-ui.el (gud-display1): Use gud-call to prevent extra prompt
25212 being displayed in GUD buffer.
25213 (gdb-idle-input-queue): Remove var. Use just one queue.
25214 (gdb-enqueue-idle-input,gdb-dequeue-idle-input):
25215 Remove functions. Use just one queue.
25216 (gdb-prompt, gdb-subprompt, def-gdb-auto-update-trigger)
25217 (gdb-invalidate-assembler, gdb-get-current-frame):
25218 Modify functions. Use just one queue.
25219
252202003-09-04 Dave Love <fx@gnu.org>
25221
25222 * cus-start.el: Add blink-cursor-alist.
25223
25224 * ruler-mode.el (ruler-mode-fill-column-char)
25225 (ruler-mode-current-column-char): Use char-displayable-p,
25226 not window-system.
25227
25228 * international/codepage.el ("mule-diag"): Add eval-after-load clause.
25229
25230 * language/european.el (windows-1252): Move from code-pages.
25231
25232 * language/cyrillic.el ("Windows-1251"): Delete.
25233 ("Bulgarian", "Belarusian"): Remove `features'.
25234 (windows-1251): Move from code-pages.
25235
25236 * international/mule-diag.el (non-iso-charset-alist):
25237 Remove `codepage' stuff.
25238 (print-designation, list-coding-systems-1): Output fixes.
25239
25240 * international/code-pages.el (cp-make-translation-table)
25241 (cp-valid-codes): Made defsubsts.
25242 (cp-fix-safe-chars): Delete.
25243 (mule-diag): Don't require.
25244 (windows-1251, windows-1252): Remove to cyrillic.el/european.el.
25245 (top-level): Check for defined coding system when defining
25246 cp... aliases. Change w32-add-charset-info test to avoid warning.
25247 (non-iso-charset-alist): Defvar when compiling.
25248 (cp-make-coding-system): Doc fix.
25249
252502003-09-02 Jason Rumney <jasonr@gnu.org>
25251
25252 * international/titdic-cnv.el (tsang-quick-converter): Fix broken
25253 line-ends from CVS before doing conversion.
25254
252552003-09-02 Glenn Morris <gmorris@ast.cam.ac.uk>
25256
25257 * calendar/diary-lib.el (diary-header-line-flag)
25258 (diary-header-line-format): New variables.
25259 (list-diary-entries): Use them to set header line in simple diary.
25260
25261 * progmodes/sh-script.el (sh-font-lock-keywords): Use something
25262 other than font-lock-string-face to highlight backslashes.
25263
252642003-09-01 Jason Rumney <jasonr@gnu.org>
25265
25266 * international/titdic-cnv.el (tit-read-key-value): Include \r in
25267 regexp.
25268
252692003-09-01 Dave Love <fx@gnu.org>
25270
25271 * mouse.el (mouse-popup-menubar, mouse-skip-word): Doc fix.
25272
25273 * menu-bar.el (menu-bar-showhide-menu): Amend date and time label
25274 and :help; also line and column numbers labels.
25275
25276 * international/mule-util.el (char-displayable-p): Move from
25277 latin1-disp, rename and autoload.
25278
25279 * international/latin1-disp.el (latin1-char-displayable-p):
25280 Now obsolete alias. Replace uses with char-displayable-p.
25281 (latin1-display-ucs-per-lynx): Fix last change.
25282
25283 * international/mule-cmds.el (standard-display-european-internal):
25284 Don't use char code for Latin-1 NBSP.
25285 <XFree86 4>: Unfrob NBSP display table. Set display table to use
25286 U+2018, U+2019 for `'.
25287 (select-safe-coding-system): Message fix.
25288
252892003-09-01 Kenichi Handa <handa@m17n.org>
25290
25291 * international/fontset.el (setup-default-fontset): For Thai
25292 font, specify "*" family.
25293
252942003-09-01 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change)
25295
25296 * progmodes/compile.el (previous-error): Accept a prefix
25297 argument, similarly to next-error.
25298
252992003-08-31 Masatake YAMATO <jet@gyve.org>
25300
25301 * pcvs.el (cvs-do-removal): Use = instead of eq to check
25302 the number of files. Bind the number of files to a local
25303 variable. Suggested by Kevin Rodgers <ihs_4664@yahoo.com>.
25304
253052003-08-30 Eli Zaretskii <eliz@gnu.org>
25306
25307 * vc-hooks.el (vc-make-version-backup): Fix the change made on
25308 2003-07-26: msdos-long-file-names is a function, not a variable.
25309
253102003-08-29 Richard M. Stallman <rms@gnu.org>
25311
25312 * mail/sendmail.el (sendmail-sync-aliases, mail-setup):
25313 Do nothing with mail-personal-alias-file if it is nil.
25314
25315 * mail/mailabbrev.el (mail-abbrevs-sync-aliases):
25316 Do nothing if mail-personal-alias-file is nil.
25317
25318 * term.el (term-exec-1): Bind coding-system-for-read.
25319
25320 * dired.el (dired-mouse-find-file-other-window):
25321 Use dired-view-command-alist here, as in dired-view-file.
25322 (dired-view-command-alist): Use %s to substitute file name.
25323 Handle .ps_pages, .eps, .jpg, .gif, .png.
25324
253252003-08-29 Paul Pogonyshev <pogonyshev@gmx.net> (tiny change)
25326
25327 * info.el (Info-mode-map): Bind S-tab and <backtab> to
25328 `Info-prev-reference', instead of M-tab.
25329
253302003-08-29 Martin Stjernholm <mast@lysator.liu.se>
25331
25332 * simple.el (blink-matching-open): Work correctly on chars that
25333 are designated as parens through the syntax-table text property.
25334
253352003-08-29 Thierry Emery <thierry.emery@club-internet.fr> (tiny change)
25336
25337 * kinsoku.el (kinsoku-longer, kinsoku-shorter): Do not choose a
25338 line break position in the middle of a non-kinsoku (e.g. latin)
25339 word, making it skip until either a space or a character with
25340 category "|".
25341 (kinsoku-longer): Test for end of buffer.
25342
253432003-08-28 Eli Zaretskii <eliz@gnu.org>
25344
25345 * mail/rmail.el (rmail-convert-to-babyl-format):
25346 Detect quoted-printable- and base64-encoded messages and decode them
25347 automatically. Set the message's encoding from the charset=
25348 header, if any. Decode base64-encoded messages in Mail format as well.
25349
253502003-08-26 Glenn Morris <gmorris@ast.cam.ac.uk>
25351
25352 * mail/smtpmail.el: Fix previous change.
25353 (smtpmail-send-queued-mail): Set smtpmail-mail-address before
25354 calling smtpmail-via-smtp.
25355 (smtpmail-via-smtp): Add fall-back values for envelope-from.
25356
253572003-08-26 John Paul Wallington <jpw@gnu.org>
25358
25359 * image.el (image-jpeg-p): Don't search beyond length of data.
25360
253612003-08-26 Martin Stjernholm <bug-cc-mode@gnu.org>
25362
25363 * progmodes/cc-cmds.el (c-electric-brace): Work around for a
25364 misfeature in `expand-abbrev' which caused electric keywords like
25365 "else" to disappear if an open brace was typed directly afterwards.
25366
253672003-08-26 Martin Stjernholm <bug-cc-mode@gnu.org>
25368
25369 * progmodes/cc-vars.el (c-extra-types-widget): The doc string is
25370 mandatory in `define-widget'.
25371
25372 * progmodes/cc-align.el, progmodes/cc-langs.el (c-lineup-math):
25373 Don't align the operators "!=", "<=" and ">=" as assignment operators.
25374
25375 (c-assignment-operators): New language constant that only contains
25376 the assignment operators.
25377
25378 (c-assignment-op-regexp): New language var used by `c-lineup-math'.
25379
253802003-08-26 Martin Stjernholm <bug-cc-mode@gnu.org>
25381
25382 * progmodes/cc-engine.el (c-just-after-func-arglist-p):
25383 Safeguard against unbalanced sexps.
25384
253852003-08-26 Terje Rosten <terjeros@phys.ntnu.no>
25386
25387 * version.el (emacs-version): Check for gtk. Include gtk version info.
25388
253892003-08-25 John Paul Wallington <jpw@gnu.org>
25390
25391 * man.el (Man-default-man-entry): Don't whizz past the section
25392 number before looking for it.
25393
253942003-08-24 Nick Roberts <nick@nick.uklinux.net>
25395
25396 * progmodes/gud.el (gud-display-line): Don't set window-point if
25397 source buffer is not visible. (Only happens with M-x gdba.)
25398
25399 * gdb-ui.el (gdba): Remove gdb-quit (previously removed) from
25400 documentation.
25401 (gdb-source, gdb-source-info): Update to assembler unnecessary
25402 as its done after each GDB command anyway.
25403 (gdb-pre-prompt): Use with-current-buffer.
25404 (gdb-insert-field): Add help-echo text.
25405 (gdb-invalidate-assembler): Re-display of assembler now done in
25406 gdb-info-breakpoints-custom.
25407 (gdb-info-breakpoints-custom): Force re-display of assembler to
25408 happen *after* update of breakpoints buffer.
25409 (gdb-display-source-buffer): Don't choke if gdb-source-window
25410 isn't visible.
25411 (gdb-put-string, gdb-put-arrow): Remove free variables.
25412
254132003-08-24 John Paul Wallington <jpw@gnu.org>
25414
25415 * ibuffer.el (ibuffer-formats): Make name and size columns wider.
25416
25417 * man.el (Man-default-man-entry): Strip text properties when
25418 snarfing parts of entry because `format' preserves properties.
25419
254202003-08-24 Glenn Morris <gmorris@ast.cam.ac.uk>
25421
25422 * files.el (file-newest-backup): Use `expand-file-name'.
25423
25424 * calendar/diary-lib.el (simple-diary-display, make-diary-entry):
25425 Allow the diary to pop up a new frame, if needed.
25426
25427 * mail/sendmail.el (mail-specify-envelope-from): Doc change.
25428 * mail/smtpmail.el (smtpmail-mail-address): Doc change.
25429 (smtpmail-send-it): Make treatment of envelope-from consistent with
25430 sendmail.el.
25431
25432 * progmodes/sh-script.el (sh-builtins): Add some bash builtins.
25433 (sh-leading-keywords): Add the bash `time' reserved word.
25434 (sh-variables): Add some bash variables.
25435 (sh-add-completer): Fix nil branch of case statement.
25436
254372003-08-24 Masatake YAMATO <jet@gyve.org>
25438
25439 * progmodes/ld-script.el: New file.
25440
254412003-08-23 Markus Rost <rost@math.ohio-state.edu>
25442
25443 * vc-hooks.el (vc-ignore-vc-files, vc-master-templates): Doc fix.
25444
254452003-08-23 Andre Spiegel <spiegel@gnu.org>
25446
25447 * vc-hooks.el (vc-ignore-vc-files, vc-master-templates):
25448 Better explain obsolescence, and what to use instead.
25449
254502003-08-23 Masatake YAMATO <jet@gyve.org>
25451
25452 * pcvs.el (cvs-do-removal): Show the deleted file name
25453 on the prompt.
25454
254552003-08-20 Dave Love <fx@gnu.org>
25456
25457 * international/mule.el (make-coding-system)
25458 (set-buffer-file-coding-system): Doc fix.
25459
25460 * emacs-lisp/lisp-mode.el (common-lisp-mode): New.
25461
25462 * emacs-lisp/lisp.el (beginning-of-defun-function): Doc fix.
25463
25464 * international/utf-8.el (ucs-unicode-to-mule-cjk): Use smaller :size.
25465
25466 * international/utf-16.el: Add mime-text-unsuitable coding system
25467 properties.
25468
25469 * international/latin1-disp.el (latin1-display): Add ?$,1s"(B.
25470
25471 * cus-edit.el: Add some :links.
25472 (bib): Remove.
25473
25474 * textmodes/bib-mode.el (bib): Add :group external.
25475
254762003-08-18 Luc Teirlinck <teirllm@mail.auburn.edu>
25477
25478 * wid-edit.el (widget-echo-help): Make it handle expressions that
25479 evaluate to strings.
25480
254812003-08-18 Michael Mauger <mmaug@yahoo.com>
25482
25483 Version 1.8.0 of sql-mode. (Patch submitted 2003-06-21)
25484
25485 Simplify selection of SQL products to define highlighting and
25486 interactive mode. Includes detailed instructions on adding
25487 support for new products.
25488
25489 * progmodes/sql.el (sql-product): New variable. Identifies SQL
25490 product for use in highlighting and interactive mode.
25491 (sql-interactive-product): New variable. SQL product for
25492 sql-interactive-mode.
25493 (sql-product-support): New variable. Specifies product-specific
25494 parameters to drive highlighting and interactive mode.
25495 (sql-imenu-generic-expression): Add more object types.
25496 (sql-sqlite-options): Correct comment.
25497 (sql-ms-program): Use "osql" rather than "isql".
25498 (sql-prompt-regexp, sql-prompt-length): Update comment.
25499 (sql-mode-menu): Add "Start SQLi session" entry.
25500 Replace Highlighting submenu with Product menu. Fix Send Region entry.
25501 (sql-mode-abbrev-table): Add abbreviations. Support of
25502 SYSTEM-FLAG on define-abbrev. Support was removed with last
25503 check-in; it now handles older Emacsen without the SYSTEM-FLAG.
25504 (sql-mode-font-lock-object-name): Add font-lock pattern for object
25505 names.
25506 (sql-mode-ansi-font-lock-keywords): Set as default value.
25507 (sql-mode-oracle-font-lock-keywords): Set as default value.
25508 Support Oracle 9i keywords.
25509 (sql-mode-postgres-font-lock-keywords): Set as default value.
25510 (sql-mode-linter-font-lock-keywords): Set as default value.
25511 (sql-mode-ms-font-lock-keywords): New variable. Support Microsoft
25512 SQLServer 2000.
25513 (sql-mode-sybase-font-lock-keywords)
25514 (sql-mode-interbase-font-lock-keywords)
25515 (sql-mode-sqlite-font-lock-keywords)
25516 (sql-mode-strong-font-lock-keywords)
25517 (sql-mode-mysql-font-lock-keywords)
25518 (sql-mode-db2-font-lock-keywords): New variables. Default to ANSI
25519 keywords.
25520 (sql-mode-font-lock-defaults): Update comment.
25521 (sql-product-feature): New function. Returns feature associated
25522 with a product from `sql-product-support' alist.
25523 (sql-product-font-lock): New function. Set font-lock support
25524 based on `sql-product'.
25525 (sql-add-product-keywords): New function. Add font-lock rules to
25526 product-specific keyword variables.
25527 (sql-set-product): New function. Set `sql-product' and apply
25528 appropriate font-lock highlighting.
25529 (sql-highlight-product): New function. Set font-lock support
25530 based on a product. Also set mode name to include product name.
25531 (sql-highlight-ansi-keywords, sql-highlight-oracle-keywords)
25532 (sql-highlight-postgres-keywords, sql-highlight-linter-keywords):
25533 Use `sql-set-product'.
25534 (sql-highlight-ms-keywords)
25535 (sql-highlight-sybase-keywords)
25536 (sql-highlight-interbase-keywords)
25537 (sql-highlight-strong-keywords)
25538 (sql-highlight-mysql-keywords)
25539 (sql-highlight-sqlite-keywords)
25540 (sql-highlight-db2-keywords): New functions. Use `sql-set-product'.
25541 (sql-get-login): Prompt in the same order as the tokens.
25542 (sql-mode): Uses `sql-product-highlight' and `sql-product-font-lock'.
25543 (sql-product-interactive): New function. Common portions of
25544 product-specific interactive mode wrappers.
25545 (sql-interactive-mode): Rewritten to use product features.
25546 (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
25547 (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
25548 (sql-db2, sql-linter): Use `sql-product-interactive'.
25549 (sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
25550 (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
25551 (sql-connect-ingres, sql-connect-postgres)
25552 (sql-connect-interbase, sql-connect-db2, sql-connect-linter):
25553 New functions. Format command line parameters and invoke comint on
25554 the appropriate interpreter. Code was in the corresponding
25555 `sql-xyz' function before.
25556 (sql-connect-ms): New function. Support -E argument to use
25557 operating system credentials for authentication.
25558
255592003-08-18 Kenichi Handa <handa@m17n.org>
25560
25561 * international/mule.el (encode-char): Fix for the ASCII case.
25562
255632003-08-15 Kenichi Handa <handa@m17n.org>
25564
25565 * international/fontset.el (setup-default-fontset): Change "*" to
25566 nil in the specifications of font family.
25567
255682003-08-18 Kim F. Storm <storm@cua.dk>
25569
25570 * kmacro.el (kmacro-keymap): Group related bindings in
25571 initialization for clarity. Bind C-s to start macro.
25572 Remove C-r binding.
25573 (kmacro-initial-counter-value): New defvar to hold initial counter
25574 value in case we set the value before defining a macro.
25575 (kmacro-insert-counter): Clear kmacro-initial-counter-value..
25576 (kmacro-set-counter): Set kmacro-initial-counter-value if we are
25577 not defining or executing macro. Doc fix.
25578 (kmacro-add-counter): Clear kmacro-initial-counter-value.
25579 (kmacro-view-last-item, kmacro-view-item-no): New defvars used to
25580 temporarily view older elements on the macro ring without cycling
25581 the ring.
25582 (kmacro-display): Doc fix.
25583 (kmacro-exec-ring-item): New helper function.
25584 (kmacro-call-ring-2nd): Use it.
25585 (kmacro-call-ring-2nd-repeat): Doc fix.
25586 (kmacro-start-macro): Use (and clear) kmacro-initial-counter-value.
25587 (kmacro-end-or-call-macro): Execute last viewed macro (using
25588 kmacro-exec-ring-item) from ring if this follows
25589 kmacro-view-macro. This allows us to find a macro on the ring
25590 with C-x C-k C-v C-v ... and execute it (with C-k) without cycling
25591 the ring to bring it to the head of the ring.
25592 (kmacro-bind-to-key): Doc fix (describe reserved bindings).
25593 Allow binding to reserved keys without specifying C-x C-k prefix.
25594 Ask for confirmation if entered key sequence is already bound to
25595 a non-macro command.
25596 (kmacro-view-macro): Repeating command will show older elements
25597 on the macro ring; C-k will execute the last viewed macro.
25598 (kmacro-view-macro-repeat): Doc fix. Change its kmacro-repeat
25599 property from 'ring to 'head.
25600
256012003-08-17 Alan Shutko <ats@acm.org>
25602
25603 * calendar/calendar.el (calendar-make-alist): Correct off-by-one
25604 keeping December out of the alist.
25605
256062003-08-17 Edward M. Reingold <reingold@emr.cs.iit.edu>
25607
25608 * calendar/cal-move.el (calendar-goto-day-of-year): New function.
25609 * calendar/calendar.el (calendar-mode-map): Bind it to key.
25610 * calendar/cal-menu.el (calendar-mode-map): Add it to menu.
25611 (calendar-flatten): New function.
25612 (calendar-mouse-view-other-diary-entries)
25613 (calendar-mouse-view-diary-entries): Rewritten to put any holidays
25614 in the menu title and to show multi-line diary entries correctly
25615 in the menu.
25616
256172003-08-17 Luc Teirlinck <teirllm@mail.auburn.edu>
25618
25619 * info.el (Info-scroll-prefer-subnodes): Add :version keyword to
25620 defcustom, because the default was recently changed.
25621
256222003-08-16 Richard M. Stallman <rms@gnu.org>
25623
25624 * net/ange-ftp.el (ange-ftp-error): Add save-excursion.
25625
25626 * emacs-lisp/lisp-mode.el (eval-last-sexp-print-value):
25627 New subroutine, broken out of eval-last-sexp-1.
25628 (eval-last-sexp-1): Use eval-last-sexp-print-value.
25629
25630 * custom.el (custom-load-symbol): Load cus-load and cus-start first.
25631
25632 * dabbrev.el (dabbrev--safe-replace-match): Use with-no-warnings.
25633
25634 * simple.el (eval-expression): Use eval-last-sexp-print-value.
25635
256362003-08-14 Jari Aalto <jari.aalto@poboxes.com>
25637
25638 * progmodes/compile.el (compilation-error-regexp-alist):
25639 Add Java ANt error detection as described in document
25640 http://ant.apache.org/faq.html
25641
256422003-08-12 Juri Linkov <juri@jurta.org> (tiny change)
25643
25644 * simple.el (backward-word, forward-to-indentation)
25645 (backward-to-indentation): Argument changed to optional.
25646 (next-line, previous-line): Use `or' instead of `unless'.
25647
256482003-08-12 Vinicius Jose Latorre <viniciusjl@ig.com.br>
25649
25650 * progmodes/ebnf-iso.el (ebnf-no-meta-identifier): Becomes a var
25651 instead of a constant.
25652
256532003-08-12 Markus Rost <rost@math.ohio-state.edu>
25654
25655 * shell.el (shell): With prefix-arg, suggest a new buffer name.
25656
256572003-08-12 Andre Spiegel <spiegel@gnu.org>
25658
25659 * vc-sccs.el (vc-sccs-state-heuristic): Fix parentheses.
25660 (vc-sccs-workfile-version): Search the entire delta table, rather
25661 than just the first entry, because that might be a deleted version.
25662
256632003-08-11 Karl Fogel <kfogel@red-bean.com>
25664
25665 * menu-bar.el (menu-bar-options-menu): Supply a body for the
25666 [save-place] binding in the Options menu. Have it require
25667 'saveplace' and then toggle the variable manually, to avoid an
25668 unbound variable error. Thanks to <Sebastien.Kirche@sage.com>
25669 for the bug report.
25670
256712003-08-11 Nick Roberts <nick@nick.uklinux.net>
25672
25673 * gdb-ui.el (gdb-insert-field, gdb-array-format1)
25674 (gdb-info-breakpoints-custom, gdb-info-frames-custom)
25675 (gdb-info-threads-custom): Add help-echo text.
25676 (gdb-display-back): Don't use purecopy.
25677 (gdb-info-breakpoints-custom, gdb-reset)
25678 (gdb-assembler-custom): Use display-images-p to test if breakpoint
25679 icons can be displayed.
25680
256812003-08-11 Markus Rost <rost@math.ohio-state.edu>
25682
25683 * textmodes/reftex-vars.el (reftex-auto-recenter-toc): Fix typo.
25684
256852003-08-11 Stefan Monnier <monnier@cs.yale.edu>
25686
25687 * bookmark.el (bookmark-completing-read):
25688 Return a string, instead of a list of one string.
25689 Use a popup menu if activated from the mouse.
25690 (bookmark-edit-annotation): Remove unused vars.
25691 (bookmark-jump, bookmark-relocate, bookmark-insert-location)
25692 (bookmark-rename, bookmark-insert, bookmark-delete): Adjust calls
25693 to bookmark-completing-read.
25694 (bookmark-bmenu-show-filenames, bookmark-bmenu-hide-filenames)
25695 (bookmark-bmenu-mark, bookmark-bmenu-select, bookmark-bmenu-unmark)
25696 (bookmark-bmenu-delete, bookmark-bmenu-list): Use inhibit-read-only
25697 and erase-buffer.
25698 (bookmark-menu-delete, bookmark-menu-rename, bookmark-menu-locate)
25699 (bookmark-menu-jump, bookmark-menu-insert)
25700 (bookmark-popup-menu-and-apply-function)
25701 (bookmark-menu-popup-paned-bookmark-menu): Remove.
25702 (bookmark-menu-build-paned-menu): Remove by folding it into
25703 bookmark-menu-popup-paned-menu.
25704 (menu-bar-bookmark-map): Move the define-key statements here.
25705 Use the "non-menu" commands since they now pop up a menu if needed.
25706 (bookmark-exit-hook-internal): Simplify.
25707
257082003-08-11 Carsten Dominik <dominik@sand.science.uva.nl>
25709
25710 * reftex-toc.el (reftex-toc-rename-label): New function.
25711 (reftex-toc-check-docstruct): New function.
25712
25713 * reftex.el (reftex-region-active-p): New function.
25714
25715 * reftex-parse.el (reftex-locate-bibliography-files): Improved the
25716 regexp to find the \bibliography macro.
25717
25718 * reftex-vars.el (reftex-section-levels): Removed subsubparagraph,
25719 which does not exist in LaTeX.
25720 (reftex-cite-format-builtin): Added amsrefs support.
25721 (reftex-toc-confirm-promotion): New option
25722
25723 * reftex-toc.el
25724 (reftex-toc): Use `reftex-toc-split-windows-fraction'.
25725 (reftex-toc-demote, reftex-toc-promote)
25726 (reftex-toc-do-promote, reftex-toc-promote-prepare)
25727 (reftex-toc-promote-action, reftex-toc-extract-section-number)
25728 (reftex-toc-newhead-from-alist)
25729 (reftex-toc-load-all-files-for-promotion): New functions.
25730 (reftex-toc-help): Added description of new keys.
25731 (reftex-toc-split-windows-fraction): New option.
25732 (reftex-recenter-toc-when-idle): Search *toc* window on all
25733 visible frames.
25734 (reftex-toc): Additional parameter REUSE
25735 (reftex-toc-recenter): Remember current frame. Call `reftex-toc'
25736 with REUSE argument.
25737 (reftex-recenter-toc-when-idle): Reset `current-prefix-arg' for
25738 the call of `reftex-toc'.
25739 (reftex-make-separate-toc-frame): New function .
25740 (reftex-toc-recenter): When called with triple prefix arg, call
25741 `reftex-make-separate-toc-frame' first.
25742 (reftex-toc-toggle-dedicated-frame): New command.
25743 (reftex-toc-quit): Adapted to delete frame when called in
25744 dedicated frame.
25745
25746 * reftex-index.el (reftex-index-phrase-match-is-indexed): Check
25747 all enclosing macros.
25748
25749
257502003-08-08 Vinicius Jose Latorre <viniciusjl@ig.com.br>
25751
25752 * progmodes/ebnf2ps.el (ebnf-total, ebnf-nprod): Move defvar before
25753 first use.
25754
257552003-08-07 Vinicius Jose Latorre <viniciusjl@ig.com.br>
25756
25757 * progmodes/ebnf2ps.el (ebnf-begin-job): Code fix.
25758
257592003-08-06 Glenn Morris <gmorris@ast.cam.ac.uk>
25760
25761 * calendar/calendar.el (list-diary-entries-hook)
25762 (diary-display-hook, nongregorian-diary-listing-hook)
25763 (mark-diary-entries-hook, nongregorian-diary-marking-hook):
25764 Add some customize options for these hooks.
25765 (calendar-abbrev-construct): Don't try to take a substring longer
25766 than the original string.
25767
257682003-08-05 Richard M. Stallman <rms@gnu.org>
25769
25770 * emacs-lisp/testcover.el (noreturn): Report error if does return.
25771 (testcover-reinstrument-clauses): Doc fix.
25772
25773 * emacs-lisp/warnings.el: Doc fixes, args renamed.
25774 (warning-type-format): Rename from warning-group-format.
25775
25776 * emacs-lisp/bytecomp.el (byte-compile-not-obsolete-var): New var.
25777 (byte-compile-variable-ref): Handle byte-compile-not-obsolete-var.
25778 (byte-compile-defvar): Bind byte-compile-not-obsolete-var
25779 to prevent warnings about defvar for an obsolete variable.
25780
25781 * emacs-lisp/bytecomp.el (byte-compile-log-warning):
25782 warning-group-format renamed to warning-type-format.
25783
25784 * subr.el (read-passwd): Use clear-string instead of fillarray.
25785
25786 * edmacro.el (edmacro-format-keys): Use edmacro-sanitize-for-string.
25787 Use vconcat instead of concat.
25788 (edmacro-sanitize-for-string): New function.
25789
257902003-08-05 Dave Love <fx@gnu.org>
25791
25792 * cus-start.el: Add open-paren-in-column-0-is-defun-start,
25793 line-number-display-limit-width.
25794
25795 * textmodes/tex-mode.el (tex-dvi-view-command): Fix quoted quotes.
25796
257972003-08-05 Kenichi Handa <handa@m17n.org>
25798
25799 * international/code-pages.el: Don't require mule-diag.
25800
25801 * international/mule-diag.el (non-iso-charset-alist):
25802 Add autoload cookie.
25803
25804 * language/devan-util.el (dev-glyph-order): Add an entry for the
25805 glyph code #xC4.
25806
258072003-08-03 Glenn Morris <gmorris@ast.cam.ac.uk>
25808
25809 * calendar/calendar.el (diary-file, diary-file-name-prefix)
25810 (european-calendar-style, diary-date-forms)
25811 (calendar-day-name-array, calendar-month-name-array): Doc change.
25812 (generate-calendar-month): Adapt for new behavior of
25813 `calendar-day-name' function.
25814 (calendar-abbrev-length, calendar-day-abbrev-array)
25815 (calendar-month-abbrev-array): New variables.
25816 (calendar-abbrev-construct): New function.
25817 (calendar-day-name, calendar-month-name): Use new abbrev arrays,
25818 rather than fixing abbrevs at some width. Calling syntax change.
25819 (calendar-make-alist): Use abbrev arrays. Calling syntax change.
25820 (calendar-date-string): Adapt for new behaviors of
25821 `calendar-day-name' and `calendar-month-name' functions.
25822
25823 * calendar/diary-lib.el (list-diary-entries): Adapt for new
25824 behavior of `calendar-day-name' and `calendar-month-name' functions.
25825 (diary-name-pattern): Use abbrev arrays, rather than fixing
25826 abbrevs at three chars. Calling syntax change.
25827 (mark-diary-entries): Adapt for new behaviors of
25828 `diary-name-pattern' and `calendar-make-alist' functions.
25829 (fancy-diary-font-lock-keywords): Adapt for new behavior of
25830 `diary-name-pattern' function.
25831 (font-lock-diary-date-forms): Use abbrev arrays, rather than
25832 fixing abbrevs at three chars. Calling syntax change.
25833 (cal-hebrew, cal-islam): Require when compiling.
25834 (diary-font-lock-keywords): Adapt for new behavior of
25835 `font-lock-diary-date-forms' function.
25836
25837 * calendar/cal-hebrew.el: Reposition some code so defined before used.
25838 (calendar-hebrew-month-name-array-common-year)
25839 (calendar-hebrew-month-name-array-leap-year): Add doc strings.
25840 (list-hebrew-diary-entries): Adapt for new behaviors of
25841 `calendar-day-name' and `add-to-diary-list' functions.
25842 (mark-hebrew-diary-entries): Adapt for new behaviors of
25843 `diary-name-pattern' and `calendar-make-alist' functions.
25844
25845 * calendar/cal-islam.el (calendar-islamic-month-name-array):
25846 Add doc string.
25847 (list-islamic-diary-entries): Adapt for new behaviors of
25848 `calendar-day-name' and `add-to-diary-list' functions.
25849 (mark-islamic-diary-entries): Adapt for new behaviors of
25850 `diary-name-pattern' and `calendar-make-alist' functions.
25851
25852 * calendar/cal-menu.el (cal-menu-update): Adapt for new behavior of
25853 `calendar-month-name' function.
25854
25855 * calendar/cal-coptic.el (coptic-name): defvar rather than defconst.
25856
25857 * calendar/solar.el (solar-seasons-data): Move definition before use.
25858
25859 * calendar/cal-tex.el (cal-tex-day-name-format): Doc fix.
25860 (cal-tex-LaTeX-hourbox): Move definition before use.
25861
25862 * calendar/cal-china.el, cal-hebrew.el, cal-islam.el
25863 * cal-julian.el, cal-menu.el, cal-move.el, holidays.el
25864 * lunar.el, solar.el (displayed-month, displayed-year):
25865 Define for compiler.
25866
258672003-08-03 Martin Stjernholm <bug-cc-mode@gnu.org>
25868
25869 * progmodes/cc-mode.el (c-init-language-vars-for): Add argument
25870 MODE. Renamed from c-init-c-language-vars'.
25871 (c-initialize-cc-mode): Change accordingly.
25872 (c-common-init): Ditto.
25873 (c-mode): Ditto.
25874 (c++-mode): Use `c-init-language-vars-for'.
25875 (objc-mode): Ditto.
25876 (java-mode): Ditto.
25877 (idl-mode): Ditto.
25878 (pike-mode): Ditto.
25879 (awk-mode): Ditto.
25880
258812003-08-03 Martin Stjernholm <bug-cc-mode@gnu.org>
25882
25883 * progmodes/cc-engine.el (c-end-of-current-token): Return whether
25884 or not the point moved.
25885
25886 (c-search-decl-header-end): Don't trip up on operator identifiers
25887 in C++ and operators like == in all languages.
25888
25889 * progmodes/cc-engine.el (c-backward-to-decl-anchor):
25890 Detect leading labels correctly.
25891
258922003-08-02 Andreas Schwab <schwab@suse.de>
25893
25894 * textmodes/ispell.el: Don't redo key bindings on loading, put
25895 them only in loaddefs.el.
25896 * bookmark.el: Likewise.
25897 * dabbrev.el: Likewise.
25898 * emerge.el: Likewise.
25899
25900 * apropos.el (apropos-words-to-regexp): Only add `wild' if `words'
25901 has more than one member.
25902
25903 * progmodes/sh-script.el (sh-mode): Don't set mode-class property.
25904
259052003-08-01 Vinicius Jose Latorre <viniciusjl@ig.com.br>
25906
25907 * lpr.el (printify-region): It was ending conversion before the
25908 expected position. Reported by Keiichi Suzuki <keiichi@nanap.org>.
25909
259102003-07-31 John Paul Wallington <jpw@gnu.org>
25911
25912 * net/browse-url.el (browse-url-epiphany): Doc fix.
25913
259142003-07-30 Kenichi Handa <handa@m17n.org>
25915
25916 * international/fontset.el (setup-default-fontset):
25917 Change registry names of Akurti fonts.
25918
259192003-07-29 Jesper Harder <harder@ifa.au.dk> (tiny change)
25920
25921 * comint.el (comint-read-noecho): Use `clear-string' instead of
25922 `fillarray'.
25923
259242003-07-29 Thomas W Murphy <twm@andrew.cmu.edu> (tiny change)
25925
25926 * outline.el (outline-mode-hook): Add defvar.
25927
259282003-07-28 Nick Roberts <nick@nick.uklinux.net>
25929
25930 * gdb-ui.el (gdb-setup-windows, gdb-restore-windows):
25931 Restore assembler in source window if that is what has been selected.
25932 (menu): Add gdb-restore-windows to menu. Make gdba
25933 specific menus only visible from gdba.
25934
259352003-07-28 Tak Ota <Takaaki.Ota@am.sony.com> (tiny change)
25936
25937 * progmodes/compile.el (compilation-environment): New user variable.
25938 (compile-internal): Respect it.
25939
259402003-07-23 Masatake YAMATO <jet@gyve.org>
25941
25942 * progmodes/gud.el (gdb-script-font-lock-keywords):
25943 Put `font-lock-function-name-face' on a symbol which includes
25944 `-' like `hook-run'. Put font-lock-variable-name-face
25945 on a symbol starting with $.
25946
259472003-07-27 Markus Rost <rost@math.ohio-state.edu>
25948
25949 * files.el (set-visited-file-name): Use truename for buffer-file-name.
25950
259512003-07-26 Markus Rost <rost@math.ohio-state.edu>
25952
25953 * vc-hooks.el (vc-file-not-found-hook): Doc fix.
25954
259552003-07-26 Andre Spiegel <spiegel@gnu.org>
25956
25957 * vc-hooks.el (vc-default-registered, vc-make-version-backup):
25958 Use with-no-warnings.
25959 (vc-file-not-found-hook): Add this to find-file-not-found-functions,
25960 rather than to find-file-not-found-hook, which doesn't exist.
25961
259622003-07-26 Markus Rost <rost@math.ohio-state.edu>
25963
25964 * international/quail.el (quail-translate-key): Fix previous change.
25965
259662003-07-25 John Paul Wallington <jpw@gnu.org>
25967
25968 * server.el (server-start): Check `server-process' is non-nil
25969 before killing it to avoid killing current buffer's process.
25970
25971 * simple.el (choose-completion-string): Use `minibufferp';
25972 test `completion-reference-buffer' if `buffer' arg is nil.
25973 (push-mark): Use `when' and `unless'.
25974 (pop-mark): Use `when'.
25975
25976 * mouse-sel.el (mouse-sel-get-selection-function):
25977 Check `x-last-selected-text-primary'. Don't barf if it or
25978 `x-last-selected-text' aren't bound.
25979
259802003-07-25 Kevin Rodgers <ihs_4664@yahoo.com> (tiny change)
25981
25982 * menu-bar.el (menu-bar-tools-menu): Minor change in strings.
25983
259842003-07-23 Stefan Monnier <monnier@cs.yale.edu>
25985
25986 * vc-svn.el (vc-svn-diff-switches): Don't default to vc-diff-switches.
25987
259882003-07-23 John Paul Wallington <jpw@gnu.org>
25989
25990 * tooltip.el (defface tooltip): Inherit from variable-pitch.
25991
259922003-07-23 Glenn Morris <gmorris@ast.cam.ac.uk>
25993
25994 * emacs-lisp/derived.el (define-derived-mode): Mention hook in doc
25995 string. Defvar the derived hook.
25996
25997 * macros.el (insert-kbd-macro): Escape double quote character.
25998 From Thomas W Murphy <twm@andrew.cmu.edu>.
25999
260002003-07-22 Stefan Monnier <monnier@cs.yale.edu>
26001
26002 * textmodes/fill.el (fill-comment-paragraph): Construct a regexp
26003 to match the specific mark rather than reusing comment-start-skip.
26004
260052003-07-22 Thien-Thi Nguyen <ttn@gnu.org>
26006
26007 * progmodes/hideshow.el (hs-special-modes-alist):
26008 Clarify MDATA-SELECTOR doc; nfc. Thanks to Michael Ernst.
26009
260102003-07-21 Markus Rost <rost@math.ohio-state.edu>
26011
26012 * progmodes/idlwave.el (idlwave-comment-indent-char): Fix default
26013 value using ?\s.
26014
260152003-07-21 John Paul Wallington <jpw@gnu.org>
26016
26017 * subr.el (with-selected-window): Add closing paren.
26018
260192003-07-21 Richard M. Stallman <rms@gnu.org>
26020
26021 * emacs-lisp/lisp-mode.el (emacs-lisp-mode): Use run-mode-hooks.
26022 (lisp-mode): Likewise.
26023
26024 * subr.el (with-selected-window): Copy code form save-selected-window
26025 so as to call select-window with norecord arg.
26026 (dynamic-completion-table): Doc fix.
26027 (lazy-completion-table): Doc fix.
26028
26029 * international/mule-cmds.el (set-locale-environment):
26030 langinfo renamed to locale-info.
26031
26032 * international/mule.el (auto-coding-functions): Doc fix.
26033
260342003-07-21 Kenichi Handa <handa@m17n.org>
26035
26036 * international/quail.el (quail-translate-key):
26037 Update quail-current-str correctly.
26038
260392003-07-21 Andreas Schwab <schwab@suse.de>
26040
26041 * progmodes/sh-script.el (sh-mode-syntax-table): Change syntax of
26042 ?, to "_".
26043
260442003-07-20 Kai Gro,A_(Bjohann <kai.grossjohann@gmx.net>
26045 Version 2.0.36 of Tramp released.
26046
26047 * net/tramp.el (tramp-default-password-end-of-line): Rename from
26048 tramp-password-end-of-line.
26049 (tramp-password-end-of-line): New method parameter.
26050 (tramp-get-password-end-of-line): Function to access method
26051 parameter `tramp-password-end-of-line', or variable
26052 `tramp-default-password-end-of-line' (default value).
26053 (tramp-methods): Add entries for new parameter
26054 tramp-password-end-of-line.
26055 (tramp-enter-password): Use new function
26056 `tramp-get-password-end-of-line'.
26057 (tramp-handle-insert-file-contents): Do not
26058 unconditionally inhibit the file operation file-local-copy, only
26059 do that when the inhibit-file-name-operation is currently
26060 insert-file-contents. This fixes finding remote CVS-controlled
26061 files. (It would barf on inserting the CVS/Entries file
26062 literally, because the file-local-copy handler wasn't called.)
26063 (tramp-handle-shell-command): Support optional third arg ERROR-BUFFER.
26064 (tramp-sh-extra-args): Adapt defcustom type to XEmacs.
26065 (tramp-initial-commands): New variable.
26066 (tramp-process-initial-commands): New function, using the variable.
26067 (tramp-open-connection-setup-interactive-shell): Call the new function.
26068 (tramp-buffer-name, tramp-debug-buffer-name): Always put the
26069 method into the buffer name, never use nil. Reported by Hanak
26070 David <dhanak@inf.bme.hu>.
26071 (tramp-open-connection-setup-interactive-shell): Erase buffer
26072 before sending "stty -onlcr".
26073
26074 * net/tramp-vc.el (vc-workfile-unchanged-p): Add comment.
26075
260762003-07-19 Markus Rost <rost@math.ohio-state.edu>
26077
26078 * textmodes/artist.el (artist-erase-char): Fix default value using ?\s.
26079
260802003-07-19 John Paul Wallington <jpw@gnu.org>
26081
26082 * textmodes/artist.el (artist-butlast-fn, artist-draw-sline)
26083 (artist-draw-rect, artist-draw-square): Doc fixes.
26084
26085 * textmodes/enriched.el (enriched-decode-display-prop): Doc fix.
26086
26087 * textmodes/two-column.el (2C-mode-line-format): Doc fix.
26088
260892003-07-19 Kenichi Handa <handa@m17n.org>
26090
26091 * international/kkc.el (kkc-show-conversion-list-update):
26092 Highlight the correct candidate in the message.
26093
260942003-07-18 John Paul Wallington <jpw@gnu.org>
26095
26096 * simple.el (current-word): Don't include punctuation char when
26097 `really-word' arg is non-nil.
26098
260992003-07-17 Martin Stjernholm <bug-cc-mode@gnu.org>
26100
26101 * progmodes/awk-mode.el: Obsoleted by the AWK support in CC Mode -
26102 moved to the directory obsolete.
26103
261042003-07-16 Stefan Monnier <monnier@cs.yale.edu>
26105
26106 * info.el (Info-menu-entry-name-re): Allow newlines in
26107 menu entry names.
26108
26109 * emacs-lisp/syntax.el (syntax-ppss-flush-cache): Rename from
26110 syntax-ppss-after-change-function.
26111 (syntax-ppss-after-change-function): New alias. Update uses.
26112 (syntax-ppss): Catch the case where the buffer is narrowed.
26113
261142003-07-16 Martin Stjernholm <bug-cc-mode@gnu.org>
26115
26116 * progmodes/cc-defs.el (c-langelem-sym, c-langelem-pos)
26117 (c-langelem-2nd-pos): Add accessor functions for syntactic elements.
26118
261192003-07-16 Martin Stjernholm <bug-cc-mode@gnu.org>
26120
26121 * progmodes/cc-engine.el (c-literal-faces): Declare as a variable
26122 since it might be modified.
26123
26124 * progmodes/cc-langs.el (c++-make-template-syntax-table)
26125 (c-syntactic-ws-start, c-syntactic-ws-end): Give more consistent
26126 names to these language constants.
26127
261282003-07-15 Kim F. Storm <storm@cua.dk>
26129
26130 * apropos.el (apropos-sort-by-scores): Rename from apropos-show-scores.
26131 All uses changed.
26132
261332003-07-14 Mark A. Hershberger <mah@everybody.org>
26134
26135 * xml.el (xml-parse-tag, xml-parse-file, xml-parse-region):
26136 Namespace support.
26137
261382003-07-13 Juanma Barranquero <lektu@terra.es>
26139
26140 * frame.el (modify-all-frames-parameters): Reinstall (copyright
26141 papers received).
26142
261432003-07-13 Karl Eichwalder <ke@suse.de>
26144
26145 * textmodes/po.el (po-find-charset): White space at the start of the
26146 Content-Type field body is non-mandatory.
26147
261482003-07-13 Masayuki Ataka <ataka@milk.freemail.ne.jp> (tiny change)
26149
26150 * textmodes/texinfo.el (texinfo-section-list):
26151 Append appendixsection; a synonym for appendixsec.
26152
261532003-07-13 Jari Aalto <jari.aalto@poboxes.com>
26154
26155 * man.el (Man-translate-cleanup): New.
26156 (Man-translate-references): Call `Man-translate-cleanup' to clean
26157 leading, trailing and middle spaces.
26158
261592003-07-13 Lars Hansen <larsh@math.ku.dk>
26160
26161 * desktop.el (desktop-buffer-dired-misc-data, desktop-buffer-dired):
26162 Handle `dired-directory' being a list.
26163
261642003-07-13 Jesper Harder <harder@ifa.au.dk> (tiny change)
26165
26166 * mail/smtpmail.el (smtpmail-send-it): Create smtpmail-queue-dir if
26167 it doesn't exist.
26168
261692003-07-12 Richard M. Stallman <rms@gnu.org>
26170
26171 * progmodes/cc-engine.el (c-declare-lang-variables): Don't use mapcan.
26172
26173 * progmodes/cc-defs.el (c-make-keywords-re):
26174 Don't use delete-duplicates.
26175 (c-lang-const): Don't use mapcan.
26176
26177 * apropos.el (apropos-show-scores): Make it customizable.
26178 Document new meaning.
26179 (apropos): Compute scores from symbols.
26180 (apropos-print): Don't sort by scores if apropos-show-scores is nil.
26181
261822003-07-11 Vinicius Jose Latorre <viniciusjl@ig.com.br>
26183
26184 * ps-bdf.el: Fix copyright line.
26185 (bdf-directory-list): Fix initialization code.
26186
261872003-07-11 John Paul Wallington <jpw@gnu.org>
26188
26189 * emacs-lisp/ring.el (ring-empty-p): Use `zerop'.
26190 (ring-p, ring-plus1, ring-minus1, ring-length, ring-index)
26191 (ring-empty-p, ring-size, ring-copy, ring-ref): Doc fixes.
26192
261932003-07-11 NAKAJIMA Mikio <minakaji@namazu.org> (tiny change)
26194
26195 * emacs-lisp/ring.el (ring-elements): Doc fix.
26196
261972003-07-11 Glenn Morris <gmorris@ast.cam.ac.uk>
26198
26199 * calendar/timeclock.el (timeclock-relative)
26200 (timeclock-ask-before-exiting, timeclock-use-display-time):
26201 Doc changes.
26202 (timeclock-modeline-display): Give a message if
26203 `timeclock-use-display-time' is non-nil but `display-time-mode'
26204 is not active.
26205
262062003-07-11 Kenichi Handa <handa@m17n.org>
26207
26208 * international/mule-cmds.el (set-language-environment):
26209 Set current-language-environment to the correct string.
26210
262112003-07-10 Vinicius Jose Latorre <viniciusjl@ig.com.br>
26212
26213 * ps-print.el: Print line number correctly in a region. Reported by
26214 Tim Allen <timallen@ls83.fsnet.co.uk>.
26215 (ps-print-version): New version number (6.6.2).
26216 (ps-printing-region): Code fix.
26217
262182003-07-10 John Paul Wallington <jpw@gnu.org>
26219
26220 * progmodes/etags.el (visit-tags-table-buffer): Add autoload cookie;
26221 this function can be called from `add-completions-from-tags-table'.
26222
262232003-07-10 Glenn Morris <gmorris@ast.cam.ac.uk>
26224
26225 * calendar/timeclock.el (timeclock-use-display-time)
26226 (timeclock-day-over-hook, timeclock-workday-remaining)
26227 (timeclock-status-string, timeclock-when-to-leave)
26228 (timeclock-when-to-leave-string, timeclock-log-data)
26229 (timeclock-find-discrep, timeclock-day-base)
26230 (timeclock-generate-report, timeclock-visit-timelog): Doc fix.
26231 (timeclock-modeline-display): Set the variable
26232 `timeclock-modeline-display'.
26233 (timeclock-update-modeline): Doc fix. Respect value of
26234 `timeclock-relative'.
26235
262362003-07-09 Richard M. Stallman <rms@gnu.org>
26237
26238 * textmodes/reftex-parse.el (reftex-all-document-files):
26239 Add autoload cookie.
26240
26241 * textmodes/reftex.el (reftex-all-document-files): Delete autoload.
26242 (reftex-scanning-info-available-p): Add autoload cookie.
26243
26244 * international/mule-cmds.el
26245 (set-display-table-and-terminal-coding-system): Delete duplicate
26246 aset on standard-display-table.
26247
26248 * view.el (view-file): If existing buffer's major mode is special,
26249 don't go into view mode.
26250
26251 * dired.el (dired-move-to-filename-regexp): Allow quote in months.
26252
262532003-07-08 Martin Stjernholm <bug-cc-mode@gnu.org>
26254
26255 * progmodes/cc-engine.el (c-guess-basic-syntax): Do not do hidden
26256 buffer changes; there's third party code that calls this function
26257 directly.
26258
262592003-07-08 Martin Stjernholm <bug-cc-mode@gnu.org>
26260
26261 * progmodes/cc-fonts.el (javadoc-font-lock-keywords)
26262 (autodoc-font-lock-keywords): Don't byte compile on font lock
26263 initialization when running from byte compiled files.
26264
262652003-07-08 Alan Mackenzie <bug-cc-mode@gnu.org>
26266
26267 * progmodes/cc-engine.el: Fix AWK mode indentation when previous
26268 statement ends with auto-increment "++".
26269
262702003-07-08 Martin Stjernholm <bug-cc-mode@gnu.org>
26271
26272 * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist)
26273 (c-lang-variable-inits, c-lang-variable-inits-tail): The values of
26274 these are changed, so declare them as variables and not constants.
26275
262762003-07-08 Markus Rost <rost@math.ohio-state.edu>
26277
26278 * subr.el (dolist, dotimes): Doc fix.
26279
262802003-07-08 Kim F. Storm <storm@cua.dk>
26281
26282 * international/mule-cmds.el
26283 (set-display-table-and-terminal-coding-system): Don't break
26284 bootstrap if standard-display-table isn't setup yet.
26285
262862003-07-07 Richard M. Stallman <rms@gnu.org>
26287
26288 * ehelp.el (ehelp-command): Use defalias to define ehelp-command.
26289 Give it a doc string, and autoload it.
26290
26291 * desktop.el (desktop-buffer-info, desktop-buffer-mh):
26292 Use with-no-warnings.
26293
26294 * info.el (Info-search): If find invisible text, search again.
26295
26296 * isearch.el (search-whitespace-regexp): Add a shy group around it.
26297
26298 * man.el (Man-name-regexp): Match + as part of name.
26299
26300 * simple.el (visible-mode): Rename from vis-mode.
26301 (vis-mode-saved-buffer-invisibility-spec): Doc fix.
26302
26303 * simple.el (current-word): New arg REALLY-WORD specifies
26304 don't include punctuation chars.
26305
26306 * emacs-lisp/debug.el (debug, debugger-env-macro):
26307 Use with-no-warnings while accessing and binding unread-command-char.
26308
26309 * international/mule-cmds.el
26310 (set-display-table-and-terminal-coding-system): Use explicit loop
26311 instead of calling standard-display-default.
26312
26313 * net/ange-ftp.el (ange-ftp-file-symlink-p):
26314 Use condition-case to catch error in ange-ftp-get-files.
26315
26316 * net/browse-url.el (browse-url-browser-function):
26317 Add alternative for Epiphany.
26318 (browse-url-epiphany-program, browse-url-epiphany-arguments)
26319 (browse-url-epiphany-startup-arguments)
26320 (browse-url-epiphany-new-window-is-tab): New variables.
26321 (browse-url-epiphany, browse-url-epiphany-sentinel): New functions.
26322
26323 * progmodes/compile.el (compile-auto-highlight): Default now t.
26324 (compile): Doc fix.
26325 (compilation-next-error): Fix previous change.
26326
26327 * textmodes/tex-mode.el (tex-main-file): Use with-no-warnings.
26328
26329 * textmodes/sgml-mode.el (xml-mode): Add autoload cookie.
26330
263312003-07-07 Nick Roberts <nick@nick.uklinux.net>
26332
26333 * gdb-ui.el (gdb-source-info): Display current frame when
26334 attaching to an existing process.
26335 (gdb-setup-windows, gdb-source-info): Start with gud-comint-buffer
26336 while laying out windows when attaching to an existing process.
26337
263382003-07-07 Stefan Monnier <monnier@cs.yale.edu>
26339
26340 * info.el (Info-menu): Use Info-menu-entry-name-re.
26341
263422003-07-06 Stefan Monnier <monnier@cs.yale.edu>
26343
26344 * vc-hooks.el (vc-stay-local, vc-stay-local-p): Move from vc.el.
26345 * vc.el (vc-stay-local, vc-stay-local-p): Move to vc-hooks.el.
26346
26347 * info.el (Info-menu-entry-name-re): Be careful to avoid multiple ways
26348 to match the same text.
26349
263502003-07-06 John Paul Wallington <jpw@gnu.org>
26351
26352 * vc.el (vc-annotate-offset): Move defvar up.
26353
263542003-07-06 Kim F. Storm <storm@cua.dk>
26355
26356 * info.el (Info-menu-entry-name-re): Add `:' to second [] part.
26357 This should fix the infinite loop when extracting menu names.
26358
263592003-07-05 Martin Stjernholm <bug-cc-mode@gnu.org>
26360
26361 * files.el (auto-mode-alist, interpreter-mode-alist):
26362 Remove entries to CC Mode modes to avoid duplicates; they are now added
26363 with autoload directives in cc-mode.el.
26364
263652003-07-05 Martin Stjernholm <bug-cc-mode@gnu.org>
26366
26367 * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist)
26368 (c-lang-variable-inits, c-lang-variable-inits-tail): The values of
26369 these are changed, so declare them as variables and not constants.
26370
26371 * progmodes/cc-mode.el: Fix some autoload problems: Try to
26372 ensure that the entry for ".c" extension comes before the one for
26373 ".C" on `auto-mode-alist', to behave better on case insensitive OS:es.
26374 Fix incorrect entries that were added to `interpreter-mode-alist'.
26375 Move the autoload directives for AWK to the top level since they
26376 aren't recognized anywhere else. Do not use the new AWK mode doc
26377 in the autoload form for the old AWK mode.
26378
263792003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
26380
26381 * textmodes/bibtex.el (bibtex-sort-entry-class): New entry catch-all.
26382 (bibtex-sort-ignore-string-entries): Default value t.
26383 (bibtex-entry-kill-ring-max): Reintroduce as it was removed
26384 erroneously in previous version.
26385 (bibtex-string-files): Docstring reflects new parsing scheme.
26386 (bibtex-autokey-transcriptions): Merge some rewrite entries, fix
26387 docstring, add # as one of the chars to crush
26388 (bibtex-autokey-prefix-string, bibtex-autokey-names)
26389 (bibtex-autokey-names-stretch, bibtex-autokey-additional-names)
26390 (bibtex-autokey-name-change-strings)
26391 (bibtex-autokey-name-case-convert, bibtex-autokey-name-length)
26392 (bibtex-autokey-name-separator, bibtex-autokey-year-length)
26393 (bibtex-autokey-use-crossref, bibtex-autokey-titlewords)
26394 (bibtex-autokey-title-terminators)
26395 (bibtex-autokey-titlewords-stretch)
26396 (bibtex-autokey-titleword-ignore)
26397 (bibtex-autokey-titleword-case-convert)
26398 (bibtex-autokey-titleword-abbrevs)
26399 (bibtex-autokey-titleword-abbrevs)
26400 (bibtex-autokey-titleword-change-strings)
26401 (bibtex-autokey-titleword-length)
26402 (bibtex-autokey-titleword-separator)
26403 (bibtex-autokey-name-year-separator)
26404 (bibtex-autokey-year-title-separator)
26405 (bibtex-autokey-before-presentation-function)
26406 (bibtex-entry-type-history, bibtex-entry-maybe-empty-head):
26407 Fix docstring.
26408 (bibtex-strings, bibtex-reference-keys):
26409 Use lazy-completion-table and make-variable-buffer-local.
26410 (bibtex-sort-entry-class-alist): Use downcase, account for catch-all.
26411 (bibtex-braced-string-syntax-table)
26412 (bibtex-quoted-string-syntax-table): New variables.
26413 (bibtex-parse-nested-braces): Remove.
26414 (bibtex-parse-field-string): Use syntax table and forward-sexp.
26415 (bibtex-parse-association): Simplify.
26416 (bibtex-parse-field-name): Obey bibtex-autoadd-commas.
26417 (bibtex-parse-field-text): Simplify.
26418 (bibtex-search-forward-field, bibtex-search-backward-field):
26419 argument BOUND can take value t.
26420 (bibtex-start-of-field, bibtex-start-of-name-in-field)
26421 (bibtex-end-of-name-in-field, bibtex-end-of-field)
26422 (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field)
26423 (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string)
26424 (bibtex-end-of-string, bibtex-type-in-head): Use defsubst.
26425 (bibtex-skip-to-valid-entry): Return buffer position of beginning
26426 and ending of entry. Update for changes of bibtex-search-entry.
26427 Simplify.
26428 (bibtex-map-entries): FUN is called with three arguments.
26429 (bibtex-search-entry): Return a cons pair with buffer positions of
26430 beginning and end of entry.
26431 (bibtex-enclosing-field): Simplify.
26432 (bibtex-format-entry): Use booktitle to set a missing title.
26433 (bibtex-autokey-get-names): Fiddle with regexps.
26434 (bibtex-generate-autokey): Use identity.
26435 (bibtex-parse-keys): Use simplified parsing algorithm if
26436 bibtex-parse-keys-fast is non-nil. Simplify. Change order of
26437 arguments. Return alist of keys.
26438 (bibtex-parse-strings): Simplify. Return alist of strings.
26439 (bibtex-complete-string-cleanup): Fix docstring.
26440 (bibtex-read-key): New function.
26441 (bibtex-mode): Fix docstring. Do not parse for keys and
26442 strings when the mode is entered. Set fill-paragraph-function to
26443 bibtex-fill-field. Setup font-lock-mark-block-function the way
26444 font-lock intended.
26445 (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types.
26446 (bibtex-parse-entry, bibtex-autofill-entry): New functions.
26447 (bibtex-print-help-message, bibtex-remove-OPT-or-ALT)
26448 (bibtex-Preamble): Avoid hard coded constants.
26449 (bibtex-make-field): Fix docstring. Simplify.
26450 (bibtex-beginning-of-entry): Always return new position of point.
26451 (bibtex-end-of-entry): Rearrange cond clauses.
26452 (bibtex-count-entries, bibtex-validate, bibtex-reformat):
26453 Update for changes of bibtex-map-entries.
26454 (bibtex-ispell-abstract): Do not move point.
26455 (bibtex-entry-index): Use downcase. Simplify.
26456 (bibtex-lessp): Handle catch-all.
26457 (bibtex-find-crossref): Turn into a command.
26458 (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp.
26459 (bibtex-clean-entry): Use bibtex-read-key. Handle string and
26460 preamble entries.
26461 (bibtex-fill-field-bounds): New function.
26462 (bibtex-fill-field): New command. Bound to fill-paragraph-function.
26463 (bibtex-fill-entry): Use bibtex-fill-field-bounds
26464 (bibtex-String): Use bibtex-strings. Always obey
26465 bibtex-sort-ignore-string-entries.
26466
264672003-07-05 John Paul Wallington <jpw@gnu.org>
26468
26469 * cus-theme.el (customize-create-theme):
26470 Call `customize-create-theme' in Reset widget's notify function.
26471
26472 * ibuffer.el (ibuffer-backward-line, ibuffer-forward-line)
26473 (ibuffer-mark-interactive): Use `or' instead of `unless'.
26474 (define-ibuffer-column name): Add summarizer.
26475 (define-ibuffer-column size): Likewise.
26476 (define-ibuffer-column filename): Likewise.
26477 (define-ibuffer-column process): Likewise. Change BODY's output too.
26478 (define-ibuffer-column filename-and-process): Likewise, likewise.
26479 (ibuffer): Remove local vars `already-in' and `need-update'.
26480
26481 * ibuf-ext.el: Don't require `derived' at compile-time.
26482
264832003-07-05 Kim F. Storm <storm@cua.dk>
26484
26485 * info.el: Disable paragraph refilling.
26486 (Info-refill-paragraphs): New defcustom.
26487 (Info-fontify-node): Use it.
26488
264892003-07-04 Stefan Monnier <monnier@cs.yale.edu>
26490
26491 * emacs-lisp/cl-macs.el (cl-transform-lambda): Strip &cl-defs
26492 thingies from constructors created by defstruct.
26493
26494 * emacs-lisp/bytecomp.el (byte-compile-defvar): Check and set
26495 the default value of the variable.
26496 (byte-code-meter): Move declaration to top level.
26497
26498 * pcvs-parse.el (cvs-parse-status): Ignore extra fields from CVSNT.
26499
26500 * info.el (Info-following-node-name-re): New fun.
26501 (Info-following-node-name): Remove.
26502 (Info-insert-dir): Use the new fun.
26503 (Info-extract-pointer): Don't save restriction; use new fun.
26504 (Info-menu-entry-name-re): New const.
26505 (Info-menu-entry-name-re): Use it along with new fun.
26506 (Info-node-spec-re): Use new fun.
26507 (Info-complete-menu-item, Info-fontify-node): Use new const.
26508 (Info-goto-node, Info-follow-reference, Info-menu-update):
26509 Use match-string.
26510 (Info-follow-reference): Use assoc-string.
26511 Use a list of strings for the completion table.
26512 (Info-fontify-node): Use match-string, line-end-position.
26513 Limit the search for `node:' to the first line.
26514
26515 * newcomment.el (uncomment-region): Remove padding coming from
26516 comment-start rather than just from comment-padding.
26517
26518 * vc-cvs.el (vc-cvs-repository-hostname): New operation.
26519 (vc-cvs-stay-local-p): Use vc-stay-local-p.
26520 (vc-cvs-rename-file): Remove (use the default).
26521 (vc-cvs-register): Register parent dir if needed.
26522 (vc-cvs-could-register): Return non-nil if parent can be registered.
26523 (vc-cvs-state, vc-cvs-dir-state, vc-cvs-print-log, vc-cvs-diff)
26524 (vc-cvs-diff-tree, vc-cvs-make-version-backups-p): Use vc-stay-local-p.
26525
26526 * vc-svn.el (vc-svn-use-edit): Make it into a const.
26527 (vc-svn-update): Fix the arguments to `svn'.
26528 (vc-svn-diff-tree): Just use `vc-svn-diff'.
26529 (vc-svn-create-snapshot, vc-svn-retrieve-snapshot):
26530 Simple implementations, assuming `name' is a URL.
26531
26532 * progmodes/sh-script.el (sh-font-lock-paren): Add [ and ] to the
26533 set of chars allowed unquoted in a case pattern.
26534
26535 * font-core.el (font-lock-defaults-alist): Remove obsolete entries.
26536
26537 * font-lock.el (font-lock-extra-types-widget)
26538 (c-font-lock-extra-types, c++-font-lock-extra-types)
26539 (objc-font-lock-extra-types, java-font-lock-extra-types)
26540 (c-font-lock-keywords-1, c-font-lock-keywords-2, c-font-lock-keywords)
26541 (c-font-lock-keywords-3, c-font-lock-syntactic-face-function)
26542 (font-lock-match-c++-style-declaration-item-and-skip-to-next)
26543 (font-lock-match-c++-structor-declaration)
26544 (c++-font-lock-keywords-1, c++-font-lock-keywords-2)
26545 (c++-font-lock-keywords-3, c++-font-lock-keywords)
26546 (objc-font-lock-keywords-1, objc-font-lock-keywords-2)
26547 (objc-font-lock-keywords-3, objc-font-lock-keywords)
26548 (java-font-lock-keywords-1, java-font-lock-keywords-2)
26549 (java-font-lock-keywords-3, java-font-lock-keywords)
26550 (java-font-lock-syntactic-face-function): Remove obsolete code
26551 and constants. It's all in cc-fonts.el now.
26552
265532003-07-04 Glenn Morris <gmorris@ast.cam.ac.uk>
26554
26555 * mail/sendmail.el (mail-specify-envelope-from)
26556 (mail-envelope-from): Doc fix.
26557
265582003-07-04 Martin Stjernholm <mast@lysator.liu.se>
26559
26560 * generic-x.el: Do away with the dependency on `c-emacs-features'
26561 when populating `rul-generic-mode-syntax-table'; we already know
26562 this isn't XEmacs.
26563
26564See ChangeLog.10 for earlier changes.
26565 12656
26566;; Local Variables: 12657;; Local Variables:
26567;; coding: iso-2022-7bit 12658;; coding: iso-2022-7bit
26568;; End: 12659;; End:
26569 12660
26570 Copyright (C) 2001, 02, 04 Free Software Foundation, Inc. 12661 Copyright (C) 2005 Free Software Foundation, Inc.
26571 Copying and distribution of this file, with or without modification, 12662 Copying and distribution of this file, with or without modification,
26572 are permitted provided the copyright notice and this notice are preserved. 12663 are permitted provided the copyright notice and this notice are preserved.
26573 12664
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 4a6b352a154..fcad72a88e4 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -742,7 +742,7 @@ language you are using."
742 742
743;; natural bindings for terminal keycaps --- defined in X keysym order 743;; natural bindings for terminal keycaps --- defined in X keysym order
744(define-key global-map [C-S-backspace] 'kill-whole-line) 744(define-key global-map [C-S-backspace] 'kill-whole-line)
745(define-key global-map [home] 'beginning-of-line) 745(define-key global-map [home] 'move-beginning-of-line)
746(define-key global-map [C-home] 'beginning-of-buffer) 746(define-key global-map [C-home] 'beginning-of-buffer)
747(define-key global-map [M-home] 'beginning-of-buffer-other-window) 747(define-key global-map [M-home] 'beginning-of-buffer-other-window)
748(define-key esc-map [home] 'beginning-of-buffer-other-window) 748(define-key esc-map [home] 'beginning-of-buffer-other-window)
@@ -762,7 +762,7 @@ language you are using."
762(define-key global-map [M-prior] 'scroll-other-window-down) 762(define-key global-map [M-prior] 'scroll-other-window-down)
763(define-key esc-map [prior] 'scroll-other-window-down) 763(define-key esc-map [prior] 'scroll-other-window-down)
764(define-key esc-map [?\C-\S-v] 'scroll-other-window-down) 764(define-key esc-map [?\C-\S-v] 'scroll-other-window-down)
765(define-key global-map [end] 'end-of-line) 765(define-key global-map [end] 'move-end-of-line)
766(define-key global-map [C-end] 'end-of-buffer) 766(define-key global-map [C-end] 'end-of-buffer)
767(define-key global-map [M-end] 'end-of-buffer-other-window) 767(define-key global-map [M-end] 'end-of-buffer-other-window)
768(define-key esc-map [end] 'end-of-buffer-other-window) 768(define-key esc-map [end] 'end-of-buffer-other-window)
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index 06b83872449..ccced635976 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -195,7 +195,7 @@ STRING is the description of the appointment.
195FLAG, if non-nil, says that the element was made with `appt-add' 195FLAG, if non-nil, says that the element was made with `appt-add'
196so calling `appt-make-list' again should preserve it.") 196so calling `appt-make-list' again should preserve it.")
197 197
198(defconst appt-max-time 1439 198(defconst appt-max-time (1- (* 24 60))
199 "11:59pm in minutes - number of minutes in a day minus 1.") 199 "11:59pm in minutes - number of minutes in a day minus 1.")
200 200
201(defvar appt-mode-string nil 201(defvar appt-mode-string nil
@@ -484,13 +484,15 @@ Usually just deletes the appointment buffer."
484 lowest-window w))))) 484 lowest-window w)))))
485 (select-window lowest-window))) 485 (select-window lowest-window)))
486 486
487(defconst appt-time-regexp
488 "[0-9]?[0-9]\\(h\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]\\)\\(am\\|pm\\)?")
489
487;;;###autoload 490;;;###autoload
488(defun appt-add (new-appt-time new-appt-msg) 491(defun appt-add (new-appt-time new-appt-msg)
489 "Add an appointment for today at NEW-APPT-TIME with message NEW-APPT-MSG. 492 "Add an appointment for today at NEW-APPT-TIME with message NEW-APPT-MSG.
490The time should be in either 24 hour format or am/pm format." 493The time should be in either 24 hour format or am/pm format."
491 (interactive "sTime (hh:mm[am/pm]): \nsMessage: ") 494 (interactive "sTime (hh:mm[am/pm]): \nsMessage: ")
492 (unless (string-match "[0-9]?[0-9][:.][0-9][0-9]\\(am\\|pm\\)?" 495 (unless (string-match appt-time-regexp new-appt-time)
493 new-appt-time)
494 (error "Unacceptable time-string")) 496 (error "Unacceptable time-string"))
495 (let* ((appt-time-string (concat new-appt-time " " new-appt-msg)) 497 (let* ((appt-time-string (concat new-appt-time " " new-appt-msg))
496 (appt-time (list (appt-convert-time new-appt-time))) 498 (appt-time (list (appt-convert-time new-appt-time)))
@@ -577,16 +579,14 @@ appointment package (if it is not already active)."
577 (calendar-date-equal 579 (calendar-date-equal
578 (calendar-current-date) (car (car entry-list)))) 580 (calendar-current-date) (car (car entry-list))))
579 (let ((time-string (cadr (car entry-list)))) 581 (let ((time-string (cadr (car entry-list))))
580 (while (string-match 582 (while (string-match appt-time-regexp time-string)
581 "\\([0-9]?[0-9][:.][0-9][0-9]\\(am\\|pm\\)?\\).*"
582 time-string)
583 (let* ((beg (match-beginning 0)) 583 (let* ((beg (match-beginning 0))
584 ;; Get just the time for this appointment. 584 ;; Get just the time for this appointment.
585 (only-time (match-string 1 time-string)) 585 (only-time (match-string 0 time-string))
586 ;; Find the end of this appointment 586 ;; Find the end of this appointment
587 ;; (the start of the next). 587 ;; (the start of the next).
588 (end (string-match 588 (end (string-match
589 "^[ \t]*[0-9]?[0-9][:.][0-9][0-9]\\(am\\|pm\\)?" 589 (concat "\n[ \t]*" appt-time-regexp)
590 time-string 590 time-string
591 (match-end 0))) 591 (match-end 0)))
592 ;; Get the whole string for this appointment. 592 ;; Get the whole string for this appointment.
@@ -633,31 +633,23 @@ APPT-LIST is a list of the same format as `appt-time-msg-list'."
633 "Convert hour:min[am/pm] format to minutes from midnight. 633 "Convert hour:min[am/pm] format to minutes from midnight.
634A period (.) can be used instead of a colon (:) to separate the 634A period (.) can be used instead of a colon (:) to separate the
635hour and minute parts." 635hour and minute parts."
636 (let ((conv-time 0) 636 ;; Formats that should be accepted:
637 (hr 0) 637 ;; 10:00 10.00 10h00 10h 10am 10:00am 10.00am
638 (min 0)) 638 (let ((min (if (string-match "[h:.]\\([0-9][0-9]\\)" time2conv)
639 639 (string-to-number (match-string 1 time2conv))
640 (string-match "[:.]\\([0-9][0-9]\\)" time2conv) 640 0))
641 (setq min (string-to-number 641 (hr (if (string-match "[0-9]*[0-9]" time2conv)
642 (match-string 1 time2conv))) 642 (string-to-number (match-string 0 time2conv))
643 643 0)))
644 (string-match "[0-9]?[0-9][:.]" time2conv)
645 (setq hr (string-to-number
646 (match-string 0 time2conv)))
647 644
648 ;; convert the time appointment time into 24 hour time 645 ;; convert the time appointment time into 24 hour time
649
650 (cond ((and (string-match "pm" time2conv) (< hr 12)) 646 (cond ((and (string-match "pm" time2conv) (< hr 12))
651 (setq hr (+ 12 hr))) 647 (setq hr (+ 12 hr)))
652 ((and (string-match "am" time2conv) (= hr 12)) 648 ((and (string-match "am" time2conv) (= hr 12))
653 (setq hr 0))) 649 (setq hr 0)))
654 650
655 ;; convert the actual time 651 ;; convert the actual time into minutes.
656 ;; into minutes for comparison 652 (+ (* hr 60) min)))
657 ;; against the actual time.
658
659 (setq conv-time (+ (* hr 60) min))
660 conv-time))
661 653
662 654
663(defun appt-update-list () 655(defun appt-update-list ()
@@ -719,5 +711,5 @@ ARG is positive, otherwise off."
719 711
720(provide 'appt) 712(provide 'appt)
721 713
722;;; arch-tag: bf5791c4-8921-499e-a26f-772b1788d347 714;; arch-tag: bf5791c4-8921-499e-a26f-772b1788d347
723;;; appt.el ends here 715;;; appt.el ends here
diff --git a/lisp/calendar/cal-menu.el b/lisp/calendar/cal-menu.el
index 870e0fb2f7f..d706dfd6ea3 100644
--- a/lisp/calendar/cal-menu.el
+++ b/lisp/calendar/cal-menu.el
@@ -352,7 +352,7 @@ Any holidays are shown if `holidays-in-diary-buffer' is t."
352 (diary-display-hook 'ignore) 352 (diary-display-hook 'ignore)
353 (diary-entries 353 (diary-entries
354 (mapcar (lambda (x) (split-string (car (cdr x)) "\^M\\|\n")) 354 (mapcar (lambda (x) (split-string (car (cdr x)) "\^M\\|\n"))
355 (diary-list-entries date 1))) 355 (diary-list-entries date 1 'list-only)))
356 (holidays (if holidays-in-diary-buffer 356 (holidays (if holidays-in-diary-buffer
357 (check-calendar-holidays date))) 357 (check-calendar-holidays date)))
358 (title (concat "Diary entries " 358 (title (concat "Diary entries "
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 3b634caaa9c..b997b5b5f61 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -271,20 +271,22 @@ search."
271;; This can be removed once the kill/yank treatment of invisible text 271;; This can be removed once the kill/yank treatment of invisible text
272;; (see etc/TODO) is fixed. -- gm 272;; (see etc/TODO) is fixed. -- gm
273(defcustom diary-header-line-flag t 273(defcustom diary-header-line-flag t
274 "*If non-nil, `simple-diary-display' will show a header line. 274 "If non-nil, `diary-simple-display' will show a header line.
275The format of the header is specified by `diary-header-line-format'." 275The format of the header is specified by `diary-header-line-format'."
276 :group 'diary 276 :group 'diary
277 :type 'boolean 277 :type 'boolean
278 :version "22.1") 278 :version "22.1")
279 279
280(defvar diary-selective-display nil)
281
280(defcustom diary-header-line-format 282(defcustom diary-header-line-format
281 '(:eval (calendar-string-spread 283 '(:eval (calendar-string-spread
282 (list (if selective-display 284 (list (if diary-selective-display
283 "Selective display active - press \"s\" in calendar \ 285 "Selective display active - press \"s\" in calendar \
284before edit/copy" 286before edit/copy"
285 "Diary")) 287 "Diary"))
286 ?\s (frame-width))) 288 ?\s (frame-width)))
287 "*Format of the header line displayed by `simple-diary-display'. 289 "Format of the header line displayed by `diary-simple-display'.
288Only used if `diary-header-line-flag' is non-nil." 290Only used if `diary-header-line-flag' is non-nil."
289 :group 'diary 291 :group 'diary
290 :type 'sexp 292 :type 'sexp
@@ -322,17 +324,17 @@ number of days of diary entries displayed."
322 :group 'diary) 324 :group 'diary)
323 325
324(define-obsolete-function-alias 'list-diary-entries 'diary-list-entries) 326(define-obsolete-function-alias 'list-diary-entries 'diary-list-entries)
325(defun diary-list-entries (date number) 327(defun diary-list-entries (date number &optional list-only)
326 "Create and display a buffer containing the relevant lines in `diary-file'. 328 "Create and display a buffer containing the relevant lines in `diary-file'.
327The arguments are DATE and NUMBER; the entries selected are those 329The arguments are DATE and NUMBER; the entries selected are those
328for NUMBER days starting with date DATE. The other entries are hidden 330for NUMBER days starting with date DATE. The other entries are hidden
329using selective display. If NUMBER is less than 1, this function does nothing. 331using selective display. If NUMBER is less than 1, this function does nothing.
330 332
331Returns a list of all relevant diary entries found, if any, in order by date. 333Returns a list of all relevant diary entries found, if any, in order by date.
332The list entries have the form ((month day year) string specifier) where 334The list entries have the form ((MONTH DAY YEAR) STRING SPECIFIER) where
333\(month day year) is the date of the entry, string is the entry text, and 335\(MONTH DAY YEAR) is the date of the entry, STRING is the entry text, and
334specifier is the applicability. If the variable `diary-list-include-blanks' 336SPECIFIER is the applicability. If the variable `diary-list-include-blanks'
335is t, this list includes a dummy diary entry consisting of the empty string) 337is t, this list includes a dummy diary entry consisting of the empty string
336for a date with no diary entries. 338for a date with no diary entries.
337 339
338After the list is prepared, the hooks `nongregorian-diary-listing-hook', 340After the list is prepared, the hooks `nongregorian-diary-listing-hook',
@@ -354,7 +356,9 @@ These hooks have the following distinct roles:
354 add-hook to set this to ignore. 356 add-hook to set this to ignore.
355 357
356 `diary-hook' is run last. This can be used for an appointment 358 `diary-hook' is run last. This can be used for an appointment
357 notification function." 359 notification function.
360
361If LIST-ONLY is non-nil don't modify or display the buffer, only return a list."
358 (unless number 362 (unless number
359 (setq number (if (vectorp number-of-diary-entries) 363 (setq number (if (vectorp number-of-diary-entries)
360 (aref number-of-diary-entries (calendar-day-of-week date)) 364 (aref number-of-diary-entries (calendar-day-of-week date))
@@ -373,29 +377,20 @@ These hooks have the following distinct roles:
373 (set-buffer diary-buffer) 377 (set-buffer diary-buffer)
374 (or (verify-visited-file-modtime diary-buffer) 378 (or (verify-visited-file-modtime diary-buffer)
375 (revert-buffer t t)))) 379 (revert-buffer t t))))
380 ;; Setup things like the header-line-format and invisibility-spec.
381 (when (eq major-mode 'fundamental-mode) (diary-mode))
376 ;; d-s-p is passed to the diary display function. 382 ;; d-s-p is passed to the diary display function.
377 (let ((diary-saved-point (point))) 383 (let ((diary-saved-point (point)))
378 (save-excursion 384 (save-excursion
379 (setq file-glob-attrs (nth 1 (diary-pull-attrs nil ""))) 385 (setq file-glob-attrs (nth 1 (diary-pull-attrs nil "")))
380 (setq selective-display t)
381 (setq selective-display-ellipses nil)
382 (if diary-header-line-flag
383 (setq header-line-format diary-header-line-format))
384 (with-syntax-table diary-syntax-table 386 (with-syntax-table diary-syntax-table
385 (let ((buffer-read-only nil) 387 (let ((mark (regexp-quote diary-nonmarking-symbol)))
386 (diary-modified (buffer-modified-p))
387 (mark (regexp-quote diary-nonmarking-symbol)))
388 ;; First and last characters must be ^M or \n for
389 ;; selective display to work properly
390 (goto-char (1- (point-max)))
391 (if (not (looking-at "\^M\\|\n"))
392 (progn
393 (goto-char (point-max))
394 (insert "\^M")))
395 (goto-char (point-min)) 388 (goto-char (point-min))
396 (if (not (looking-at "\^M\\|\n")) 389 (unless list-only
397 (insert "\^M")) 390 (let ((ol (make-overlay (point-min) (point-max) nil t nil)))
398 (subst-char-in-region (point-min) (point-max) ?\n ?\^M t) 391 (set (make-local-variable 'diary-selective-display) t)
392 (overlay-put ol 'invisible 'diary)
393 (overlay-put ol 'evaporate t)))
399 (calendar-for-loop 394 (calendar-for-loop
400 i from 1 to number do 395 i from 1 to number do
401 (let ((month (extract-calendar-month date)) 396 (let ((month (extract-calendar-month date))
@@ -426,7 +421,7 @@ These hooks have the following distinct roles:
426 (regexp 421 (regexp
427 (concat 422 (concat
428 "\\(\\`\\|\^M\\|\n\\)" mark "?\\(" 423 "\\(\\`\\|\^M\\|\n\\)" mark "?\\("
429 (mapconcat 'eval date-form "\\)\\(") 424 (mapconcat 'eval date-form "\\)\\(?:")
430 "\\)")) 425 "\\)"))
431 (case-fold-search t)) 426 (case-fold-search t))
432 (goto-char (point-min)) 427 (goto-char (point-min))
@@ -448,8 +443,9 @@ These hooks have the following distinct roles:
448 (while (looking-at " \\|\^I") 443 (while (looking-at " \\|\^I")
449 (re-search-forward "\^M\\|\n" nil t)) 444 (re-search-forward "\^M\\|\n" nil t))
450 (backward-char 1) 445 (backward-char 1)
451 (subst-char-in-region date-start 446 (unless list-only
452 (point) ?\^M ?\n t) 447 (remove-overlays date-start (point)
448 'invisible 'diary))
453 (setq entry (buffer-substring entry-start (point)) 449 (setq entry (buffer-substring entry-start (point))
454 temp (diary-pull-attrs entry file-glob-attrs) 450 temp (diary-pull-attrs entry file-glob-attrs)
455 entry (nth 0 temp)) 451 entry (nth 0 temp))
@@ -467,23 +463,20 @@ These hooks have the following distinct roles:
467 (setq date 463 (setq date
468 (calendar-gregorian-from-absolute 464 (calendar-gregorian-from-absolute
469 (1+ (calendar-absolute-from-gregorian date)))) 465 (1+ (calendar-absolute-from-gregorian date))))
470 (setq entry-found nil))) 466 (setq entry-found nil)))))
471 (set-buffer-modified-p diary-modified)))
472 (goto-char (point-min)) 467 (goto-char (point-min))
473 (run-hooks 'nongregorian-diary-listing-hook 468 (run-hooks 'nongregorian-diary-listing-hook
474 'list-diary-entries-hook) 469 'list-diary-entries-hook)
475 (if diary-display-hook 470 (unless list-only
476 (run-hooks 'diary-display-hook) 471 (if diary-display-hook
477 (simple-diary-display)) 472 (run-hooks 'diary-display-hook)
473 (simple-diary-display)))
478 (run-hooks 'diary-hook) 474 (run-hooks 'diary-hook)
479 diary-entries-list)))))) 475 diary-entries-list))))))
480 476
481(defun diary-unhide-everything () 477(defun diary-unhide-everything ()
482 (setq selective-display nil) 478 (kill-local-variable 'diary-selective-display)
483 (let ((inhibit-read-only t) 479 (remove-overlays (point-min) (point-max) 'invisible 'diary)
484 (modified (buffer-modified-p)))
485 (subst-char-in-region (point-min) (point-max) ?\^M ?\n t)
486 (set-buffer-modified-p modified))
487 (kill-local-variable 'mode-line-format)) 480 (kill-local-variable 'mode-line-format))
488 481
489(defun include-other-diary-files () 482(defun include-other-diary-files ()
@@ -603,8 +596,8 @@ This function is provided for optional use as the `diary-display-hook'."
603 (setq buffer-read-only t) 596 (setq buffer-read-only t)
604 (display-buffer holiday-buffer) 597 (display-buffer holiday-buffer)
605 (message "No diary entries for %s" date-string))) 598 (message "No diary entries for %s" date-string)))
606 (save-excursion;; Prepare the fancy diary buffer. 599 (with-current-buffer;; Prepare the fancy diary buffer.
607 (set-buffer (make-fancy-diary-buffer)) 600 (make-fancy-diary-buffer)
608 (setq buffer-read-only nil) 601 (setq buffer-read-only nil)
609 (let ((entry-list diary-entries-list) 602 (let ((entry-list diary-entries-list)
610 (holiday-list) 603 (holiday-list)
@@ -673,10 +666,10 @@ This function is provided for optional use as the `diary-display-hook'."
673 (temp-face (make-symbol 666 (temp-face (make-symbol
674 (apply 667 (apply
675 'concat "temp-face-" 668 'concat "temp-face-"
676 (mapcar '(lambda (sym) 669 (mapcar (lambda (sym)
677 (if (stringp sym) 670 (if (stringp sym)
678 sym 671 sym
679 (symbol-name sym))) 672 (symbol-name sym)))
680 marks)))) 673 marks))))
681 (faceinfo marks)) 674 (faceinfo marks))
682 (make-face temp-face) 675 (make-face temp-face)
@@ -687,7 +680,7 @@ This function is provided for optional use as the `diary-display-hook'."
687 (setcar faceinfo nil) 680 (setcar faceinfo nil)
688 (setcar (cdr faceinfo) nil)) 681 (setcar (cdr faceinfo) nil))
689 (setq marks (delq nil marks)) 682 (setq marks (delq nil marks))
690 ;; Apply the font aspects 683 ;; Apply the font aspects.
691 (apply 'set-face-attribute temp-face nil marks) 684 (apply 'set-face-attribute temp-face nil marks)
692 (search-backward entry) 685 (search-backward entry)
693 (overlay-put 686 (overlay-put
@@ -704,8 +697,7 @@ This function is provided for optional use as the `diary-display-hook'."
704 697
705(defun make-fancy-diary-buffer () 698(defun make-fancy-diary-buffer ()
706 "Create and return the initial fancy diary buffer." 699 "Create and return the initial fancy diary buffer."
707 (save-excursion 700 (with-current-buffer (get-buffer-create fancy-diary-buffer)
708 (set-buffer (get-buffer-create fancy-diary-buffer))
709 (setq buffer-read-only nil) 701 (setq buffer-read-only nil)
710 (calendar-set-mode-line "Diary Entries") 702 (calendar-set-mode-line "Diary Entries")
711 (erase-buffer) 703 (erase-buffer)
@@ -726,26 +718,33 @@ The hooks given by the variable `print-diary-entries-hook' are called to do
726the actual printing." 718the actual printing."
727 (interactive) 719 (interactive)
728 (if (bufferp (get-buffer fancy-diary-buffer)) 720 (if (bufferp (get-buffer fancy-diary-buffer))
729 (save-excursion 721 (with-current-buffer (get-buffer fancy-diary-buffer)
730 (set-buffer (get-buffer fancy-diary-buffer))
731 (run-hooks 'print-diary-entries-hook)) 722 (run-hooks 'print-diary-entries-hook))
732 (let ((diary-buffer 723 (let ((diary-buffer
733 (find-buffer-visiting (substitute-in-file-name diary-file)))) 724 (find-buffer-visiting (substitute-in-file-name diary-file))))
734 (if diary-buffer 725 (if diary-buffer
735 (let ((temp-buffer (get-buffer-create "*Printable Diary Entries*")) 726 (let ((temp-buffer (get-buffer-create " *Printable Diary Entries*"))
736 (heading)) 727 (heading))
737 (save-excursion 728 (with-current-buffer diary-buffer
738 (set-buffer diary-buffer)
739 (setq heading 729 (setq heading
740 (if (not (stringp mode-line-format)) 730 (if (not (stringp mode-line-format))
741 "All Diary Entries" 731 "All Diary Entries"
742 (string-match "^-*\\([^-].*[^-]\\)-*$" mode-line-format) 732 (string-match "^-*\\([^-].*[^-]\\)-*$" mode-line-format)
743 (substring mode-line-format 733 (match-string 1 mode-line-format)))
744 (match-beginning 1) (match-end 1)))) 734 (let ((start (point-min))
745 (copy-to-buffer temp-buffer (point-min) (point-max)) 735 end)
736 (while
737 (progn
738 (setq end (next-single-char-property-change
739 start 'invisible))
740 (if (get-char-property start 'invisible)
741 nil
742 (with-current-buffer temp-buffer
743 (insert-buffer-substring diary-buffer
744 start (or end (point-max)))))
745 (setq start end)
746 (and end (< end (point-max))))))
746 (set-buffer temp-buffer) 747 (set-buffer temp-buffer)
747 (while (re-search-forward "\^M.*$" nil t)
748 (replace-match ""))
749 (goto-char (point-min)) 748 (goto-char (point-min))
750 (insert heading "\n" 749 (insert heading "\n"
751 (make-string (length heading) ?=) "\n") 750 (make-string (length heading) ?=) "\n")
@@ -764,18 +763,19 @@ is created."
764 (pop-up-frames (window-dedicated-p (selected-window)))) 763 (pop-up-frames (window-dedicated-p (selected-window))))
765 (with-current-buffer (or (find-buffer-visiting d-file) 764 (with-current-buffer (or (find-buffer-visiting d-file)
766 (find-file-noselect d-file t)) 765 (find-file-noselect d-file t))
766 (when (eq major-mode 'fundamental-mode) (diary-mode))
767 (diary-unhide-everything) 767 (diary-unhide-everything)
768 (display-buffer (current-buffer))))) 768 (display-buffer (current-buffer)))))
769 769
770(defcustom diary-mail-addr 770(defcustom diary-mail-addr
771 (if (boundp 'user-mail-address) user-mail-address "") 771 (if (boundp 'user-mail-address) user-mail-address "")
772 "*Email address that `diary-mail-entries' will send email to." 772 "Email address that `diary-mail-entries' will send email to."
773 :group 'diary 773 :group 'diary
774 :type 'string 774 :type 'string
775 :version "20.3") 775 :version "20.3")
776 776
777(defcustom diary-mail-days 7 777(defcustom diary-mail-days 7
778 "*Default number of days for `diary-mail-entries' to check." 778 "Default number of days for `diary-mail-entries' to check."
779 :group 'diary 779 :group 'diary
780 :type 'integer 780 :type 'integer
781 :version "20.3") 781 :version "20.3")
@@ -866,6 +866,7 @@ diary entries."
866 file-glob-attrs marks) 866 file-glob-attrs marks)
867 (with-current-buffer (find-file-noselect (diary-check-diary-file) t) 867 (with-current-buffer (find-file-noselect (diary-check-diary-file) t)
868 (save-excursion 868 (save-excursion
869 (when (eq major-mode 'fundamental-mode) (diary-mode))
869 (setq mark-diary-entries-in-calendar t) 870 (setq mark-diary-entries-in-calendar t)
870 (message "Marking diary entries...") 871 (message "Marking diary entries...")
871 (setq file-glob-attrs (nth 1 (diary-pull-attrs nil '()))) 872 (setq file-glob-attrs (nth 1 (diary-pull-attrs nil '())))
@@ -1118,7 +1119,7 @@ A value of 0 in any position of the pattern is a wildcard."
1118 1119
1119(defcustom diary-unknown-time 1120(defcustom diary-unknown-time
1120 -9999 1121 -9999
1121 "*Value returned by diary-entry-time when no time is found. 1122 "Value returned by diary-entry-time when no time is found.
1122The default value -9999 causes entries with no recognizable time to be placed 1123The default value -9999 causes entries with no recognizable time to be placed
1123before those with times; 9999 would place entries with no recognizable time 1124before those with times; 9999 would place entries with no recognizable time
1124after those with times." 1125after those with times."
@@ -1361,7 +1362,7 @@ best if they are nonmarking."
1361 diary-entry)) 1362 diary-entry))
1362 (if diary-entry 1363 (if diary-entry
1363 (progn 1364 (progn
1364 (subst-char-in-region line-start (point) ?\^M ?\n t) 1365 (remove-overlays line-start (point) 'invisible 'diary)
1365 (if (< 0 (length entry)) 1366 (if (< 0 (length entry))
1366 (setq temp (diary-pull-attrs entry file-glob-attrs) 1367 (setq temp (diary-pull-attrs entry file-glob-attrs)
1367 entry (nth 0 temp) 1368 entry (nth 0 temp)
@@ -1511,7 +1512,7 @@ highlighting the day in the calendar."
1511 (cons mark entry))))) 1512 (cons mark entry)))))
1512 1513
1513 1514
1514(defun diary-anniversary (month day year &optional mark) 1515(defun diary-anniversary (month day &optional year mark)
1515 "Anniversary diary entry. 1516 "Anniversary diary entry.
1516Entry applies if date is the anniversary of MONTH, DAY, YEAR if 1517Entry applies if date is the anniversary of MONTH, DAY, YEAR if
1517`european-calendar-style' is nil, and DAY, MONTH, YEAR if 1518`european-calendar-style' is nil, and DAY, MONTH, YEAR if
@@ -1530,7 +1531,7 @@ use when highlighting the day in the calendar."
1530 day 1531 day
1531 month)) 1532 month))
1532 (y (extract-calendar-year date)) 1533 (y (extract-calendar-year date))
1533 (diff (- y year))) 1534 (diff (if year (- y year) 100)))
1534 (if (and (= m 2) (= d 29) (not (calendar-leap-year-p y))) 1535 (if (and (= m 2) (= d 29) (not (calendar-leap-year-p y)))
1535 (setq m 3 1536 (setq m 3
1536 d 1)) 1537 d 1))
@@ -1578,7 +1579,7 @@ use when highlighting the day in the calendar."
1578 (concat (int-to-string days) (if (= 1 days) " day" " days"))) 1579 (concat (int-to-string days) (if (= 1 days) " day" " days")))
1579 " until " 1580 " until "
1580 diary-entry) 1581 diary-entry)
1581 "*Pseudo-pattern giving form of reminder messages in the fancy diary 1582 "Pseudo-pattern giving form of reminder messages in the fancy diary
1582display. 1583display.
1583 1584
1584Used by the function `diary-remind', a pseudo-pattern is a list of 1585Used by the function `diary-remind', a pseudo-pattern is a list of
@@ -1657,12 +1658,10 @@ Do nothing if DATE or STRING is nil."
1657(defun make-diary-entry (string &optional nonmarking file) 1658(defun make-diary-entry (string &optional nonmarking file)
1658 "Insert a diary entry STRING which may be NONMARKING in FILE. 1659 "Insert a diary entry STRING which may be NONMARKING in FILE.
1659If omitted, NONMARKING defaults to nil and FILE defaults to 1660If omitted, NONMARKING defaults to nil and FILE defaults to
1660`diary-file'. Adds `diary-redraw-calendar' to 1661`diary-file'."
1661`write-contents-functions' for FILE, so that the calendar will be
1662redrawn with the new entry marked, if necessary."
1663 (let ((pop-up-frames (window-dedicated-p (selected-window)))) 1662 (let ((pop-up-frames (window-dedicated-p (selected-window))))
1664 (find-file-other-window (substitute-in-file-name (or file diary-file)))) 1663 (find-file-other-window (substitute-in-file-name (or file diary-file))))
1665 (add-hook 'after-save-hook 'diary-redraw-calendar nil t) 1664 (when (eq major-mode 'fundamental-mode) (diary-mode))
1666 (widen) 1665 (widen)
1667 (diary-unhide-everything) 1666 (diary-unhide-everything)
1668 (goto-char (point-max)) 1667 (goto-char (point-max))
@@ -1867,6 +1866,13 @@ names."
1867(eval-when-compile (require 'cal-hebrew) 1866(eval-when-compile (require 'cal-hebrew)
1868 (require 'cal-islam)) 1867 (require 'cal-islam))
1869 1868
1869(defconst diary-time-regexp
1870 ;; Formats that should be accepted:
1871 ;; 10:00 10.00 10h00 10h 10am 10:00am 10.00am
1872 (concat "[0-9]?[0-9]\\([AaPp][mM]\\|\\("
1873 "[Hh]\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]"
1874 "\\)\\([AaPp][Mm]\\)?\\)"))
1875
1870(defvar diary-font-lock-keywords 1876(defvar diary-font-lock-keywords
1871 (append 1877 (append
1872 (diary-font-lock-date-forms calendar-month-name-array 1878 (diary-font-lock-date-forms calendar-month-name-array
@@ -1907,8 +1913,10 @@ names."
1907 "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)") 1913 "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)")
1908 '(1 font-lock-reference-face)) 1914 '(1 font-lock-reference-face))
1909 '(diary-font-lock-sexps . font-lock-keyword-face) 1915 '(diary-font-lock-sexps . font-lock-keyword-face)
1910 '("[0-9]?[0-9]\\([:.]?[0-9][0-9]\\)?\\(am\\|pm\\|AM\\|PM\\)\\(-[0-9]?[0-9]\\([:.]?[0-9][0-9]\\)?\\(am\\|pm\\|AM\\|PM\\)\\)?" 1916 (cons
1911 . font-lock-function-name-face))) 1917 (concat ;; "^[ \t]+"
1918 diary-time-regexp "\\(-" diary-time-regexp "\\)?")
1919 'font-lock-function-name-face)))
1912 "Forms to highlight in `diary-mode'.") 1920 "Forms to highlight in `diary-mode'.")
1913 1921
1914 1922
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index be3490dfaff..b1646a5665c 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -91,6 +91,7 @@ and type 3 is the list (HIGH LOW MICRO)."
91 ((eq type 1) (list high low)) 91 ((eq type 1) (list high low))
92 ((eq type 2) (list high low micro)))) 92 ((eq type 2) (list high low micro))))
93 93
94(autoload 'parse-time-string "parse-time")
94(autoload 'timezone-make-date-arpa-standard "timezone") 95(autoload 'timezone-make-date-arpa-standard "timezone")
95 96
96;;;###autoload 97;;;###autoload
diff --git a/lisp/comint.el b/lisp/comint.el
index c92d0a10ad3..2ae5e049023 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -3109,8 +3109,8 @@ When redirection is completed, the process filter is restored to
3109this value.") 3109this value.")
3110 3110
3111(defvar comint-redirect-subvert-readonly nil 3111(defvar comint-redirect-subvert-readonly nil
3112 "Non-nil means comint-redirect can insert into otherwise-readonly buffers. 3112 "Non-nil means `comint-redirect' can insert into read-only buffers.
3113The readonly status is toggled around insertion. 3113This works by binding `inhibit-read-only' around the insertion.
3114This is useful, for instance, for insertion into Help mode buffers. 3114This is useful, for instance, for insertion into Help mode buffers.
3115You probably want to set it locally to the output buffer.") 3115You probably want to set it locally to the output buffer.")
3116 3116
diff --git a/lisp/dframe.el b/lisp/dframe.el
new file mode 100644
index 00000000000..4be0ee8f097
--- /dev/null
+++ b/lisp/dframe.el
@@ -0,0 +1,1073 @@
1;;; dframe --- dedicate frame support modes
2
3;;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02, 03, 04 Free Software Foundation
4
5;; Author: Eric M. Ludlam <zappo@gnu.org>
6;; Keywords: file, tags, tools
7
8(defvar dframe-version "1.3"
9 "The current version of the dedicated frame library.")
10
11;; This file is part of GNU Emacs.
12
13;; GNU Emacs is free software; you can redistribute it and/or modify
14;; it under the terms of the GNU General Public License as published by
15;; the Free Software Foundation; either version 2, or (at your option)
16;; any later version.
17
18;; GNU Emacs is distributed in the hope that it will be useful,
19;; but WITHOUT ANY WARRANTY; without even the implied warranty of
20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;; GNU General Public License for more details.
22
23;; You should have received a copy of the GNU General Public License
24;; along with GNU Emacs; see the file COPYING. If not, write to the
25;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
26;; Boston, MA 02110-1301, USA.
27
28;;; Commentary:
29;;
30;; This code was developed and maintained as a part of speedbar since 1996.
31;; It became its own support utility in Aug 2000.
32;;
33;; Dedicated frame mode is an Emacs independent library for supporting
34;; a program/buffer combination that resides in a dedicated frame.
35;; Support of this nature requires several complex interactions with the
36;; user which this library will provide, including:
37;;
38;; * Creation of a frame. Positioned relatively.
39;; Includes a frame cache for User position caching.
40;; * Switching between frames.
41;; * Timed activities using idle-timers
42;; * Frame/buffer killing hooks
43;; * Mouse-3 position relative menu
44;; * Mouse motion, help-echo hacks
45;; * Mouse clicking, double clicking, & Xemacs image clicking hack
46;; * Mode line hacking
47;; * Utilities for use in a program covering:
48;; o keymap massage for some actions
49;; o working with an associated buffer
50;; o shift-click
51;; o detaching a frame
52;; o focus-shifting & optional frame jumping
53;; o currently active frame.
54;; o message/y-or-n-p
55;; o mouse set point
56;;
57;; To Use:
58;; 1) (require 'dframe)
59;; 2) Variable Setup:
60;; -frame-parameters -- Frame parameters for Emacs.
61;; -frame-plist -- Frame parameters for XEmacs.
62;; -- Not on parameter lists: They can optionally include width
63;; and height. If width or height is not included, then it will
64;; be provided to match the originating frame. In general,
65;; turning off the menu bar, mode line, and minibuffer can
66;; provide a smaller window, or more display area.
67;; -track-mouse-flag -- mouse tracking on/off specific to your tool.
68;; -update-flag -- app toggle for timer use. Init from
69;; `dframe-have-timer-flag'. This is nil for terminals, since
70;; updating a frame in a terminal is not useful to the user.
71;; -key-map -- Your keymap. Call `dframe-update-keymap' on it.
72;; -buffer, -frame, -cached-frame -- Variables used to track your
73;; applications buffer, frame, or frame cache (when hidden). See
74;; `dframe-frame-mode' for details.
75;; -before-delete-hook, -before-popup-hook, -after-create-hook --
76;; Hooks to have called. The `-after-create-hook' probably wants
77;; to call a function which calls `dframe-reposition-frame' in an
78;; appropriate manner.
79;; 3) Function Setup:
80;; your-frame-mode -- function to toggle your app frame on and off.
81;; its tasks are:
82;; a) create a buffer
83;; b) Call `dframe-frame-mode'. (See its doc)
84;; c) If successful (your -frame variable has a value), call
85;; timer setup if applicable.
86;; your-frame-reposition- -- Function to call from after-create-hook to
87;; reposition your frame with `dframe-repsoition-frame'.
88;; your-mode -- Set up the major mode of the buffer for your app.
89;; Set these variables: dframe-track-mouse-function,
90;; dframe-help-echo-function,
91;; dframe-mouse-click-function,
92;; dframe-mouse-position-function.
93;; See speedbar's implementation of these functions.
94;; `speedbar-current-frame', `speedbar-get-focus', `speedbar-message',
95;; `speedbar-y-or-n-p', `speedbar-set-timer', `speedbar-click',
96;; `speedbar-position-cursor-on-line'
97;; 4) Handling mouse clicks, and help text:
98;; dframe-track-mouse, dframe-help-echo-function --
99;; These variables need to be set to functions that display info
100;; based on the mouse's position.
101;; Text propert 'help-echo, set to `dframe-help-echo', which will
102;; call `dframe-help-echo-function'.
103;; Have a `-click' function, it can call `dframe-quick-mouse' for
104;; positioning. If the variable `dframe-power-click' is non-nil,
105;; then `shift' was held down during the click.
106
107;;; Bugs
108;;
109;; * The timer managers doesn't handle multiple different timeouts.
110;; * You can't specify continuous timouts (as opposed to just lidle timers.)
111
112(defvar x-pointer-hand2)
113(defvar x-pointer-top-left-arrow)
114
115;;; Code:
116(defvar dframe-xemacsp (string-match "XEmacs" emacs-version)
117 "Non-nil if we are running in the XEmacs environment.")
118(defvar dframe-xemacs20p (and dframe-xemacsp
119 (>= emacs-major-version 20)))
120
121;; From custom web page for compatibility between versions of custom
122;; with help from ptype@dera.gov.uk (Proto Type)
123(eval-and-compile
124 (condition-case ()
125 (require 'custom)
126 (error nil))
127 (if (and (featurep 'custom) (fboundp 'custom-declare-variable)
128 ;; Some XEmacsen w/ custom don't have :set keyword.
129 ;; This protects them against custom.
130 (fboundp 'custom-initialize-set))
131 nil ;; We've got what we needed
132 ;; We have the old custom-library, hack around it!
133 (if (boundp 'defgroup)
134 nil
135 (defmacro defgroup (&rest args)
136 nil))
137 (if (boundp 'defface)
138 nil
139 (defmacro defface (var values doc &rest args)
140 (` (progn
141 (defvar (, var) (quote (, var)))
142 ;; To make colors for your faces you need to set your .Xdefaults
143 ;; or set them up ahead of time in your .emacs file.
144 (make-face (, var))
145 ))))
146 (if (boundp 'defcustom)
147 nil
148 (defmacro defcustom (var value doc &rest args)
149 (` (defvar (, var) (, value) (, doc)))))))
150
151
152;;; Compatibility functions
153;;
154(if (fboundp 'frame-parameter)
155
156 (defalias 'dframe-frame-parameter 'frame-parameter)
157
158 (defun dframe-frame-parameter (frame parameter)
159 "Return FRAME's PARAMETER value."
160 (cdr (assoc parameter (frame-parameters frame)))))
161
162
163;;; Variables
164;;
165(defgroup dframe nil
166 "Faces used in dframe."
167 :prefix "dframe-"
168 :group 'dframe)
169
170(defvar dframe-have-timer-flag
171 (and (or (fboundp 'run-with-idle-timer)
172 (fboundp 'start-itimer)
173 (boundp 'post-command-idle-hook))
174 (if (fboundp 'display-graphic-p)
175 (display-graphic-p)
176 window-system))
177 "Non-nil means that timers are available for this Emacs.")
178
179(defcustom dframe-update-speed
180 (if dframe-xemacsp
181 (if dframe-xemacs20p
182 2 ; 1 is too obrusive in XEmacs
183 5) ; when no idleness, need long delay
184 1)
185 "*Idle time in seconds needed before dframe will update itself.
186Updates occur to allow dframe to display directory information
187relevant to the buffer you are currently editing."
188 :group 'dframe
189 :type 'integer)
190
191(defcustom dframe-activity-change-focus-flag nil
192 "*Non-nil means the selected frame will change based on activity.
193Thus, if a file is selected for edit, the buffer will appear in the
194selected frame and the focus will change to that frame."
195 :group 'dframe
196 :type 'boolean)
197
198(defcustom dframe-after-select-attached-frame-hook nil
199 "*Hook run after dframe has selected the attached frame."
200 :group 'dframe
201 :type 'hook)
202
203(defvar dframe-track-mouse-function nil
204 "*A function to call when the mouse is moved in the given frame.
205Typically used to display info about the line under the mouse.")
206(make-variable-buffer-local 'dframe-track-mouse-function)
207
208(defvar dframe-help-echo-function nil
209 "*A function to call when help-echo is used in newer versions of Emacs.
210Typically used to display info about the line under the mouse.")
211(make-variable-buffer-local 'dframe-help-echo-function)
212
213(defvar dframe-mouse-click-function nil
214 "*A function to call when the mouse is clicked.
215Valid clicks are mouse 2, our double mouse 1.")
216(make-variable-buffer-local 'dframe-mouse-click-function)
217
218(defvar dframe-mouse-position-function nil
219 "*A function to called to position the cursor for a mouse click.")
220(make-variable-buffer-local 'dframe-mouse-position-function)
221
222(defvar dframe-power-click nil
223 "Never set this by hand. Value is t when S-mouse activity occurs.")
224
225(defvar dframe-timer nil
226 "The dframe timer used for updating the buffer.")
227(make-variable-buffer-local 'dframe-timer)
228
229(defvar dframe-attached-frame nil
230 "The frame which started a frame mode.
231This is the frame from which all interesting activities will go
232for the mode using dframe.")
233(make-variable-buffer-local 'dframe-attached-frame)
234
235(defvar dframe-controlled nil
236 "Is this buffer controlled by a dedicated frame.
237Local to those buffers, as a function called that created it.")
238(make-variable-buffer-local 'dframe-controlled)
239
240(defun dframe-update-keymap (map)
241 "Update the keymap MAP for dframe default bindings."
242 ;; Frame control
243 (define-key map "q" 'dframe-close-frame)
244 (define-key map "Q" 'delete-frame)
245
246 ;; Override switch to buffer to never hack our frame.
247 (substitute-key-definition 'switch-to-buffer
248 'dframe-switch-buffer-attached-frame
249 map global-map)
250
251 (if dframe-xemacsp
252 (progn
253 ;; mouse bindings so we can manipulate the items on each line
254 (define-key map 'button2 'dframe-click)
255 (define-key map '(shift button2) 'dframe-power-click)
256 ;; Info doc fix from Bob Weiner
257 (if (featurep 'infodoc)
258 nil
259 (define-key map 'button3 'dframe-xemacs-popup-kludge))
260 )
261
262 ;; mouse bindings so we can manipulate the items on each line
263 ;; (define-key map [down-mouse-1] 'dframe-double-click)
264 (define-key map [follow-link] 'mouse-face)
265 (define-key map [mouse-2] 'dframe-click)
266 ;; This is the power click for new frames, or refreshing a cache
267 (define-key map [S-mouse-2] 'dframe-power-click)
268 ;; This adds a small unecessary visual effect
269 ;;(define-key map [down-mouse-2] 'dframe-quick-mouse)
270
271 (define-key map [down-mouse-3] 'dframe-emacs-popup-kludge)
272
273 ;; This lets the user scroll as if we had a scrollbar... well maybe not
274 (define-key map [mode-line mouse-2] 'dframe-mouse-hscroll)
275 ;; another handy place users might click to get our menu.
276 (define-key map [mode-line down-mouse-1]
277 'dframe-emacs-popup-kludge)
278
279 ;; We can't switch buffers with the buffer mouse menu. Lets hack it.
280 (define-key map [C-down-mouse-1] 'dframe-hack-buffer-menu)
281
282 ;; Lastly, we want to track the mouse. Play here
283 (define-key map [mouse-movement] 'dframe-track-mouse)
284 ))
285
286(defun dframe-live-p (frame)
287 "Return non-nil if FRAME is currently available."
288 (and frame (frame-live-p frame) (frame-visible-p frame)))
289
290(defun dframe-frame-mode (arg frame-var cache-var buffer-var frame-name
291 local-mode-fn
292 &optional
293 parameters
294 delete-hook popup-hook create-hook
295 )
296 "Manage a frame for an application, enabling it when ARG is positive.
297FRAME-VAR is a variable used to cache the frame being used.
298This frame is either resurrected, hidden, killed, etc based on
299the value.
300CACHE-VAR is a variable used to cache a cached frame.
301BUFFER-VAR is a variable used to cache the buffer being used in dframe.
302This buffer will have `dframe-mode' run on it.
303FRAME-NAME is the name of the frame to create.
304LOCAL-MODE-FN is the function used to call this one.
305PARAMETERS are frame parameters to apply to this dframe.
306DELETE-HOOK are hooks to run when deleting a frame.
307POPUP-HOOK are hooks to run before showing a frame.
308CREATE-HOOK are hooks to run after creating a frame."
309 ;; toggle frame on and off.
310 (if (not arg) (if (dframe-live-p (symbol-value frame-var))
311 (setq arg -1) (setq arg 1)))
312 ;; Make sure the current buffer is set.
313 (set-buffer (symbol-value buffer-var))
314 ;; turn the frame off on neg number
315 (if (and (numberp arg) (< arg 0))
316 (progn
317 (run-hooks 'delete-hook)
318 (if (and (symbol-value frame-var)
319 (frame-live-p (symbol-value frame-var)))
320 (progn
321 (set cache-var (symbol-value frame-var))
322 (make-frame-invisible (symbol-value frame-var))))
323 (set frame-var nil))
324 ;; Set this as our currently attached frame
325 (setq dframe-attached-frame (selected-frame))
326 (run-hooks 'popup-hook)
327 ;; Updated the buffer passed in to contain all the hacks needed
328 ;; to make it work well in a dedicated window.
329 (save-excursion
330 (set-buffer (symbol-value buffer-var))
331 ;; Declare this buffer a dedicated frame
332 (setq dframe-controlled local-mode-fn)
333
334 (if dframe-xemacsp
335 ;; Hack the XEmacs mouse-motion handler
336 (with-no-warnings
337 ;; Hack the XEmacs mouse-motion handler
338 (set (make-local-variable 'mouse-motion-handler)
339 'dframe-track-mouse-xemacs)
340 ;; Hack the double click handler
341 (make-local-variable 'mouse-track-click-hook)
342 (add-hook 'mouse-track-click-hook
343 (lambda (event count)
344 (if (/= (event-button event) 1)
345 nil ; Do normal operations.
346 (cond ((eq count 1)
347 (dframe-quick-mouse event))
348 ((or (eq count 2)
349 (eq count 3))
350 (dframe-click event)
351 (dframe-quick-mouse event)))
352 ;; Don't do normal operations.
353 t))))
354 ;; Enable mouse tracking in emacs
355 (if dframe-track-mouse-function
356 (set (make-local-variable 'track-mouse) t)) ;this could be messy.
357 ;; disable auto-show-mode for Emacs
358 (setq auto-show-mode nil))
359;;;; DISABLED: This causes problems for users with multiple frames.
360;;;; ;; Set this up special just for the passed in buffer
361;;;; ;; Terminal minibuffer stuff does not require this.
362;;;; (if (and (or (assoc 'minibuffer parameters)
363;;;; ;; XEmacs plist is not an association list
364;;;; (member 'minibuffer parameters))
365;;;; window-system (not (eq window-system 'pc))
366;;;; (null default-minibuffer-frame))
367;;;; (progn
368;;;; (make-local-variable 'default-minibuffer-frame)
369;;;; (setq default-minibuffer-frame dframe-attached-frame))
370;;;; )
371 ;; Override `temp-buffer-show-hook' so that help and such
372 ;; put their stuff into a frame other than our own.
373 ;; Correct use of `temp-buffer-show-function': Bob Weiner
374 (if (and (boundp 'temp-buffer-show-hook)
375 (boundp 'temp-buffer-show-function))
376 (progn (make-local-variable 'temp-buffer-show-hook)
377 (setq temp-buffer-show-hook temp-buffer-show-function)))
378 (make-local-variable 'temp-buffer-show-function)
379 (setq temp-buffer-show-function 'dframe-temp-buffer-show-function)
380 ;; If this buffer is killed, we must make sure that we destroy
381 ;; the frame the dedicated window is in.
382 (add-hook 'kill-buffer-hook `(lambda ()
383 (let ((skilling (boundp 'skilling)))
384 (if skilling
385 nil
386 (if dframe-controlled
387 (progn
388 (funcall dframe-controlled -1)
389 (setq ,buffer-var nil)
390 )))))
391 t t)
392 )
393 ;; Get the frame to work in
394 (if (frame-live-p (symbol-value cache-var))
395 (progn
396 (set frame-var (symbol-value cache-var))
397 (make-frame-visible (symbol-value frame-var))
398 (select-frame (symbol-value frame-var))
399 (set-window-dedicated-p (selected-window) nil)
400 (if (not (eq (current-buffer) (symbol-value buffer-var)))
401 (switch-to-buffer (symbol-value buffer-var)))
402 (set-window-dedicated-p (selected-window) t)
403 (raise-frame (symbol-value frame-var))
404 )
405 (if (frame-live-p (symbol-value frame-var))
406 (raise-frame (symbol-value frame-var))
407 (set frame-var
408 (if dframe-xemacsp
409 ;; Only guess height if it is not specified.
410 (if (member 'height parameters)
411 (make-frame parameters)
412 (make-frame (nconc (list 'height
413 (dframe-needed-height))
414 parameters)))
415 (let* ((mh (dframe-frame-parameter dframe-attached-frame
416 'menu-bar-lines))
417 (paramsa
418 ;; Only add a guessed height if one is not specified
419 ;; in the input parameters.
420 (if (assoc 'height parameters)
421 parameters
422 (append
423 parameters
424 (list (cons 'height (+ mh (frame-height)))))))
425 (params
426 ;; Only add a guessed width if one is not specified
427 ;; in the input parameters.
428 (if (assoc 'width parameters)
429 paramsa
430 (append
431 paramsa
432 (list (cons 'width (frame-width))))))
433 (frame
434 (if (or (< emacs-major-version 20)
435 (not (eq window-system 'x)))
436 (make-frame params)
437 (let ((x-pointer-shape x-pointer-top-left-arrow)
438 (x-sensitive-text-pointer-shape
439 x-pointer-hand2))
440 (make-frame params)))))
441 frame)))
442 ;; Put the buffer into the frame
443 (save-excursion
444 (select-frame (symbol-value frame-var))
445 (switch-to-buffer (symbol-value buffer-var))
446 (set-window-dedicated-p (selected-window) t))
447 ;; Run hooks (like reposition)
448 (run-hooks 'create-hook)
449 ;; Frame name
450 (if (and (or (null window-system) (eq window-system 'pc))
451 (fboundp 'set-frame-name))
452 (save-window-excursion
453 (select-frame (symbol-value frame-var))
454 (set-frame-name frame-name)))
455 ;; On a terminal, raise the frame or the user will
456 ;; be confused.
457 (if (not window-system)
458 (select-frame (symbol-value frame-var)))
459 ))) )
460
461(defun dframe-reposition-frame (new-frame parent-frame location)
462 "Move NEW-FRAME to be relative to PARENT-FRAME.
463LOCATION can be one of 'random, 'left, 'right, 'left-right, or 'top-bottom."
464 (if dframe-xemacsp
465 (dframe-reposition-frame-xemacs new-frame parent-frame location)
466 (dframe-reposition-frame-emacs new-frame parent-frame location)))
467
468(defun dframe-reposition-frame-emacs (new-frame parent-frame location)
469 "Move NEW-FRAME to be relative to PARENT-FRAME.
470LOCATION can be one of 'random, 'left-right, 'top-bottom, or
471a cons cell indicationg a position of the form (LEFT . TOP)."
472 (let* ((pfx (dframe-frame-parameter parent-frame 'left))
473 (pfy (dframe-frame-parameter parent-frame 'top))
474 (pfw (frame-pixel-width parent-frame))
475 (pfh (frame-pixel-height parent-frame))
476 (nfw (frame-pixel-width new-frame))
477 (nfh (frame-pixel-height new-frame))
478 newleft newtop
479 )
480 ;; Position dframe.
481 (if (or (not window-system) (eq window-system 'pc))
482 ;; Do no positioning if not on a windowing system,
483 nil
484 ;; Rebuild pfx,pfy to be absolute positions.
485 (setq pfx (if (not (consp pfx))
486 pfx
487 ;; If pfx is a list, that means we grow
488 ;; from a specific edge of the display.
489 ;; Convert that to the distance from the
490 ;; left side of the display.
491 (if (eq (car pfx) '-)
492 ;; A - means distance from the right edge
493 ;; of the display, or DW - pfx - framewidth
494 (- (x-display-pixel-width) (car (cdr pfx)) pfw)
495 (car (cdr pfx))))
496 pfy (if (not (consp pfy))
497 pfy
498 ;; If pfy is a list, that means we grow
499 ;; from a specific edge of the display.
500 ;; Convert that to the distance from the
501 ;; left side of the display.
502 (if (eq (car pfy) '-)
503 ;; A - means distance from the right edge
504 ;; of the display, or DW - pfx - framewidth
505 (- (x-display-pixel-height) (car (cdr pfy)) pfh)
506 (car (cdr pfy))))
507 )
508 (cond ((eq location 'right)
509 (setq newleft (+ pfx pfw 5)
510 newtop pfy))
511 ((eq location 'left)
512 (setq newleft (+ pfx 10 nfw)
513 newtop pfy))
514 ((eq location 'left-right)
515 (setq newleft
516 ;; Decide which side to put it on. 200 is just a
517 ;; buffer for the left edge of the screen. The
518 ;; extra 10 is just dressings for window
519 ;; decorations.
520 (let* ((left-guess (- pfx 10 nfw))
521 (right-guess (+ pfx pfw 5))
522 (left-margin left-guess)
523 (right-margin (- (x-display-pixel-width)
524 right-guess 5 nfw)))
525 (cond ((>= left-margin 0) left-guess)
526 ((>= right-margin 0) right-guess)
527 ;; otherwise choose side we overlap less
528 ((> left-margin right-margin) 0)
529 (t (- (x-display-pixel-width) nfw 5))))
530 newtop pfy
531 ))
532 ((eq location 'top-bottom)
533 (setq newleft pfx
534 newtop
535 ;; Try and guess if we should be on the top or bottom.
536 (let* ((top-guess (- pfy 15 nfh))
537 (bottom-guess (+ pfy 5 pfh))
538 (top-margin top-guess)
539 (bottom-margin (- (x-display-pixel-height)
540 bottom-guess 5 nfh)))
541 (cond ((>= top-margin 0) top-guess)
542 ((>= bottom-margin 0) bottom-guess)
543 ;; Choose a side to overlap the least.
544 ((> top-margin bottom-margin) 0)
545 (t (- (x-display-pixel-height) nfh 5)))))
546 )
547 ((consp location)
548 (setq newleft (or (car location) 0)
549 newtop (or (cdr location) 0)))
550 (t nil))
551 (modify-frame-parameters new-frame
552 (list (cons 'left newleft)
553 (cons 'top newtop))))))
554
555(defun dframe-reposition-frame-xemacs (new-frame parent-frame location)
556 "Move NEW-FRAME to be relative to PARENT-FRAME.
557LOCATION can be one of 'random, 'left-right, or 'top-bottom."
558 ;; Not yet implemented
559 )
560
561;; XEmacs function only.
562(defun dframe-needed-height (&optional frame)
563 "The needed height for the tool bar FRAME (in characters)."
564 (or frame (setq frame (selected-frame)))
565 ;; The 1 is the missing modeline/minibuffer
566 (+ 1 (/ (frame-pixel-height frame)
567 ;; This obscure code avoids a byte compiler warning in Emacs.
568 (let ((f 'face-height))
569 (funcall f 'default frame)))))
570
571(defun dframe-detach (frame-var cache-var buffer-var)
572 "Detatch the frame in symbol FRAME-VAR.
573CACHE-VAR and BUFFER-VAR are symbols as in `dframe-frame-mode'"
574 (save-excursion
575 (set-buffer (symbol-value buffer-var))
576 (rename-buffer (buffer-name) t)
577 (let ((oldframe (symbol-value frame-var)))
578 (set buffer-var nil)
579 (set frame-var nil)
580 (set cache-var nil)
581 (make-variable-buffer-local frame-var)
582 (set frame-var oldframe)
583 )))
584
585;;; Special frame event proxies
586;;
587(if (boundp 'special-event-map)
588 (progn
589 (define-key special-event-map [make-frame-visible]
590 'dframe-handle-make-frame-visible)
591 (define-key special-event-map [iconify-frame]
592 'dframe-handle-iconify-frame)
593 (define-key special-event-map [delete-frame]
594 'dframe-handle-delete-frame))
595 )
596
597(defvar dframe-make-frame-visible-function nil
598 "Function used when a dframe controlled frame is de-iconified.
599The function must take an EVENT.")
600(defvar dframe-iconify-frame-function nil
601 "Function used when a dframe controlled frame is iconified.
602The function must take an EVENT.")
603(defvar dframe-delete-frame-function nil
604 "Function used when a frame attached to a dframe frame is deleted.
605The function must take an EVENT.")
606
607(defun dframe-handle-make-frame-visible (e)
608 "Handle a `make-frame-visible' event.
609Should enables auto-updating if the last state was also enabled.
610Argument E is the event making the frame visible."
611 (interactive "e")
612 (let ((f last-event-frame))
613 (if (and (dframe-attached-frame f)
614 dframe-make-frame-visible-function)
615 (funcall dframe-make-frame-visible-function e)
616 )))
617
618(defun dframe-handle-iconify-frame (e)
619 "Handle a `iconify-frame' event.
620Should disables auto-updating if the last state was also enabled.
621Argument E is the event iconifying the frame."
622 (interactive "e")
623 (let ((f last-event-frame))
624 (if (and (dframe-attached-frame f)
625 dframe-iconify-frame-function e)
626 (funcall dframe-iconify-frame-function)
627 )))
628
629(defun dframe-handle-delete-frame (e)
630 "Handle `delete-frame' event.
631Argument E is the event deleting the frame."
632 (interactive "e")
633 (let ((fl (frame-list))
634 (sf (selected-frame)))
635 ;; Loop over all frames. If dframe-delete-frame-function is
636 ;; non-nil, call it.
637 (while fl
638 (select-frame (car fl))
639 (if dframe-delete-frame-function
640 (funcall dframe-delete-frame-function e))
641 (setq fl (cdr fl)))
642 (if (frame-live-p sf)
643 (select-frame sf))
644 (handle-delete-frame e)))
645
646
647;;; Utilities
648;;
649(defun dframe-get-focus (frame-var activator &optional hook)
650 "Change frame focus to or from a dedicated frame.
651If the selected frame is not in the symbol FRAME-VAR, then FRAME-VAR
652frame is selected. If the FRAME-VAR is active, then select the
653attached frame. If FRAME-VAR is nil, ACTIVATOR is called to
654created it. HOOK is an optional argument of hooks to run when
655selecting FRAME."
656 (interactive)
657 (if (eq (selected-frame) (symbol-value frame-var))
658 (if (frame-live-p dframe-attached-frame)
659 (dframe-select-attached-frame))
660 ;; make sure we have a frame
661 (if (not (frame-live-p (symbol-value frame-var)))
662 (funcall activator 1))
663 ;; go there
664 (select-frame (symbol-value frame-var))
665 )
666 (other-frame 0)
667 ;; If updates are off, then refresh the frame (they want it now...)
668 (run-hooks 'hook))
669
670
671(defun dframe-close-frame ()
672 "Close the current frame if it is dedicated."
673 (interactive)
674 (if dframe-controlled
675 (let ((b (current-buffer)))
676 (funcall dframe-controlled -1)
677 (kill-buffer b))))
678
679(defun dframe-current-frame (frame-var desired-major-mode)
680 "Return the existing dedicated frame to use.
681FRAME-VAR is the variable storing the currently active dedicated frame.
682If the current frame's buffer uses DESIRED-MAJOR-MODE, then use that frame."
683 (if (not (eq (selected-frame) (symbol-value frame-var)))
684 (if (and (eq major-mode 'desired-major-mode)
685 (get-buffer-window (current-buffer))
686 (window-frame (get-buffer-window (current-buffer))))
687 (window-frame (get-buffer-window (current-buffer)))
688 (symbol-value frame-var))
689 (symbol-value frame-var)))
690
691(defun dframe-attached-frame (&optional frame)
692 "Return the attached frame belonging to the dframe controlled frame FRAME.
693If optional arg FRAME is nil just return `dframe-attached-frame'."
694 (save-excursion
695 (if frame (select-frame frame))
696 dframe-attached-frame))
697
698(defun dframe-select-attached-frame (&optional frame)
699 "Switch to the frame the dframe controlled frame FRAME was started from. If
700optional arg FRAME is nil assume the attached frame is already selected and
701just run the hooks `dframe-after-select-attached-frame-hook'. Return the
702attached frame."
703 (let ((frame (dframe-attached-frame frame)))
704 (if frame (select-frame frame))
705 (prog1 frame
706 (run-hooks 'dframe-after-select-attached-frame-hook))))
707
708(defmacro dframe-with-attached-buffer (&rest forms)
709 "Execute FORMS in the attached frame's special buffer.
710Optionally select that frame if necessary."
711 `(save-selected-window
712 ;;(speedbar-set-timer speedbar-update-speed)
713 (dframe-select-attached-frame)
714 ,@forms
715 (dframe-maybee-jump-to-attached-frame)))
716
717(defun dframe-maybee-jump-to-attached-frame ()
718 "Jump to the attached frame ONLY if this was not a mouse event."
719 (when (or (not (dframe-mouse-event-p last-input-event))
720 dframe-activity-change-focus-flag)
721 (dframe-select-attached-frame)
722 ;; KB: For what is this - raising the frame??
723 (other-frame 0)))
724
725
726(defvar dframe-suppress-message-flag nil
727 "Non-nil means that `dframe-message' should just return a string.")
728
729(defun dframe-message (fmt &rest args)
730 "Like message, but for use in a dedicated frame.
731Argument FMT is the format string, and ARGS are the arguments for message."
732 (save-selected-window
733 (if dframe-suppress-message-flag
734 (apply 'format fmt args)
735 (if dframe-attached-frame
736 ;; KB: Here we do not need calling `dframe-select-attached-frame'
737 (select-frame dframe-attached-frame))
738 (apply 'message fmt args))))
739
740(defun dframe-y-or-n-p (prompt)
741 "Like `y-or-n-p', but for use in a dedicated frame.
742Argument PROMPT is the prompt to use."
743 (save-selected-window
744 (if (and ;;default-minibuffer-frame
745 dframe-attached-frame
746 ;;(not (eq default-minibuffer-frame dframe-attached-frame))
747 )
748 ;; KB: Here we do not need calling `dframe-select-attached-frame'
749 (select-frame dframe-attached-frame))
750 (y-or-n-p prompt)))
751
752;;; timer management
753;;
754;; Unlike speedbar with a dedicated set of routines, dframe has one master
755;; timer, and all dframe users will use it. At least until I figure out a way
756;; around that problem.
757;;
758;; Advantage 1: Two apps with timer/frames can munge the master list
759;; to make sure they occur in order.
760;; Advantage 2: If a user hits a key between timer functions, we can
761;; interrupt them safely.
762(defvar dframe-client-functions nil
763 "List of client functions using the dframe timer.")
764
765(defun dframe-set-timer (timeout fn &optional null-on-error)
766 "Apply a timer with TIMEOUT, to call FN, or remove a timer if TIMEOUT is nil.
767TIMEOUT is the number of seconds until the dframe controled program
768timer is called again. When TIMEOUT is nil, turn off all timeouts.
769This function must be called from the buffer belonging to the program
770who requested the timer.
771If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
772 ;; First, fix up our list of client functions
773 (if timeout
774 (add-to-list 'dframe-client-functions fn)
775 (setq dframe-client-functions (delete fn dframe-client-functions)))
776 ;; Now decided what to do about the timout.
777 (if (or
778 ;; We have a timer, restart the timer with the new time.
779 timeout
780 ;; We have a timer, an off is requested, and no client
781 ;; functions are left, shut er down.
782 (and dframe-timer (not timeout) dframe-client-functions))
783 ;; Only call the low level function if we are changing the state.
784 (dframe-set-timer-internal timeout null-on-error)))
785
786(defun dframe-set-timer-internal (timeout &optional null-on-error)
787 "Apply a timer with TIMEOUT to call the dframe timer manager.
788If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
789 (cond
790 ;; XEmacs
791 (dframe-xemacsp
792 (with-no-warnings
793 (if dframe-timer
794 (progn (delete-itimer dframe-timer)
795 (setq dframe-timer nil)))
796 (if timeout
797 (if (and dframe-xemacsp
798 (or (>= emacs-major-version 21)
799 (and (= emacs-major-version 20)
800 (> emacs-minor-version 0))
801 (and (= emacs-major-version 19)
802 (>= emacs-minor-version 15))))
803 (setq dframe-timer (start-itimer "dframe"
804 'dframe-timer-fn
805 timeout
806 timeout
807 t))
808 (setq dframe-timer (start-itimer "dframe"
809 'dframe-timer-fn
810 timeout
811 nil))))))
812 ;; Post 19.31 Emacs
813 ((fboundp 'run-with-idle-timer)
814 (if dframe-timer
815 (progn (cancel-timer dframe-timer)
816 (setq dframe-timer nil)))
817 (if timeout
818 (setq dframe-timer
819 (run-with-idle-timer timeout t 'dframe-timer-fn))))
820 ;; Emacs 19.30 (Thanks twice: ptype@dra.hmg.gb)
821 ((fboundp 'post-command-idle-hook)
822 (if timeout
823 (add-hook 'post-command-idle-hook 'dframe-timer-fn)
824 (remove-hook 'post-command-idle-hook 'dframe-timer-fn)))
825 ;; Older or other Emacsen with no timers. Set up so that its
826 ;; obvious this emacs can't handle the updates
827 ((symbolp null-on-error)
828 (set null-on-error nil)))
829 )
830
831(defun dframe-timer-fn ()
832 "Called due to the dframe timer.
833Evaluates all cached timer functions in sequence."
834 (let ((l dframe-client-functions))
835 (while (and l (sit-for 0))
836 (condition-case er
837 (funcall (car l))
838 (error (message "DFRAME TIMER ERROR: %S" er)))
839 (setq l (cdr l)))))
840
841;;; Menu hacking for mouse-3
842;;
843(defconst dframe-pass-event-to-popup-mode-menu
844 (let (max-args)
845 (and (fboundp 'popup-mode-menu)
846 (fboundp 'function-max-args)
847 (setq max-args (function-max-args 'popup-mode-menu))
848 (not (zerop max-args))))
849 "The EVENT arg to 'popup-mode-menu' was introduced in XEmacs 21.4.0.")
850
851;; In XEmacs, we make popup menus work on the item over mouse (as
852;; opposed to where the point happens to be.) We attain this by
853;; temporarily moving the point to that place.
854;; Hrvoje Niksic <hniksic@srce.hr>
855(with-no-warnings
856(defun dframe-xemacs-popup-kludge (event)
857 "Pop up a menu related to the clicked on item.
858Must be bound to EVENT."
859 (interactive "e")
860 (save-excursion
861 (if dframe-pass-event-to-popup-mode-menu
862 (popup-mode-menu event)
863 (goto-char (event-closest-point event))
864 (beginning-of-line)
865 (forward-char (min 5 (- (save-excursion (end-of-line) (point))
866 (save-excursion (beginning-of-line) (point)))))
867 (popup-mode-menu))
868 ;; Wait for menu to bail out. `popup-mode-menu' (and other popup
869 ;; menu functions) return immediately.
870 (let (new)
871 (while (not (misc-user-event-p (setq new (next-event))))
872 (dispatch-event new))
873 (dispatch-event new))))
874);with-no-warnings
875
876(defun dframe-emacs-popup-kludge (e)
877 "Pop up a menu related to the clicked on item.
878Must be bound to event E."
879 (interactive "e")
880 (save-excursion
881 (mouse-set-point e)
882 ;; This gets the cursor where the user can see it.
883 (if (not (bolp)) (forward-char -1))
884 (sit-for 0)
885 (if (< emacs-major-version 20)
886 (mouse-major-mode-menu e)
887 (mouse-major-mode-menu e nil))))
888
889;;; Interactive user functions for the mouse
890;;
891(if dframe-xemacsp
892 (defalias 'dframe-mouse-event-p 'button-press-event-p)
893 (defun dframe-mouse-event-p (event)
894 "Return t if the event is a mouse related event."
895 (if (and (listp event)
896 (member (event-basic-type event)
897 '(mouse-1 mouse-2 mouse-3)))
898 t
899 nil)))
900
901(defun dframe-track-mouse (event)
902 "For motion EVENT, display info about the current line."
903 (interactive "e")
904 (when (and dframe-track-mouse-function
905 (or dframe-xemacsp ;; XEmacs always safe?
906 (windowp (posn-window (event-end event))) ; Sometimes
907 ; there is no window to jump into.
908 ))
909
910 (funcall dframe-track-mouse-function event)))
911
912(defun dframe-track-mouse-xemacs (event)
913 "For motion EVENT, display info about the current line."
914 (if (functionp (default-value 'mouse-motion-handler))
915 (funcall (default-value 'mouse-motion-handler) event))
916 (if dframe-track-mouse-function
917 (funcall dframe-track-mouse-function event)))
918
919(defun dframe-help-echo (window &optional buffer position)
920 "Display help based context.
921The context is in WINDOW, viewing BUFFER, at POSITION.
922BUFFER and POSITION are optional because XEmacs doesn't use them."
923 (when (and (not dframe-track-mouse-function)
924 (bufferp buffer)
925 dframe-help-echo-function)
926 (let ((dframe-suppress-message-flag t))
927 (with-current-buffer buffer
928 (save-excursion
929 (if position (goto-char position))
930 (funcall dframe-help-echo-function))))))
931
932(defun dframe-mouse-set-point (e)
933 "Set POINT based on event E.
934Handles clicking on images in XEmacs."
935 (if (save-excursion
936 (save-window-excursion
937 (mouse-set-point e)
938 (and (fboundp 'event-over-glyph-p) (event-over-glyph-p e))))
939 ;; We are in XEmacs, and clicked on a picture
940 (with-no-warnings
941 (let ((ext (event-glyph-extent e)))
942 ;; This position is back inside the extent where the
943 ;; junk we pushed into the property list lives.
944 (if (extent-end-position ext)
945 (goto-char (1- (extent-end-position ext)))
946 (mouse-set-point e)))
947 );with-no-warnings
948 ;; We are not in XEmacs, OR we didn't click on a picture.
949 (mouse-set-point e)))
950
951(defun dframe-quick-mouse (e)
952 "Since mouse events are strange, this will keep the mouse nicely positioned.
953This should be bound to mouse event E."
954 (interactive "e")
955 (dframe-mouse-set-point e)
956 (if dframe-mouse-position-function
957 (funcall dframe-mouse-position-function)))
958
959(defun dframe-power-click (e)
960 "Activate any `dframe' mouse click as a power click.
961A power click will dispose of cached data (if available) or bring a buffer
962up into a different window.
963This should be bound to mouse event E."
964 (interactive "e")
965 (let ((dframe-power-click t))
966 (select-frame last-event-frame)
967 (dframe-click e)))
968
969(defun dframe-click (e)
970 "Call our clients click function on a user click.
971E is the event causing the click."
972 (interactive "e")
973 (dframe-mouse-set-point e)
974 (when dframe-mouse-click-function
975 ;; On the off chance of buffer switch, or something incorrectly
976 ;; configured.
977 (funcall dframe-mouse-click-function e)))
978
979(defun dframe-double-click (e)
980 "Activate the registered click function on a double click.
981This must be bound to a mouse event.
982This should be bound to mouse event E."
983 (interactive "e")
984 ;; Emacs only. XEmacs handles this via `mouse-track-click-hook'.
985 (cond ((eq (car e) 'down-mouse-1)
986 (dframe-mouse-set-point e))
987 ((eq (car e) 'mouse-1)
988 (dframe-quick-mouse e))
989 ((or (eq (car e) 'double-down-mouse-1)
990 (eq (car e) 'triple-down-mouse-1))
991 (dframe-click e))))
992
993;;; Hacks of normal things.
994;;
995;; Some normal things that happen in one of these dedicated frames
996;; must be handled specially, so that our dedicated frame isn't
997;; messed up.
998(defun dframe-temp-buffer-show-function (buffer)
999 "Placed in the variable `temp-buffer-show-function' in dedicated frames.
1000If a user requests help using \\[help-command] <Key> the temp BUFFER will be
1001redirected into a window on the attached frame."
1002 (if dframe-attached-frame (dframe-select-attached-frame))
1003 (pop-to-buffer buffer nil)
1004 (other-window -1)
1005 ;; Fix for using this hook on some platforms: Bob Weiner
1006 (cond ((not dframe-xemacsp)
1007 (run-hooks 'temp-buffer-show-hook))
1008 ((fboundp 'run-hook-with-args)
1009 (run-hook-with-args 'temp-buffer-show-hook buffer))
1010 ((and (boundp 'temp-buffer-show-hook)
1011 (listp temp-buffer-show-hook))
1012 (mapcar (function (lambda (hook) (funcall hook buffer)))
1013 temp-buffer-show-hook))))
1014
1015(defun dframe-hack-buffer-menu (e)
1016 "Control mouse 1 is buffer menu.
1017This hack overrides it so that the right thing happens in the main
1018Emacs frame, not in the dedicated frame.
1019Argument E is the event causing this activity."
1020 (interactive "e")
1021 (let ((fn (lookup-key global-map (if dframe-xemacsp
1022 '(control button1)
1023 [C-down-mouse-1])))
1024 (oldbuff (current-buffer))
1025 (newbuff nil))
1026 (unwind-protect
1027 (save-excursion
1028 (set-window-dedicated-p (selected-window) nil)
1029 (call-interactively fn)
1030 (setq newbuff (current-buffer)))
1031 (switch-to-buffer oldbuff)
1032 (set-window-dedicated-p (selected-window) t))
1033 (if (not (eq newbuff oldbuff))
1034 (dframe-with-attached-buffer
1035 (switch-to-buffer newbuff)))))
1036
1037(defun dframe-switch-buffer-attached-frame (&optional buffer)
1038 "Switch to BUFFER in the attached frame, and raise that frame.
1039This overrides the default behavior of `switch-to-buffer' which is
1040broken because of the dedicated frame."
1041 (interactive)
1042 ;; Assume we are in the dedicated frame.
1043 (other-frame 1)
1044 ;; Now switch buffers
1045 (if buffer
1046 (switch-to-buffer buffer)
1047 (call-interactively 'switch-to-buffer nil nil)))
1048
1049;; XEmacs: this can be implemented using modeline keymaps, but there
1050;; is no use, as we have horizontal scrollbar (as the docstring
1051;; hints.)
1052(defun dframe-mouse-hscroll (e)
1053 "Read a mouse event E from the mode line, and horizontally scroll.
1054If the mouse is being clicked on the far left, or far right of the
1055mode-line. This is only useful for non-XEmacs."
1056 (interactive "e")
1057 (let* ((x-point (car (nth 2 (car (cdr e)))))
1058 (pixels-per-10-col (/ (* 10 (frame-pixel-width))
1059 (frame-width)))
1060 (click-col (1+ (/ (* 10 x-point) pixels-per-10-col)))
1061 )
1062 (cond ((< click-col 3)
1063 (scroll-left 2))
1064 ((> click-col (- (window-width) 5))
1065 (scroll-right 2))
1066 (t (dframe-message
1067 "Click on the edge of the modeline to scroll left/right")))
1068 ))
1069
1070(provide 'dframe)
1071
1072;; arch-tag: df9b91b6-e85e-4a76-a02e-b3cb5b686bd4
1073;;; dframe.el ends here
diff --git a/lisp/ediff-merg.el b/lisp/ediff-merg.el
index cb93dea3831..b08238467df 100644
--- a/lisp/ediff-merg.el
+++ b/lisp/ediff-merg.el
@@ -103,11 +103,15 @@ Buffer B."
103 ) 103 )
104(make-variable-buffer-local 'ediff-skip-merge-regions-that-differ-from-default) 104(make-variable-buffer-local 'ediff-skip-merge-regions-that-differ-from-default)
105 105
106;; check if there is no clash between the ancestor and one of the variants.
107(defsubst ediff-merge-region-is-non-clash (n)
108 (string-match "prefer" (or (ediff-get-state-of-merge n) "")))
109
106;; If ediff-show-clashes-only, check if there is no clash between the ancestor 110;; If ediff-show-clashes-only, check if there is no clash between the ancestor
107;; and one of the variants. 111;; and one of the variants.
108(defsubst ediff-merge-region-is-non-clash (n) 112(defsubst ediff-merge-region-is-non-clash-to-skip (n)
109 (and ediff-show-clashes-only 113 (and ediff-show-clashes-only
110 (string-match "prefer" (or (ediff-get-state-of-merge n) "")))) 114 (ediff-merge-region-is-non-clash n)))
111 115
112;; If ediff-skip-changed-regions, check if the merge region differs from 116;; If ediff-skip-changed-regions, check if the merge region differs from
113;; the current default. If a region is different from the default, it means 117;; the current default. If a region is different from the default, it means
diff --git a/lisp/ediff-mult.el b/lisp/ediff-mult.el
index 436c1817edf..532b491adfa 100644
--- a/lisp/ediff-mult.el
+++ b/lisp/ediff-mult.el
@@ -1624,7 +1624,7 @@ Useful commands:
1624 (save-excursion 1624 (save-excursion
1625 (set-buffer meta-diff-buff) 1625 (set-buffer meta-diff-buff)
1626 (goto-char (point-max)) 1626 (goto-char (point-max))
1627 (insert-buffer custom-diff-buf) 1627 (insert-buffer-substring custom-diff-buf)
1628 (insert "\n"))) 1628 (insert "\n")))
1629 ;; if ediff session is not live, run diff directly on the files 1629 ;; if ediff session is not live, run diff directly on the files
1630 ((memq metajob '(ediff-directories 1630 ((memq metajob '(ediff-directories
@@ -1643,7 +1643,7 @@ Useful commands:
1643 (save-excursion 1643 (save-excursion
1644 (set-buffer meta-diff-buff) 1644 (set-buffer meta-diff-buff)
1645 (goto-char (point-max)) 1645 (goto-char (point-max))
1646 (insert-buffer tmp-buf) 1646 (insert-buffer-substring tmp-buf)
1647 (insert "\n"))) 1647 (insert "\n")))
1648 (t 1648 (t
1649 (ediff-kill-buffer-carefully meta-diff-buff) 1649 (ediff-kill-buffer-carefully meta-diff-buff)
@@ -1691,7 +1691,8 @@ all marked sessions must be active."
1691 (ediff-get-session-objC-name info))) 1691 (ediff-get-session-objC-name info)))
1692 (set-buffer (get-buffer-create ediff-tmp-buffer)) 1692 (set-buffer (get-buffer-create ediff-tmp-buffer))
1693 (erase-buffer) 1693 (erase-buffer)
1694 (insert-buffer patchbuffer) 1694 (insert-buffer-substring patchbuffer)
1695 (goto-char (point-min))
1695 (display-buffer ediff-tmp-buffer 'not-this-window) 1696 (display-buffer ediff-tmp-buffer 'not-this-window)
1696 )) 1697 ))
1697 (error "The patch buffer wasn't found")))) 1698 (error "The patch buffer wasn't found"))))
diff --git a/lisp/ediff-ptch.el b/lisp/ediff-ptch.el
index ec0e26e7d5c..9379b6127a9 100644
--- a/lisp/ediff-ptch.el
+++ b/lisp/ediff-ptch.el
@@ -297,16 +297,23 @@ program."
297 ;; (file1 . file2). Get it using ediff-get-session-objA. 297 ;; (file1 . file2). Get it using ediff-get-session-objA.
298 (ediff-get-session-objA-name session-info)) 298 (ediff-get-session-objA-name session-info))
299 ;; base-dir1 is the dir part of the 1st file in the patch 299 ;; base-dir1 is the dir part of the 1st file in the patch
300 (base-dir1 (file-name-directory (car proposed-file-names))) 300 (base-dir1
301 (or (file-name-directory (car proposed-file-names))
302 ""))
301 ;; directory part of the 2nd file in the patch 303 ;; directory part of the 2nd file in the patch
302 (base-dir2 (file-name-directory (cdr proposed-file-names))) 304 (base-dir2
305 (or (file-name-directory (cdr proposed-file-names))
306 ""))
303 ) 307 )
304 ;; If both base-dir1 and base-dir2 are relative, assume that 308 ;; If both base-dir1 and base-dir2 are relative and exist,
309 ;; assume that
305 ;; these dirs lead to the actual files starting at the present 310 ;; these dirs lead to the actual files starting at the present
306 ;; directory. So, we don't strip these relative dirs from the 311 ;; directory. So, we don't strip these relative dirs from the
307 ;; file names. This is a heuristic intended to improve guessing 312 ;; file names. This is a heuristic intended to improve guessing
308 (unless (or (file-name-absolute-p base-dir1) 313 (unless (or (file-name-absolute-p base-dir1)
309 (file-name-absolute-p base-dir2)) 314 (file-name-absolute-p base-dir2)
315 (not (file-exists-p base-dir1))
316 (not (file-exists-p base-dir2)))
310 (setq base-dir1 "" 317 (setq base-dir1 ""
311 base-dir2 "")) 318 base-dir2 ""))
312 (or (string= (car proposed-file-names) "/dev/null") 319 (or (string= (car proposed-file-names) "/dev/null")
@@ -377,8 +384,8 @@ other files, enter /dev/null
377 (concat actual-dir (cdr proposed-file-names))))) 384 (concat actual-dir (cdr proposed-file-names)))))
378 )) 385 ))
379 ediff-patch-map) 386 ediff-patch-map)
380 ;; check for the shorter existing file in each pair and discard the other 387 ;; Check for the existing files in each pair and discard the nonexisting
381 ;; one 388 ;; ones. If both exist, ask the user.
382 (mapcar (lambda (session-info) 389 (mapcar (lambda (session-info)
383 (let* ((file1 (car (ediff-get-session-objA-name session-info))) 390 (let* ((file1 (car (ediff-get-session-objA-name session-info)))
384 (file2 (cdr (ediff-get-session-objA-name session-info))) 391 (file2 (cdr (ediff-get-session-objA-name session-info)))
diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el
index 9ab24ce5f64..41f294c1b13 100644
--- a/lisp/ediff-util.el
+++ b/lisp/ediff-util.el
@@ -329,7 +329,7 @@ to invocation.")
329 ediff-word-mode-job (ediff-word-mode-job)) 329 ediff-word-mode-job (ediff-word-mode-job))
330 330
331 ;; Don't delete variants in case of ediff-buffer-* jobs without asking. 331 ;; Don't delete variants in case of ediff-buffer-* jobs without asking.
332 ;; This is because u may loose work---dangerous. 332 ;; This is because one may loose work---dangerous.
333 (if (string-match "buffer" (symbol-name ediff-job-name)) 333 (if (string-match "buffer" (symbol-name ediff-job-name))
334 (setq ediff-keep-variants t)) 334 (setq ediff-keep-variants t))
335 335
@@ -368,6 +368,7 @@ to invocation.")
368 (save-excursion 368 (save-excursion
369 (set-buffer buffer-C) 369 (set-buffer buffer-C)
370 (insert-buffer-substring buf) 370 (insert-buffer-substring buf)
371 (goto-char (point-min))
371 (funcall (ediff-with-current-buffer buf major-mode)) 372 (funcall (ediff-with-current-buffer buf major-mode))
372 (widen) ; merge buffer is always widened 373 (widen) ; merge buffer is always widened
373 (add-hook 'local-write-file-hooks 'ediff-set-merge-mode nil t) 374 (add-hook 'local-write-file-hooks 'ediff-set-merge-mode nil t)
@@ -1729,7 +1730,7 @@ With a prefix argument, go forward that many differences."
1729 (or (>= n ediff-number-of-differences) 1730 (or (>= n ediff-number-of-differences)
1730 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) 1731 (setq regexp-skip (funcall ediff-skip-diff-region-function n))
1731 ;; this won't exec if regexp-skip is t 1732 ;; this won't exec if regexp-skip is t
1732 (setq non-clash-skip (ediff-merge-region-is-non-clash n) 1733 (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
1733 skip-changed 1734 skip-changed
1734 (ediff-skip-merge-region-if-changed-from-default-p n)) 1735 (ediff-skip-merge-region-if-changed-from-default-p n))
1735 (ediff-install-fine-diff-if-necessary n)) 1736 (ediff-install-fine-diff-if-necessary n))
@@ -1744,6 +1745,7 @@ With a prefix argument, go forward that many differences."
1744 skip-changed 1745 skip-changed
1745 ;; skip difference regions that differ in white space 1746 ;; skip difference regions that differ in white space
1746 (and ediff-ignore-similar-regions 1747 (and ediff-ignore-similar-regions
1748 (ediff-merge-region-is-non-clash n)
1747 (or (eq (ediff-no-fine-diffs-p n) t) 1749 (or (eq (ediff-no-fine-diffs-p n) t)
1748 (and (ediff-merge-job) 1750 (and (ediff-merge-job)
1749 (eq (ediff-no-fine-diffs-p n) 'C))) 1751 (eq (ediff-no-fine-diffs-p n) 'C)))
@@ -1754,7 +1756,7 @@ With a prefix argument, go forward that many differences."
1754 (or (>= n ediff-number-of-differences) 1756 (or (>= n ediff-number-of-differences)
1755 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) 1757 (setq regexp-skip (funcall ediff-skip-diff-region-function n))
1756 ;; this won't exec if regexp-skip is t 1758 ;; this won't exec if regexp-skip is t
1757 (setq non-clash-skip (ediff-merge-region-is-non-clash n) 1759 (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
1758 skip-changed 1760 skip-changed
1759 (ediff-skip-merge-region-if-changed-from-default-p n)) 1761 (ediff-skip-merge-region-if-changed-from-default-p n))
1760 (ediff-install-fine-diff-if-necessary n)) 1762 (ediff-install-fine-diff-if-necessary n))
@@ -1778,7 +1780,7 @@ With a prefix argument, go back that many differences."
1778 (or (< n 0) 1780 (or (< n 0)
1779 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) 1781 (setq regexp-skip (funcall ediff-skip-diff-region-function n))
1780 ;; this won't exec if regexp-skip is t 1782 ;; this won't exec if regexp-skip is t
1781 (setq non-clash-skip (ediff-merge-region-is-non-clash n) 1783 (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
1782 skip-changed 1784 skip-changed
1783 (ediff-skip-merge-region-if-changed-from-default-p n)) 1785 (ediff-skip-merge-region-if-changed-from-default-p n))
1784 (ediff-install-fine-diff-if-necessary n)) 1786 (ediff-install-fine-diff-if-necessary n))
@@ -1802,7 +1804,7 @@ With a prefix argument, go back that many differences."
1802 (or (< n 0) 1804 (or (< n 0)
1803 (setq regexp-skip (funcall ediff-skip-diff-region-function n)) 1805 (setq regexp-skip (funcall ediff-skip-diff-region-function n))
1804 ;; this won't exec if regexp-skip is t 1806 ;; this won't exec if regexp-skip is t
1805 (setq non-clash-skip (ediff-merge-region-is-non-clash n) 1807 (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
1806 skip-changed 1808 skip-changed
1807 (ediff-skip-merge-region-if-changed-from-default-p n)) 1809 (ediff-skip-merge-region-if-changed-from-default-p n))
1808 (ediff-install-fine-diff-if-necessary n)) 1810 (ediff-install-fine-diff-if-necessary n))
diff --git a/lisp/ediff-wind.el b/lisp/ediff-wind.el
index 26ff106088f..e15c92d4bc9 100644
--- a/lisp/ediff-wind.el
+++ b/lisp/ediff-wind.el
@@ -900,7 +900,7 @@ into icons, regardless of the window manager."
900 900
901 (ediff-with-current-buffer ctl-buffer 901 (ediff-with-current-buffer ctl-buffer
902 (ediff-cond-compile-for-xemacs-or-emacs 902 (ediff-cond-compile-for-xemacs-or-emacs
903 (set-buffer-menubar nil) ; xemacs 903 (when (featurep 'menubar) (set-buffer-menubar nil)) ; xemacs
904 nil ; emacs 904 nil ; emacs
905 ) 905 )
906 ;;(setq user-grabbed-mouse (ediff-user-grabbed-mouse)) 906 ;;(setq user-grabbed-mouse (ediff-user-grabbed-mouse))
@@ -1054,7 +1054,8 @@ into icons, regardless of the window manager."
1054 (if (and (ediff-window-display-p) (frame-live-p ediff-control-frame)) 1054 (if (and (ediff-window-display-p) (frame-live-p ediff-control-frame))
1055 (let ((ctl-frame ediff-control-frame)) 1055 (let ((ctl-frame ediff-control-frame))
1056 (ediff-cond-compile-for-xemacs-or-emacs 1056 (ediff-cond-compile-for-xemacs-or-emacs
1057 (set-buffer-menubar default-menubar) ; xemacs 1057 (when (featurep 'menubar)
1058 (set-buffer-menubar default-menubar)) ; xemacs
1058 nil ; emacs 1059 nil ; emacs
1059 ) 1060 )
1060 (setq ediff-control-frame nil) 1061 (setq ediff-control-frame nil)
diff --git a/lisp/ediff.el b/lisp/ediff.el
index 8d4bb4d86fe..696fc9668e6 100644
--- a/lisp/ediff.el
+++ b/lisp/ediff.el
@@ -8,7 +8,7 @@
8;; Keywords: comparing, merging, patching, tools, unix 8;; Keywords: comparing, merging, patching, tools, unix
9 9
10(defconst ediff-version "2.80.1" "The current version of Ediff") 10(defconst ediff-version "2.80.1" "The current version of Ediff")
11(defconst ediff-date "September 19, 2005" "Date of last update") 11(defconst ediff-date "October 5, 2005" "Date of last update")
12 12
13 13
14;; This file is part of GNU Emacs. 14;; This file is part of GNU Emacs.
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 4ae8f53a981..7712ab5af1c 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -103,37 +103,37 @@ truncated to make more of the arglist or documentation string visible."
103 103
104;;; No user options below here. 104;;; No user options below here.
105 105
106;; Commands after which it is appropriate to print in the echo area. 106(defvar eldoc-message-commands-table-size 31
107;; Eldoc does not try to print function arglists, etc. after just any command, 107 "This is used by eldoc-add-command to initialize eldoc-message-commands
108;; because some commands print their own messages in the echo area and these 108as an obarray.
109;; functions would instantly overwrite them. But self-insert-command as well 109It should probably never be necessary to do so, but if you
110;; as most motion commands are good candidates. 110choose to increase the number of buckets, you must do so before loading
111;; This variable contains an obarray of symbols; do not manipulate it 111this file since the obarray is initialized at load time.
112;; directly. Instead, use `eldoc-add-command' and `eldoc-remove-command'. 112Remember to keep it a prime number to improve hash performance.")
113(defvar eldoc-message-commands nil) 113
114 114(defconst eldoc-message-commands
115;; This is used by eldoc-add-command to initialize eldoc-message-commands 115 (make-vector eldoc-message-commands-table-size 0)
116;; as an obarray. 116 "Commands after which it is appropriate to print in the echo area.
117;; It should probably never be necessary to do so, but if you 117Eldoc does not try to print function arglists, etc. after just any command,
118;; choose to increase the number of buckets, you must do so before loading 118because some commands print their own messages in the echo area and these
119;; this file since the obarray is initialized at load time. 119functions would instantly overwrite them. But self-insert-command as well
120;; Remember to keep it a prime number to improve hash performance. 120as most motion commands are good candidates.
121(defvar eldoc-message-commands-table-size 31) 121This variable contains an obarray of symbols; do not manipulate it
122 122directly. Instead, use `eldoc-add-command' and `eldoc-remove-command'.")
123;; Bookkeeping; elements are as follows: 123
124;; 0 - contains the last symbol read from the buffer. 124(defconst eldoc-last-data (make-vector 3 nil)
125;; 1 - contains the string last displayed in the echo area for that 125 "Bookkeeping; elements are as follows:
126;; symbol, so it can be printed again if necessary without reconsing. 126 0 - contains the last symbol read from the buffer.
127;; 2 - 'function if function args, 'variable if variable documentation. 127 1 - contains the string last displayed in the echo area for that
128(defvar eldoc-last-data (make-vector 3 nil)) 128 symbol, so it can be printed again if necessary without reconsing.
129 2 - 'function if function args, 'variable if variable documentation.")
129(defvar eldoc-last-message nil) 130(defvar eldoc-last-message nil)
130 131
131;; eldoc's timer object. 132(defvar eldoc-timer nil "eldoc's timer object.")
132(defvar eldoc-timer nil)
133 133
134;; idle time delay currently in use by timer. 134(defvar eldoc-current-idle-delay eldoc-idle-delay
135;; This is used to determine if eldoc-idle-delay is changed by the user. 135 "idle time delay currently in use by timer.
136(defvar eldoc-current-idle-delay eldoc-idle-delay) 136This is used to determine if `eldoc-idle-delay' is changed by the user.")
137 137
138 138
139;;;###autoload 139;;;###autoload
@@ -408,53 +408,32 @@ Emacs Lisp mode) that support Eldoc.")
408;; These functions do display-command table management. 408;; These functions do display-command table management.
409 409
410(defun eldoc-add-command (&rest cmds) 410(defun eldoc-add-command (&rest cmds)
411 (or eldoc-message-commands 411 (dolist (name cmds)
412 (setq eldoc-message-commands 412 (and (symbolp name)
413 (make-vector eldoc-message-commands-table-size 0))) 413 (setq name (symbol-name name)))
414 414 (set (intern name eldoc-message-commands) t)))
415 (let (name sym)
416 (while cmds
417 (setq name (car cmds))
418 (setq cmds (cdr cmds))
419
420 (cond ((symbolp name)
421 (setq sym name)
422 (setq name (symbol-name sym)))
423 ((stringp name)
424 (setq sym (intern-soft name))))
425
426 (and (symbolp sym)
427 (fboundp sym)
428 (set (intern name eldoc-message-commands) t)))))
429 415
430(defun eldoc-add-command-completions (&rest names) 416(defun eldoc-add-command-completions (&rest names)
431 (while names 417 (dolist (name names)
432 (apply 'eldoc-add-command 418 (apply 'eldoc-add-command (all-completions name obarray 'commandp))))
433 (all-completions (car names) obarray 'fboundp))
434 (setq names (cdr names))))
435 419
436(defun eldoc-remove-command (&rest cmds) 420(defun eldoc-remove-command (&rest cmds)
437 (let (name) 421 (dolist (name cmds)
438 (while cmds 422 (and (symbolp name)
439 (setq name (car cmds)) 423 (setq name (symbol-name name)))
440 (setq cmds (cdr cmds)) 424 (unintern name eldoc-message-commands)))
441
442 (and (symbolp name)
443 (setq name (symbol-name name)))
444
445 (unintern name eldoc-message-commands))))
446 425
447(defun eldoc-remove-command-completions (&rest names) 426(defun eldoc-remove-command-completions (&rest names)
448 (while names 427 (dolist (name names)
449 (apply 'eldoc-remove-command 428 (apply 'eldoc-remove-command
450 (all-completions (car names) eldoc-message-commands)) 429 (all-completions name eldoc-message-commands))))
451 (setq names (cdr names))))
452 430
453 431
454;; Prime the command list. 432;; Prime the command list.
455(eldoc-add-command-completions 433(eldoc-add-command-completions
456 "backward-" "beginning-of-" "delete-other-windows" "delete-window" 434 "backward-" "beginning-of-" "move-beginning-of-" "delete-other-windows"
457 "end-of-" "exchange-point-and-mark" "forward-" 435 "delete-window"
436 "end-of-" "move-end-of-" "exchange-point-and-mark" "forward-"
458 "indent-for-tab-command" "goto-" "mark-page" "mark-paragraph" 437 "indent-for-tab-command" "goto-" "mark-page" "mark-paragraph"
459 "mouse-set-point" "move-" "pop-global-mark" "next-" "other-window" 438 "mouse-set-point" "move-" "pop-global-mark" "next-" "other-window"
460 "previous-" "recenter" "scroll-" "self-insert-command" 439 "previous-" "recenter" "scroll-" "self-insert-command"
@@ -462,5 +441,5 @@ Emacs Lisp mode) that support Eldoc.")
462 441
463(provide 'eldoc) 442(provide 'eldoc)
464 443
465;;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375 444;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375
466;;; eldoc.el ends here 445;;; eldoc.el ends here
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index e50d5bd125c..c93eb0e62c4 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -59,9 +59,9 @@
59 (modify-syntax-entry ?\t " " table) 59 (modify-syntax-entry ?\t " " table)
60 (modify-syntax-entry ?\f " " table) 60 (modify-syntax-entry ?\f " " table)
61 (modify-syntax-entry ?\n "> " table) 61 (modify-syntax-entry ?\n "> " table)
62;;; This is probably obsolete since nowadays such features use overlays. 62 ;; This is probably obsolete since nowadays such features use overlays.
63;;; ;; Give CR the same syntax as newline, for selective-display. 63 ;; ;; Give CR the same syntax as newline, for selective-display.
64;;; (modify-syntax-entry ?\^m "> " table) 64 ;; (modify-syntax-entry ?\^m "> " table)
65 (modify-syntax-entry ?\; "< " table) 65 (modify-syntax-entry ?\; "< " table)
66 (modify-syntax-entry ?` "' " table) 66 (modify-syntax-entry ?` "' " table)
67 (modify-syntax-entry ?' "' " table) 67 (modify-syntax-entry ?' "' " table)
@@ -82,8 +82,8 @@
82 (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table))) 82 (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table)))
83 (modify-syntax-entry ?\[ "_ " table) 83 (modify-syntax-entry ?\[ "_ " table)
84 (modify-syntax-entry ?\] "_ " table) 84 (modify-syntax-entry ?\] "_ " table)
85 (modify-syntax-entry ?# "' 14bn" table) 85 (modify-syntax-entry ?# "' 14b" table)
86 (modify-syntax-entry ?| "\" 23b" table) 86 (modify-syntax-entry ?| "\" 23bn" table)
87 table)) 87 table))
88 88
89(define-abbrev-table 'lisp-mode-abbrev-table ()) 89(define-abbrev-table 'lisp-mode-abbrev-table ())
@@ -147,25 +147,45 @@
147(put 'define-ibuffer-filter 'doc-string-elt 2) 147(put 'define-ibuffer-filter 'doc-string-elt 2)
148(put 'define-ibuffer-op 'doc-string-elt 3) 148(put 'define-ibuffer-op 'doc-string-elt 3)
149(put 'define-ibuffer-sorter 'doc-string-elt 2) 149(put 'define-ibuffer-sorter 'doc-string-elt 2)
150(put 'lambda 'doc-string-elt 2)
151
152(defvar lisp-doc-string-elt-property 'doc-string-elt
153 "The symbol property that holds the docstring position info.")
150 154
151(defun lisp-font-lock-syntactic-face-function (state) 155(defun lisp-font-lock-syntactic-face-function (state)
152 (if (nth 3 state) 156 (if (nth 3 state)
153 (if (and (eq (nth 0 state) 1) 157 ;; This might be a (doc)string or a |...| symbol.
154 ;; This might be a docstring. 158 (let ((startpos (nth 8 state)))
155 (save-excursion 159 (if (eq (char-after startpos) ?|)
156 (let ((n 0)) 160 ;; This is not a string, but a |...| symbol.
157 (goto-char (nth 8 state)) 161 nil
158 (condition-case nil 162 (let* ((listbeg (nth 1 state))
159 (while (and (not (bobp)) 163 (firstsym (and listbeg
160 (progn (backward-sexp 1) (setq n (1+ n))))) 164 (save-excursion
161 (scan-error nil)) 165 (goto-char listbeg)
162 (when (> n 0) 166 (and (looking-at "([ \t\n]*\\(\\(\\sw\\|\\s_\\)+\\)")
163 (let ((sym (intern-soft 167 (match-string 1)))))
164 (buffer-substring 168 (docelt (and firstsym (get (intern-soft firstsym)
165 (point) (progn (forward-sexp 1) (point)))))) 169 lisp-doc-string-elt-property))))
166 (eq n (or (get sym 'doc-string-elt) 3))))))) 170 (if (and docelt
167 font-lock-doc-face 171 ;; It's a string in a form that can have a docstring.
168 font-lock-string-face) 172 ;; Check whether it's in docstring position.
173 (save-excursion
174 (when (functionp docelt)
175 (goto-char (match-end 1))
176 (setq docelt (funcall docelt)))
177 (goto-char listbeg)
178 (forward-char 1)
179 (condition-case nil
180 (while (and (> docelt 0) (< (point) startpos)
181 (progn (forward-sexp 1) t))
182 (setq docelt (1- docelt)))
183 (error nil))
184 (and (zerop docelt) (<= (point) startpos)
185 (progn (forward-comment (point-max)) t)
186 (= (point) (nth 8 state)))))
187 font-lock-doc-face
188 font-lock-string-face))))
169 font-lock-comment-face)) 189 font-lock-comment-face))
170 190
171;; The LISP-SYNTAX argument is used by code in inf-lisp.el and is 191;; The LISP-SYNTAX argument is used by code in inf-lisp.el and is
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index 398c47d4784..08ebbbcc9d0 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -494,13 +494,20 @@
494 viper-empty-keymap)) 494 viper-empty-keymap))
495 )) 495 ))
496 496
497 ;; in emacs with emulation-mode-map-alists, nothing needs to be done 497 ;; This var is not local in Emacs, so we make it local. It must be local
498 ;; because although the stack of minor modes can be the same for all buffers,
499 ;; the associated *keymaps* can be different. In Viper,
500 ;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have
501 ;; different keymaps for different buffers. Also, the keymaps associated
502 ;; with viper-vi/insert-state-modifier-minor-mode can be different.
503 ;; ***This is needed only in case emulation-mode-map-alists is not defined.
504 ;; In emacs with emulation-mode-map-alists, nothing needs to be done
498 (unless 505 (unless
499 (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists)) 506 (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
500 (setq minor-mode-map-alist 507 (set (make-local-variable 'minor-mode-map-alist)
501 (viper-append-filter-alist 508 (viper-append-filter-alist
502 (append viper--intercept-key-maps viper--key-maps) 509 (append viper--intercept-key-maps viper--key-maps)
503 minor-mode-map-alist))) 510 minor-mode-map-alist)))
504 ) 511 )
505 512
506 513
@@ -509,7 +516,7 @@
509 516
510;; Modifies mode-line-buffer-identification. 517;; Modifies mode-line-buffer-identification.
511(defun viper-refresh-mode-line () 518(defun viper-refresh-mode-line ()
512 (setq viper-mode-string 519 (set (make-local-variable 'viper-mode-string)
513 (cond ((eq viper-current-state 'emacs-state) viper-emacs-state-id) 520 (cond ((eq viper-current-state 'emacs-state) viper-emacs-state-id)
514 ((eq viper-current-state 'vi-state) viper-vi-state-id) 521 ((eq viper-current-state 'vi-state) viper-vi-state-id)
515 ((eq viper-current-state 'replace-state) viper-replace-state-id) 522 ((eq viper-current-state 'replace-state) viper-replace-state-id)
@@ -4781,7 +4788,7 @@ sensitive for VI-style look-and-feel."
4781 level-changed t) 4788 level-changed t)
4782 (insert " 4789 (insert "
4783Please specify your level of familiarity with the venomous VI PERil 4790Please specify your level of familiarity with the venomous VI PERil
4784(and the VI Plan for Emacs Rescue). 4791\(and the VI Plan for Emacs Rescue).
4785You can change it at any time by typing `M-x viper-set-expert-level RET' 4792You can change it at any time by typing `M-x viper-set-expert-level RET'
4786 4793
4787 1 -- BEGINNER: Almost all Emacs features are suppressed. 4794 1 -- BEGINNER: Almost all Emacs features are suppressed.
@@ -5000,5 +5007,5 @@ Mail anyway (y or n)? ")
5000 5007
5001 5008
5002 5009
5003;;; arch-tag: 739a6450-5fda-44d0-88b0-325053d888c2 5010;; arch-tag: 739a6450-5fda-44d0-88b0-325053d888c2
5004;;; viper-cmd.el ends here 5011;;; viper-cmd.el ends here
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
index 8aa7e4649d4..33713e8a869 100644
--- a/lisp/emulation/viper-init.el
+++ b/lisp/emulation/viper-init.el
@@ -115,11 +115,6 @@ In all likelihood, you don't need to bother with this setting."
115 115
116;;; Macros 116;;; Macros
117 117
118;; Fool the compiler to avoid warnings.
119;; Viper calls make-variable-buffer-local from within other functions, which
120;; triggers compiler warnings.
121(defalias 'viper-make-variable-buffer-local 'make-variable-buffer-local)
122
123(defmacro viper-deflocalvar (var default-value &optional documentation) 118(defmacro viper-deflocalvar (var default-value &optional documentation)
124 `(progn 119 `(progn
125 (defvar ,var ,default-value 120 (defvar ,var ,default-value
@@ -1019,19 +1014,19 @@ Should be set in `~/.viper' file."
1019(defun viper-restore-cursor-type () 1014(defun viper-restore-cursor-type ()
1020 (condition-case nil 1015 (condition-case nil
1021 (if viper-xemacs-p 1016 (if viper-xemacs-p
1022 (setq bar-cursor nil) 1017 (set (make-local-variable 'bar-cursor) nil)
1023 (setq cursor-type default-cursor-type)) 1018 (setq cursor-type default-cursor-type))
1024 (error nil))) 1019 (error nil)))
1025 1020
1026(defun viper-set-insert-cursor-type () 1021(defun viper-set-insert-cursor-type ()
1027 (if viper-xemacs-p 1022 (if viper-xemacs-p
1028 (setq bar-cursor 2) 1023 (set (make-local-variable 'bar-cursor) 2)
1029 (setq cursor-type '(bar . 2)))) 1024 (setq cursor-type '(bar . 2))))
1030 1025
1031 1026
1032;;; Local Variables: 1027;; Local Variables:
1033;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun) 1028;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
1034;;; End: 1029;; End:
1035 1030
1036;;; arch-tag: 4efa2416-1fcb-4690-be10-1a2a0248d250 1031;; arch-tag: 4efa2416-1fcb-4690-be10-1a2a0248d250
1037;;; viper-init.el ends here 1032;;; viper-init.el ends here
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index b3fd6d139c0..a361469382e 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -9,7 +9,7 @@
9;; Author: Michael Kifer <kifer@cs.stonybrook.edu> 9;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
10;; Keywords: emulations 10;; Keywords: emulations
11 11
12(defconst viper-version "3.11.5 of September 19, 2005" 12(defconst viper-version "3.11.5 of October 5, 2005"
13 "The current version of Viper") 13 "The current version of Viper")
14 14
15;; This file is part of GNU Emacs. 15;; This file is part of GNU Emacs.
@@ -605,8 +605,6 @@ This startup message appears whenever you load Viper, unless you type `y' now."
605 )) 605 ))
606 (viper-set-expert-level 'dont-change-unless))) 606 (viper-set-expert-level 'dont-change-unless)))
607 607
608 (if viper-xemacs-p
609 (viper-make-variable-buffer-local 'bar-cursor))
610 (if (eq major-mode 'viper-mode) 608 (if (eq major-mode 'viper-mode)
611 (setq major-mode 'fundamental-mode)) 609 (setq major-mode 'fundamental-mode))
612 610
@@ -627,8 +625,8 @@ This startup message appears whenever you load Viper, unless you type `y' now."
627 625
628;; This hook designed to enable Vi-style editing in comint-based modes." 626;; This hook designed to enable Vi-style editing in comint-based modes."
629(defun viper-comint-mode-hook () 627(defun viper-comint-mode-hook ()
630 (setq require-final-newline nil 628 (set (make-local-variable 'require-final-newline) nil)
631 viper-ex-style-editing nil 629 (setq viper-ex-style-editing nil
632 viper-ex-style-motion nil) 630 viper-ex-style-motion nil)
633 (viper-change-state-to-insert)) 631 (viper-change-state-to-insert))
634 632
@@ -1000,17 +998,6 @@ It also can't undo some Viper settings."
1000;; these are primarily advices and Vi-ish variable settings 998;; these are primarily advices and Vi-ish variable settings
1001(defun viper-non-hook-settings () 999(defun viper-non-hook-settings ()
1002 1000
1003 ;; This var is not local in Emacs, so we make it local. It must be local
1004 ;; because although the stack of minor modes can be the same for all buffers,
1005 ;; the associated *keymaps* can be different. In Viper,
1006 ;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have
1007 ;; different keymaps for different buffers. Also, the keymaps associated
1008 ;; with viper-vi/insert-state-modifier-minor-mode can be different.
1009 ;; ***This is needed only in case emulation-mode-map-alists is not defined
1010 (unless
1011 (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
1012 (viper-make-variable-buffer-local 'minor-mode-map-alist))
1013
1014 ;; Viper changes the default mode-line-buffer-identification 1001 ;; Viper changes the default mode-line-buffer-identification
1015 (setq-default mode-line-buffer-identification '(" %b")) 1002 (setq-default mode-line-buffer-identification '(" %b"))
1016 1003
@@ -1018,8 +1005,6 @@ It also can't undo some Viper settings."
1018 (setq next-line-add-newlines nil 1005 (setq next-line-add-newlines nil
1019 require-final-newline t) 1006 require-final-newline t)
1020 1007
1021 (viper-make-variable-buffer-local 'require-final-newline)
1022
1023 ;; don't bark when mark is inactive 1008 ;; don't bark when mark is inactive
1024 (if viper-emacs-p 1009 (if viper-emacs-p
1025 (setq mark-even-if-inactive t)) 1010 (setq mark-even-if-inactive t))
@@ -1027,7 +1012,6 @@ It also can't undo some Viper settings."
1027 (setq scroll-step 1) 1012 (setq scroll-step 1)
1028 1013
1029 ;; Variable displaying the current Viper state in the mode line. 1014 ;; Variable displaying the current Viper state in the mode line.
1030 (viper-deflocalvar viper-mode-string viper-emacs-state-id)
1031 (or (memq 'viper-mode-string global-mode-string) 1015 (or (memq 'viper-mode-string global-mode-string)
1032 (setq global-mode-string 1016 (setq global-mode-string
1033 (append '("" viper-mode-string) (cdr global-mode-string)))) 1017 (append '("" viper-mode-string) (cdr global-mode-string))))
@@ -1336,9 +1320,9 @@ These two lines must come in the order given.
1336(provide 'viper) 1320(provide 'viper)
1337 1321
1338 1322
1339;;; Local Variables: 1323;; Local Variables:
1340;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun) 1324;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
1341;;; End: 1325;; End:
1342 1326
1343;;; arch-tag: 5f3e844c-c4e6-4bbd-9b73-63bdc14e7d79 1327;; arch-tag: 5f3e844c-c4e6-4bbd-9b73-63bdc14e7d79
1344;;; viper.el ends here 1328;;; viper.el ends here
diff --git a/lisp/ezimage.el b/lisp/ezimage.el
new file mode 100644
index 00000000000..dd3a1944306
--- /dev/null
+++ b/lisp/ezimage.el
@@ -0,0 +1,371 @@
1;;; ezimage --- Generalized Image management
2
3;;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation
4
5;; Author: Eric M. Ludlam <zappo@gnu.org>
6;; Keywords: file, tags, tools
7
8;; This file is part of GNU Emacs.
9
10;; GNU Emacs is free software; you can redistribute it and/or modify
11;; it under the terms of the GNU General Public License as published by
12;; the Free Software Foundation; either version 2, or (at your option)
13;; any later version.
14
15;; GNU Emacs is distributed in the hope that it will be useful,
16;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;; GNU General Public License for more details.
19
20;; You should have received a copy of the GNU General Public License
21;; along with GNU Emacs; see the file COPYING. If not, write to the
22;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23;; Boston, MA 02110-1301, USA.
24
25;;; Commentary:
26;;
27;; A few routines for placing an image over text that will work for any
28;; Emacs implementation without error. When images are not supported, then
29;; they are justnot displayed.
30;;
31;; The idea is that gui buffers (trees, buttons, etc) will have text
32;; representations of the GUI elements. These routines will replace the text
33;; with an image when images are available.
34;;
35;; This file requires the `image' package if it is available.
36
37(condition-case nil
38 (require 'image)
39 (error nil))
40
41;;; Code:
42(defcustom ezimage-use-images
43 (and (or (fboundp 'defimage) ; emacs 21
44 (fboundp 'make-image-specifier)) ; xemacs
45 (if (fboundp 'display-graphic-p) ; emacs 21
46 (display-graphic-p)
47 window-system) ; old emacs & xemacs
48 (or (not (fboundp 'image-type-available-p)) ; xemacs?
49 (image-type-available-p 'xpm))) ; emacs 21
50 "*Non-nil if ezimage should display icons."
51 :group 'ezimage
52 :version "21.1"
53 :type 'boolean)
54
55;;; Create our own version of defimage
56(eval-and-compile
57
58(if (fboundp 'defimage)
59
60 (progn
61
62(defmacro defezimage (variable imagespec docstring)
63 "Define VARIABLE as an image if `defimage' is not available.
64IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
65 `(progn
66 (defimage ,variable ,imagespec ,docstring)
67 (put (quote ,variable) 'ezimage t)))
68
69; (defalias 'defezimage 'defimage)
70
71;; This hack is for the ezimage install which has an icons direcory for
72;; the default icons to be used.
73;; (add-to-list 'load-path
74;; (concat (file-name-directory
75;; (locate-library "ezimage.el"))
76;; "icons"))
77
78 )
79 (if (not (fboundp 'make-glyph))
80
81(defmacro defezimage (variable imagespec docstring)
82 "Don't bother loading up an image...
83Argument VARIABLE is the variable to define.
84Argument IMAGESPEC is the list defining the image to create.
85Argument DOCSTRING is the documentation for VARIABLE."
86 `(defvar ,variable nil ,docstring))
87
88;; ELSE
89(with-no-warnings
90(defun ezimage-find-image-on-load-path (image)
91 "Find the image file IMAGE on the load path."
92 (let ((l (cons
93 ;; In XEmacs, try the data directory first (for an
94 ;; install in XEmacs proper.) Search the load
95 ;; path next (for user installs)
96 (locate-data-directory "ezimage")
97 load-path))
98 (r nil))
99 (while (and l (not r))
100 (if (file-exists-p (concat (car l) "/" image))
101 (setq r (concat (car l) "/" image))
102 (if (file-exists-p (concat (car l) "/icons/" image))
103 (setq r (concat (car l) "/icons/" image))
104 ))
105 (setq l (cdr l)))
106 r))
107);with-no-warnings
108
109(with-no-warnings
110(defun ezimage-convert-emacs21-imagespec-to-xemacs (spec)
111 "Convert the Emacs21 image SPEC into an XEmacs image spec.
112The Emacs 21 spec is what I first learned, and is easy to convert."
113 (let* ((sl (car spec))
114 (itype (nth 1 sl))
115 (ifile (nth 3 sl)))
116 (vector itype ':file (ezimage-find-image-on-load-path ifile))))
117);with-no-warnings
118
119(defmacro defezimage (variable imagespec docstring)
120 "Define VARIABLE as an image if `defimage' is not available.
121IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
122 `(progn
123 (defvar ,variable
124 ;; The Emacs21 version of defimage looks just like the XEmacs image
125 ;; specifier, except that it needs a :type keyword. If we line
126 ;; stuff up right, we can use this cheat to support XEmacs specifiers.
127 (condition-case nil
128 (make-glyph
129 (make-image-specifier
130 (ezimage-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
131 'buffer)
132 (error nil))
133 ,docstring)
134 (put ',variable 'ezimage t)))
135
136)))
137
138(defezimage ezimage-directory
139 ((:type xpm :file "ezimage/dir.xpm" :ascent center))
140 "Image used for empty directories.")
141
142(defezimage ezimage-directory-plus
143 ((:type xpm :file "ezimage/dir-plus.xpm" :ascent center))
144 "Image used for closed directories with stuff in them.")
145
146(defezimage ezimage-directory-minus
147 ((:type xpm :file "ezimage/dir-minus.xpm" :ascent center))
148 "Image used for open directories with stuff in them.")
149
150(defezimage ezimage-page-plus
151 ((:type xpm :file "ezimage/page-plus.xpm" :ascent center))
152 "Image used for closed files with stuff in them.")
153
154(defezimage ezimage-page-minus
155 ((:type xpm :file "ezimage/page-minus.xpm" :ascent center))
156 "Image used for open files with stuff in them.")
157
158(defezimage ezimage-page
159 ((:type xpm :file "ezimage/page.xpm" :ascent center))
160 "Image used for files with nothing interesting in it.")
161
162(defezimage ezimage-tag
163 ((:type xpm :file "ezimage/tag.xpm" :ascent center))
164 "Image used for tags.")
165
166(defezimage ezimage-tag-plus
167 ((:type xpm :file "ezimage/tag-plus.xpm" :ascent center))
168 "Image used for closed tag groups.")
169
170(defezimage ezimage-tag-minus
171 ((:type xpm :file "ezimage/tag-minus.xpm" :ascent center))
172 "Image used for open tags.")
173
174(defezimage ezimage-tag-gt
175 ((:type xpm :file "ezimage/tag-gt.xpm" :ascent center))
176 "Image used for closed tags (with twist arrow).")
177
178(defezimage ezimage-tag-v
179 ((:type xpm :file "ezimage/tag-v.xpm" :ascent center))
180 "Image used for open tags (with twist arrow).")
181
182(defezimage ezimage-tag-type
183 ((:type xpm :file "ezimage/tag-type.xpm" :ascent center))
184 "Image used for tags that represent a data type.")
185
186(defezimage ezimage-box-plus
187 ((:type xpm :file "ezimage/box-plus.xpm" :ascent center))
188 "Image of a closed box.")
189
190(defezimage ezimage-box-minus
191 ((:type xpm :file "ezimage/box-minus.xpm" :ascent center))
192 "Image of an open box.")
193
194(defezimage ezimage-mail
195 ((:type xpm :file "ezimage/mail.xpm" :ascent center))
196 "Image if an envelope.")
197
198(defezimage ezimage-checkout
199 ((:type xpm :file "ezimage/checkmark.xpm" :ascent center))
200 "Image representing a checkmark. For files checked out of a VC.")
201
202(defezimage ezimage-object
203 ((:type xpm :file "ezimage/bits.xpm" :ascent center))
204 "Image representing bits (an object file.)")
205
206(defezimage ezimage-object-out-of-date
207 ((:type xpm :file "ezimage/bitsbang.xpm" :ascent center))
208 "Image representing bits with a ! in it. (an out of data object file.)")
209
210(defezimage ezimage-label
211 ((:type xpm :file "ezimage/label.xpm" :ascent center))
212 "Image used for label prefix.")
213
214(defezimage ezimage-lock
215 ((:type xpm :file "ezimage/lock.xpm" :ascent center))
216 "Image of a lock. Used for Read Only, or private.")
217
218(defezimage ezimage-unlock
219 ((:type xpm :file "ezimage/unlock.xpm" :ascent center))
220 "Image of an unlocked lock.")
221
222(defezimage ezimage-key
223 ((:type xpm :file "ezimage/key.xpm" :ascent center))
224 "Image of a key.")
225
226(defezimage ezimage-document-tag
227 ((:type xpm :file "ezimage/doc.xpm" :ascent center))
228 "Image used to indicate documentation available.")
229
230(defezimage ezimage-document-plus
231 ((:type xpm :file "ezimage/doc-plus.xpm" :ascent center))
232 "Image used to indicate closed documentation.")
233
234(defezimage ezimage-document-minus
235 ((:type xpm :file "ezimage/doc-minus.xpm" :ascent center))
236 "Image used to indicate open documentation.")
237
238(defezimage ezimage-info-tag
239 ((:type xpm :file "ezimage/info.xpm" :ascent center))
240 "Image used to indicate more information available.")
241
242(defvar ezimage-expand-image-button-alist
243 '(
244 ;; here are some standard representations
245 ("<+>" . ezimage-directory-plus)
246 ("<->" . ezimage-directory-minus)
247 ("< >" . ezimage-directory)
248 ("[+]" . ezimage-page-plus)
249 ("[-]" . ezimage-page-minus)
250 ("[?]" . ezimage-page)
251 ("[ ]" . ezimage-page)
252 ("{+}" . ezimage-box-plus)
253 ("{-}" . ezimage-box-minus)
254 ;; Some vaguely representitive entries
255 ("*" . ezimage-checkout)
256 ("#" . ezimage-object)
257 ("!" . ezimage-object-out-of-date)
258 ("%" . ezimage-lock)
259 )
260 "List of text and image associations.")
261
262(defun ezimage-insert-image-button-maybe (start length &optional string)
263 "Insert an image button based on text starting at START for LENGTH chars.
264If buttontext is unknown, just insert that text.
265If we have an image associated with it, use that image.
266Optional argument STRING is a st ring upon which to add text properties."
267 (when ezimage-use-images
268 (let* ((bt (buffer-substring start (+ length start)))
269 (a (assoc bt ezimage-expand-image-button-alist)))
270 ;; Regular images (created with `insert-image' are intangible
271 ;; which (I suppose) make them more compatible with XEmacs 21.
272 ;; Unfortunatly, there is a giant pile o code dependent on the
273 ;; underlying text. This means if we leave it tangible, then I
274 ;; don't have to change said giant piles o code.
275 (if (and a (symbol-value (cdr a)))
276 (ezimage-insert-over-text (symbol-value (cdr a))
277 start
278 (+ start (length bt))))))
279 string)
280
281(defun ezimage-image-over-string (string &optional alist)
282 "Insert over the text in STRING an image found in ALIST.
283Return STRING with properties applied."
284 (if ezimage-use-images
285 (let ((a (assoc string alist)))
286 (if (and a (symbol-value (cdr a)))
287 (ezimage-insert-over-text (symbol-value (cdr a))
288 0 (length string)
289 string)
290 string))
291 string))
292
293(defun ezimage-insert-over-text (image start end &optional string)
294 "Place IMAGE over the text between START and END.
295Assumes the image is part of a gui and can be clicked on.
296Optional argument STRING is a string upon which to add text properties."
297 (when ezimage-use-images
298 (if (featurep 'xemacs)
299 (add-text-properties start end
300 (list 'end-glyph image
301 'rear-nonsticky (list 'display)
302 'invisible t
303 'detachable t)
304 string)
305 (add-text-properties start end
306 (list 'display image
307 'rear-nonsticky (list 'display))
308 string)))
309 string)
310
311(defun ezimage-image-association-dump ()
312 "Dump out the current state of the Ezimage image alist.
313See `ezimage-expand-image-button-alist' for details."
314 (interactive)
315 (with-output-to-temp-buffer "*Ezimage Images*"
316 (save-excursion
317 (set-buffer "*Ezimage Images*")
318 (goto-char (point-max))
319 (insert "Ezimage image cache.\n\n")
320 (let ((start (point)) (end nil))
321 (insert "Image\tText\tImage Name")
322 (setq end (point))
323 (insert "\n")
324 (put-text-property start end 'face 'underline))
325 (let ((ia ezimage-expand-image-button-alist))
326 (while ia
327 (let ((start (point)))
328 (insert (car (car ia)))
329 (insert "\t")
330 (ezimage-insert-image-button-maybe start
331 (length (car (car ia))))
332 (insert (car (car ia)) "\t" (format "%s" (cdr (car ia))) "\n"))
333 (setq ia (cdr ia)))))))
334
335(defun ezimage-image-dump ()
336 "Dump out the current state of the Ezimage image alist.
337See `ezimage-expand-image-button-alist' for details."
338 (interactive)
339 (with-output-to-temp-buffer "*Ezimage Images*"
340 (save-excursion
341 (set-buffer "*Ezimage Images*")
342 (goto-char (point-max))
343 (insert "Ezimage image cache.\n\n")
344 (let ((start (point)) (end nil))
345 (insert "Image\tImage Name")
346 (setq end (point))
347 (insert "\n")
348 (put-text-property start end 'face 'underline))
349 (let ((ia (ezimage-all-images)))
350 (while ia
351 (let ((start (point)))
352 (insert "cm")
353 (ezimage-insert-over-text (symbol-value (car ia)) start (point))
354 (insert "\t" (format "%s" (car ia)) "\n"))
355 (setq ia (cdr ia)))))))
356
357(defun ezimage-all-images ()
358 "Return a list of all variables containing ez images."
359 (let ((ans nil))
360 (mapatoms (lambda (sym)
361 (if (get sym 'ezimage) (setq ans (cons sym ans))))
362 )
363 (setq ans (sort ans (lambda (a b)
364 (string< (symbol-name a) (symbol-name b)))))
365 ans)
366 )
367
368(provide 'ezimage)
369
370;; arch-tag: d4ea2d93-3c7a-4cb3-b5a6-c1b9178183aa
371;;; sb-image.el ends here
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 36963b5ce24..d013524a1c8 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,31 @@
12005-10-04 Reiner Steib <Reiner.Steib@gmx.de>
2
3 * mm-url.el (mm-url-predefined-programs): Add switches for curl.
4
5 * gnus-util.el (gnus-remove-duplicates): Remove.
6
7 * nnmail.el (nnmail-article-group): Use mm-delete-duplicates
8 instead of gnus-remove-duplicates.
9
10 * message.el (message-remove-duplicates): Remove.
11 (message-idna-to-ascii-rhs-1): Use mm-delete-duplicates instead of
12 message-remove-duplicates.
13
14 * mm-util.el (mm-delete-duplicates): Use `delete-dups' if
15 available, else use implementation from `delete-dups'.
16
172005-10-02 Katsumi Yamaoka <yamaoka@jpl.org>
18
19 * time-date.el: Autoload parse-time-string, XEmacs needs it.
20
212005-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
22
23 * mm-decode.el (mm-inline-media-tests): Check presence of the diff-mode
24 function rather than the diff-mode.el package.
25 (mm-display-external): Use with-current-buffer.
26 (mm-viewer-completion-map, mm-viewer-completion-map):
27 Move initialization inside declaration.
28
12005-09-28 Reiner Steib <Reiner.Steib@gmx.de> 292005-09-28 Reiner Steib <Reiner.Steib@gmx.de>
2 30
3 * message.el: Remove useless autoloads. 31 * message.el: Remove useless autoloads.
@@ -16,10 +44,9 @@
16 * mm-uu.el (mm-uu-emacs-sources-regexp): Make variable 44 * mm-uu.el (mm-uu-emacs-sources-regexp): Make variable
17 customizable. Change default value. 45 customizable. Change default value.
18 (mm-uu-diff-groups-regexp): Change default value. 46 (mm-uu-diff-groups-regexp): Change default value.
19 (mm-uu-type-alist): Added doc string. 47 (mm-uu-type-alist): Add doc string.
20 (mm-uu-configure): Added doc string. Make it interactive. 48 (mm-uu-configure): Add doc string. Make it interactive.
21 (mm-uu-diff-groups-regexp): Fix missing quotes from previous 49 (mm-uu-diff-groups-regexp): Fix missing quotes from previous commit.
22 commit.
23 50
242005-09-27 Simon Josefsson <jas@extundo.com> 512005-09-27 Simon Josefsson <jas@extundo.com>
25 52
@@ -75,8 +102,8 @@
75 102
762005-09-22 Reiner Steib <Reiner.Steib@gmx.de> 1032005-09-22 Reiner Steib <Reiner.Steib@gmx.de>
77 104
78 * spam-report.el (spam-report-url-ping-plain): Use 105 * spam-report.el (spam-report-url-ping-plain):
79 gnus-extended-version as User-Agent. 106 Use gnus-extended-version as User-Agent.
80 107
81 * gnus-agent.el (gnus-agent-synchronize-flags): Explain why the 108 * gnus-agent.el (gnus-agent-synchronize-flags): Explain why the
82 default value is nil. 109 default value is nil.
@@ -92,7 +119,7 @@
92 119
93 * mm-url.el (mm-url-decode-entities): Fix regexp. 120 * mm-url.el (mm-url-decode-entities): Fix regexp.
94 121
952005-09-18 D Goel <deego@gnufans.org> 1222005-09-18 Deepak Goel <deego@gnufans.org>
96 123
97 * sieve.el (sieve-help): Fix `message' call: first arg should be a 124 * sieve.el (sieve-help): Fix `message' call: first arg should be a
98 format spec. 125 format spec.
@@ -125,9 +152,9 @@
1252005-09-07 Reiner Steib <Reiner.Steib@gmx.de> 1522005-09-07 Reiner Steib <Reiner.Steib@gmx.de>
126 153
127 * spam-report.el (spam-report-gmane): Make it work without 154 * spam-report.el (spam-report-gmane): Make it work without
128 X-Report-Spam header. Gmane now only provides Archived-At. This 155 X-Report-Spam header. Gmane now only provides Archived-At.
129 is only used if `spam-report-gmane-use-article-number' is nil. 156 This is only used if `spam-report-gmane-use-article-number' is nil.
130 (spam-report-gmane-spam-header): Removed. Not used anymore. 157 (spam-report-gmane-spam-header): Remove. Not used anymore.
131 158
132 * nnweb.el (nnweb-google-wash-article): Print a message if article 159 * nnweb.el (nnweb-google-wash-article): Print a message if article
133 is not available. 160 is not available.
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2
index f39bf525db8..50b978e7e75 100644
--- a/lisp/gnus/ChangeLog.2
+++ b/lisp/gnus/ChangeLog.2
@@ -7390,7 +7390,7 @@
7390 instead of mm-auto-save-coding-system for the draft or delayed 7390 instead of mm-auto-save-coding-system for the draft or delayed
7391 group. 7391 group.
7392 7392
73932002-10-28 Josh <huber@alum.wpi.edu> 73932002-10-28 Josh Huber <huber@alum.wpi.edu>
7394 7394
7395 * mml.el (mml-mode-map): Fixed keybindings for mml-secure-* 7395 * mml.el (mml-mode-map): Fixed keybindings for mml-secure-*
7396 functions. 7396 functions.
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index 5556a815d2a..f7fb279f20f 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1037,14 +1037,6 @@ This function saves the current buffer."
1037 (set-buffer gnus-group-buffer) 1037 (set-buffer gnus-group-buffer)
1038 (eq major-mode 'gnus-group-mode)))) 1038 (eq major-mode 'gnus-group-mode))))
1039 1039
1040(defun gnus-remove-duplicates (list)
1041 (let (new)
1042 (while list
1043 (or (member (car list) new)
1044 (setq new (cons (car list) new)))
1045 (setq list (cdr list)))
1046 (nreverse new)))
1047
1048(defun gnus-remove-if (predicate list) 1040(defun gnus-remove-if (predicate list)
1049 "Return a copy of LIST with all items satisfying PREDICATE removed." 1041 "Return a copy of LIST with all items satisfying PREDICATE removed."
1050 (let (out) 1042 (let (out)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 721988045cf..5ed670aced8 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -2027,14 +2027,6 @@ With prefix-argument just set Follow-Up, don't cross-post."
2027 2027
2028;;; End of functions adopted from `message-utils.el'. 2028;;; End of functions adopted from `message-utils.el'.
2029 2029
2030(defun message-remove-duplicates (list)
2031 (let (new)
2032 (while list
2033 (or (member (car list) new)
2034 (setq new (cons (car list) new)))
2035 (setq list (cdr list)))
2036 (nreverse new)))
2037
2038(defun message-remove-header (header &optional is-regexp first reverse) 2030(defun message-remove-header (header &optional is-regexp first reverse)
2039 "Remove HEADER in the narrowed buffer. 2031 "Remove HEADER in the narrowed buffer.
2040If IS-REGEXP, HEADER is a regular expression. 2032If IS-REGEXP, HEADER is a regular expression.
@@ -4963,7 +4955,7 @@ subscribed address (and not the additional To and Cc header contents)."
4963 rhs ace address) 4955 rhs ace address)
4964 (when field 4956 (when field
4965 (dolist (rhs 4957 (dolist (rhs
4966 (message-remove-duplicates 4958 (mm-delete-duplicates
4967 (mapcar (lambda (rhs) (or (cadr (split-string rhs "@")) "")) 4959 (mapcar (lambda (rhs) (or (cadr (split-string rhs "@")) ""))
4968 (mapcar 'downcase 4960 (mapcar 'downcase
4969 (mapcar 4961 (mapcar
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 76a66268586..9d0bbdfeb63 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -222,7 +222,12 @@ before the external MIME handler is invoked."
222 ("text/richtext" mm-inline-text identity) 222 ("text/richtext" mm-inline-text identity)
223 ("text/x-patch" mm-display-patch-inline 223 ("text/x-patch" mm-display-patch-inline
224 (lambda (handle) 224 (lambda (handle)
225 (locate-library "diff-mode"))) 225 ;; If the diff-mode.el package is installed, the function is
226 ;; autoloaded. Checking (locate-library "diff-mode") would be trying
227 ;; to cater to broken installations. OTOH checking the function
228 ;; makes it possible to install another package which provides an
229 ;; alternative implementation of diff-mode. --Stef
230 (fboundp 'diff-mode)))
226 ("application/emacs-lisp" mm-display-elisp-inline identity) 231 ("application/emacs-lisp" mm-display-elisp-inline identity)
227 ("application/x-emacs-lisp" mm-display-elisp-inline identity) 232 ("application/x-emacs-lisp" mm-display-elisp-inline identity)
228 ("text/html" 233 ("text/html"
@@ -451,21 +456,19 @@ If not set, `default-directory' will be used."
451(defvar mm-viewer-completion-map 456(defvar mm-viewer-completion-map
452 (let ((map (make-sparse-keymap 'mm-viewer-completion-map))) 457 (let ((map (make-sparse-keymap 'mm-viewer-completion-map)))
453 (set-keymap-parent map minibuffer-local-completion-map) 458 (set-keymap-parent map minibuffer-local-completion-map)
459 ;; Should we bind other key to minibuffer-complete-word?
460 (define-key map " " 'self-insert-command)
454 map) 461 map)
455 "Keymap for input viewer with completion.") 462 "Keymap for input viewer with completion.")
456 463
457;; Should we bind other key to minibuffer-complete-word?
458(define-key mm-viewer-completion-map " " 'self-insert-command)
459
460(defvar mm-viewer-completion-map 464(defvar mm-viewer-completion-map
461 (let ((map (make-sparse-keymap 'mm-viewer-completion-map))) 465 (let ((map (make-sparse-keymap 'mm-viewer-completion-map)))
462 (set-keymap-parent map minibuffer-local-completion-map) 466 (set-keymap-parent map minibuffer-local-completion-map)
467 ;; Should we bind other key to minibuffer-complete-word?
468 (define-key map " " 'self-insert-command)
463 map) 469 map)
464 "Keymap for input viewer with completion.") 470 "Keymap for input viewer with completion.")
465 471
466;; Should we bind other key to minibuffer-complete-word?
467(define-key mm-viewer-completion-map " " 'self-insert-command)
468
469;;; The functions. 472;;; The functions.
470 473
471(defun mm-alist-to-plist (alist) 474(defun mm-alist-to-plist (alist)
@@ -564,7 +567,7 @@ Postpone undisplaying of viewers for types in
564 ;; what really needs to be done here is a way to link a 567 ;; what really needs to be done here is a way to link a
565 ;; MIME handle back to it's parent MIME handle (in a multilevel 568 ;; MIME handle back to it's parent MIME handle (in a multilevel
566 ;; MIME article). That would probably require changing 569 ;; MIME article). That would probably require changing
567 ;; the mm-handle API so we simply store the multipart buffert 570 ;; the mm-handle API so we simply store the multipart buffer
568 ;; name as a text property of the "multipart/whatever" string. 571 ;; name as a text property of the "multipart/whatever" string.
569 (add-text-properties 0 (length (car ctl)) 572 (add-text-properties 0 (length (car ctl))
570 (list 'buffer (mm-copy-to-buffer) 573 (list 'buffer (mm-copy-to-buffer)
@@ -807,8 +810,7 @@ external if displayed external."
807 (mm-mailcap-command 810 (mm-mailcap-command
808 method file (mm-handle-type handle))) 811 method file (mm-handle-type handle)))
809 (if (buffer-live-p buffer) 812 (if (buffer-live-p buffer)
810 (save-excursion 813 (with-current-buffer buffer
811 (set-buffer buffer)
812 (buffer-string)))) 814 (buffer-string))))
813 (progn 815 (progn
814 (ignore-errors (delete-file file)) 816 (ignore-errors (delete-file file))
diff --git a/lisp/gnus/mm-url.el b/lisp/gnus/mm-url.el
index 4fd39e477f6..b24f9d4132a 100644
--- a/lisp/gnus/mm-url.el
+++ b/lisp/gnus/mm-url.el
@@ -64,7 +64,7 @@
64 '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-") 64 '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-")
65 (w3m "w3m" "-dump_source") 65 (w3m "w3m" "-dump_source")
66 (lynx "lynx" "-source") 66 (lynx "lynx" "-source")
67 (curl "curl" "--silent"))) 67 (curl "curl" "--silent" "--user-agent mm-url" "--location")))
68 68
69(defcustom mm-url-program 69(defcustom mm-url-program
70 (cond 70 (cond
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index a40e147c026..ef050f3d621 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -538,14 +538,21 @@ If the charset is `composition', return the actual one."
538 ;; This is for XEmacs. 538 ;; This is for XEmacs.
539 (mm-mule-charset-to-mime-charset charset))) 539 (mm-mule-charset-to-mime-charset charset)))
540 540
541(defun mm-delete-duplicates (list) 541(if (fboundp 'delete-dups)
542 "Simple substitute for CL `delete-duplicates', testing with `equal'." 542 (defalias 'mm-delete-duplicates 'delete-dups)
543 (let (result head) 543 (defun mm-delete-duplicates (list)
544 (while list 544 "Destructively remove `equal' duplicates from LIST.
545 (setq head (car list)) 545Store the result in LIST and return it. LIST must be a proper list.
546 (setq list (delete head list)) 546Of several `equal' occurrences of an element in LIST, the first
547 (setq result (cons head result))) 547one is kept.
548 (nreverse result))) 548
549This is a compatibility function for Emacsen without `delete-dups'."
550 ;; Code from `subr.el' in Emacs 22:
551 (let ((tail list))
552 (while tail
553 (setcdr tail (delete (car tail) (cdr tail)))
554 (setq tail (cdr tail))))
555 list))
549 556
550;; Fixme: This is used in places when it should be testing the 557;; Fixme: This is used in places when it should be testing the
551;; default multibyteness. See mm-default-multibyte-p. 558;; default multibyteness. See mm-default-multibyte-p.
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index 98563143243..ad913d441b7 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -1142,7 +1142,7 @@ FUNC will be called with the group name to determine the article number."
1142 5 "Error in `nnmail-split-methods'; using `bogus' mail group") 1142 5 "Error in `nnmail-split-methods'; using `bogus' mail group")
1143 (sit-for 1) 1143 (sit-for 1)
1144 '("bogus"))))) 1144 '("bogus")))))
1145 (setq split (gnus-remove-duplicates split)) 1145 (setq split (mm-delete-duplicates split))
1146 ;; The article may be "cross-posted" to `junk'. What 1146 ;; The article may be "cross-posted" to `junk'. What
1147 ;; to do? Just remove the `junk' spec. Don't really 1147 ;; to do? Just remove the `junk' spec. Don't really
1148 ;; see anything else to do... 1148 ;; see anything else to do...
diff --git a/lisp/ido.el b/lisp/ido.el
index 2d62f6c74ef..b234795d3be 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -354,7 +354,7 @@ Setting this variable directly does not take effect;
354use either \\[customize] or the function `ido-mode'." 354use either \\[customize] or the function `ido-mode'."
355 :set #'(lambda (symbol value) 355 :set #'(lambda (symbol value)
356 (ido-mode value)) 356 (ido-mode value))
357 :initialize 'custom-initialize-default 357 :initialize 'custom-initialize-set
358 :require 'ido 358 :require 'ido
359 :link '(emacs-commentary-link "ido.el") 359 :link '(emacs-commentary-link "ido.el")
360 :set-after '(ido-save-directory-list-file) 360 :set-after '(ido-save-directory-list-file)
diff --git a/lisp/info.el b/lisp/info.el
index 7868125b9b0..5a0c0b510c1 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -1845,36 +1845,45 @@ End of submatch 0, 1, and 3 are the same, so you can safely concat."
1845(defun Info-next () 1845(defun Info-next ()
1846 "Go to the next node of this node." 1846 "Go to the next node of this node."
1847 (interactive) 1847 (interactive)
1848 (Info-goto-node (Info-extract-pointer "next"))) 1848 ;; In case another window is currently selected
1849 (save-window-excursion
1850 (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
1851 (Info-goto-node (Info-extract-pointer "next"))))
1849 1852
1850(defun Info-prev () 1853(defun Info-prev ()
1851 "Go to the previous node of this node." 1854 "Go to the previous node of this node."
1852 (interactive) 1855 (interactive)
1853 (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous"))) 1856 ;; In case another window is currently selected
1857 (save-window-excursion
1858 (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
1859 (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous"))))
1854 1860
1855(defun Info-up (&optional same-file) 1861(defun Info-up (&optional same-file)
1856 "Go to the superior node of this node. 1862 "Go to the superior node of this node.
1857If SAME-FILE is non-nil, do not move to a different Info file." 1863If SAME-FILE is non-nil, do not move to a different Info file."
1858 (interactive) 1864 (interactive)
1859 (let ((old-node Info-current-node) 1865 ;; In case another window is currently selected
1860 (old-file Info-current-file) 1866 (save-window-excursion
1861 (node (Info-extract-pointer "up")) p) 1867 (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
1862 (and (or same-file (not (stringp Info-current-file))) 1868 (let ((old-node Info-current-node)
1863 (string-match "^(" node) 1869 (old-file Info-current-file)
1864 (error "Up node is in another Info file")) 1870 (node (Info-extract-pointer "up")) p)
1865 (Info-goto-node node) 1871 (and (or same-file (not (stringp Info-current-file)))
1866 (setq p (point)) 1872 (string-match "^(" node)
1867 (goto-char (point-min)) 1873 (error "Up node is in another Info file"))
1868 (if (and (search-forward "\n* Menu:" nil t) 1874 (Info-goto-node node)
1869 (re-search-forward 1875 (setq p (point))
1870 (if (string-equal old-node "Top") 1876 (goto-char (point-min))
1871 (concat "\n\\*[^:]+: +(" (file-name-nondirectory old-file) ")") 1877 (if (and (search-forward "\n* Menu:" nil t)
1872 (concat "\n\\* +\\(" (regexp-quote old-node) 1878 (re-search-forward
1873 ":\\|[^:]+: +" (regexp-quote old-node) "\\)")) 1879 (if (string-equal old-node "Top")
1874 nil t)) 1880 (concat "\n\\*[^:]+: +(" (file-name-nondirectory old-file) ")")
1875 (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2))) 1881 (concat "\n\\* +\\(" (regexp-quote old-node)
1876 (goto-char p) 1882 ":\\|[^:]+: +" (regexp-quote old-node) "\\)"))
1877 (Info-restore-point Info-history)))) 1883 nil t))
1884 (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2)))
1885 (goto-char p)
1886 (Info-restore-point Info-history)))))
1878 1887
1879(defun Info-history-back () 1888(defun Info-history-back ()
1880 "Go back in the history to the last node visited." 1889 "Go back in the history to the last node visited."
@@ -4012,8 +4021,6 @@ This will add a speedbar major display mode."
4012 (speedbar-change-initial-expansion-list "Info") 4021 (speedbar-change-initial-expansion-list "Info")
4013 ) 4022 )
4014 4023
4015(eval-when-compile (defvar speedbar-attached-frame))
4016
4017(defun Info-speedbar-hierarchy-buttons (directory depth &optional node) 4024(defun Info-speedbar-hierarchy-buttons (directory depth &optional node)
4018 "Display an Info directory hierarchy in speedbar. 4025 "Display an Info directory hierarchy in speedbar.
4019DIRECTORY is the current directory in the attached frame. 4026DIRECTORY is the current directory in the attached frame.
@@ -4030,13 +4037,12 @@ specific node to expand."
4030 ;; being known at creation time. 4037 ;; being known at creation time.
4031 (if (not node) 4038 (if (not node)
4032 (speedbar-with-writable (insert "Info Nodes:\n"))) 4039 (speedbar-with-writable (insert "Info Nodes:\n")))
4033 (let ((completions nil) 4040 (let ((completions nil))
4034 (cf (selected-frame))) 4041 (speedbar-select-attached-frame)
4035 (select-frame speedbar-attached-frame)
4036 (save-window-excursion 4042 (save-window-excursion
4037 (setq completions 4043 (setq completions
4038 (Info-speedbar-fetch-file-nodes (or node '"(dir)top")))) 4044 (Info-speedbar-fetch-file-nodes (or node '"(dir)top"))))
4039 (select-frame cf) 4045 (select-frame (speedbar-current-frame))
4040 (if completions 4046 (if completions
4041 (speedbar-with-writable 4047 (speedbar-with-writable
4042 (dolist (completion completions) 4048 (dolist (completion completions)
@@ -4052,7 +4058,7 @@ specific node to expand."
4052(defun Info-speedbar-goto-node (text node indent) 4058(defun Info-speedbar-goto-node (text node indent)
4053 "When user clicks on TEXT, go to an info NODE. 4059 "When user clicks on TEXT, go to an info NODE.
4054The INDENT level is ignored." 4060The INDENT level is ignored."
4055 (select-frame speedbar-attached-frame) 4061 (speedbar-select-attached-frame)
4056 (let* ((buff (or (get-buffer "*info*") 4062 (let* ((buff (or (get-buffer "*info*")
4057 (progn (info) (get-buffer "*info*")))) 4063 (progn (info) (get-buffer "*info*"))))
4058 (bwin (get-buffer-window buff 0))) 4064 (bwin (get-buffer-window buff 0)))
@@ -4062,7 +4068,7 @@ The INDENT level is ignored."
4062 (raise-frame (window-frame bwin))) 4068 (raise-frame (window-frame bwin)))
4063 (if speedbar-power-click 4069 (if speedbar-power-click
4064 (let ((pop-up-frames t)) (select-window (display-buffer buff))) 4070 (let ((pop-up-frames t)) (select-window (display-buffer buff)))
4065 (select-frame speedbar-attached-frame) 4071 (speedbar-select-attached-frame)
4066 (switch-to-buffer buff))) 4072 (switch-to-buffer buff)))
4067 (if (not (string-match "^(\\([^)]+\\))\\([^.]+\\)$" node)) 4073 (if (not (string-match "^(\\([^)]+\\))\\([^.]+\\)$" node))
4068 (error "Invalid node %s" node) 4074 (error "Invalid node %s" node)
@@ -4128,7 +4134,7 @@ NODESPEC is a string of the form: (file)node."
4128 (nreverse completions)))) 4134 (nreverse completions))))
4129 4135
4130;;; Info mode node listing 4136;;; Info mode node listing
4131;; FIXME: Seems not to be used. -stef 4137;; This is called by `speedbar-add-localized-speedbar-support'
4132(defun Info-speedbar-buttons (buffer) 4138(defun Info-speedbar-buttons (buffer)
4133 "Create a speedbar display to help navigation in an Info file. 4139 "Create a speedbar display to help navigation in an Info file.
4134BUFFER is the buffer speedbar is requesting buttons for." 4140BUFFER is the buffer speedbar is requesting buttons for."
@@ -4136,8 +4142,7 @@ BUFFER is the buffer speedbar is requesting buttons for."
4136 (let ((case-fold-search t)) 4142 (let ((case-fold-search t))
4137 (not (looking-at "Info Nodes:")))) 4143 (not (looking-at "Info Nodes:"))))
4138 (erase-buffer)) 4144 (erase-buffer))
4139 (Info-speedbar-hierarchy-buttons nil 0) 4145 (Info-speedbar-hierarchy-buttons nil 0))
4140 )
4141 4146
4142(dolist (mess '("^First node in file$" 4147(dolist (mess '("^First node in file$"
4143 "^No `.*' in index$" 4148 "^No `.*' in index$"
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index b13f2d0bb5a..80f7dbcb199 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -293,6 +293,7 @@ with a space, for which the regexp is `^ '. See the source file for
293example functions that filter buffernames." 293example functions that filter buffernames."
294 :type '(repeat (choice regexp function)) 294 :type '(repeat (choice regexp function))
295 :group 'iswitchb) 295 :group 'iswitchb)
296(put 'iswitchb-buffer-ignore 'risky-local-variable t)
296 297
297(defcustom iswitchb-max-to-show nil 298(defcustom iswitchb-max-to-show nil
298 "*If non-nil, limit the number of names shown in the minibuffer. 299 "*If non-nil, limit the number of names shown in the minibuffer.
@@ -942,7 +943,7 @@ BUFFER-LIST can be list of buffers or list of strings."
942 (progn 943 (progn
943 (setq ignorep t) 944 (setq ignorep t)
944 (setq re-list nil)))) 945 (setq re-list nil))))
945 ((fboundp nextstr) 946 ((functionp nextstr)
946 (if (funcall nextstr bufname) 947 (if (funcall nextstr bufname)
947 (progn 948 (progn
948 (setq ignorep t) 949 (setq ignorep t)
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index d8740c036f2..101e96c8554 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -3,7 +3,7 @@
3 3
4;; This file is part of GNU Emacs. 4;; This file is part of GNU Emacs.
5 5
6;; Author: Bill Carpenter <bill@bubblegum.net>, <bill@carpenter.ORG> 6;; Author: Bill Carpenter <bill@carpenter.ORG>
7;; Version: 8 7;; Version: 8
8;; Keywords: email, queue, mail, sendmail, message, spray, smtp, draft 8;; Keywords: email, queue, mail, sendmail, message, spray, smtp, draft
9;; X-URL: <URL:http://www.carpenter.org/feedmail/feedmail.html> 9;; X-URL: <URL:http://www.carpenter.org/feedmail/feedmail.html>
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index e851b399ce0..6836b3947cb 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,14 @@
12005-09-30 Bill Wohler <wohler@newt.com>
2
3 * mh-customize.el (mh-refile-msg, mh-tool-bar-reply-from)
4 (mh-tool-bar-reply-to, mh-tool-bar-reply-all)
5 (mh-alias-grab-from-field, mh-pack-folder): Image files moved to
6 etc/images/mail so added "mail/" prefix.
7 (mh-reply): Ditto. Also renamed reply2.* to reply.*.
8 (mh-rescan-folder): Ditto. Renamed image file to refresh.* since
9 it can be used in the general sense. Does not have "mail/"
10 prefix.
11
12005-09-24 Emilio C. Lopes <eclig@gmx.net> 122005-09-24 Emilio C. Lopes <eclig@gmx.net>
2 13
3 * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw): 14 * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw):
diff --git a/lisp/mh-e/mh-customize.el b/lisp/mh-e/mh-customize.el
index 4a9882b566c..7fbb1c247b4 100644
--- a/lisp/mh-e/mh-customize.el
+++ b/lisp/mh-e/mh-customize.el
@@ -1922,7 +1922,7 @@ This button runs `mh-previous-undeleted-msg'")
1922 "Go to the next undeleted message\nThe button runs `mh-next-undeleted-msg'") 1922 "Go to the next undeleted message\nThe button runs `mh-next-undeleted-msg'")
1923 (mh-delete-msg (folder) "close" 1923 (mh-delete-msg (folder) "close"
1924 "Mark this message for deletion\nThis button runs `mh-delete-msg'") 1924 "Mark this message for deletion\nThis button runs `mh-delete-msg'")
1925 (mh-refile-msg (folder) "refile" 1925 (mh-refile-msg (folder) "mail/refile"
1926 "Refile this message\nThis button runs `mh-refile-msg'") 1926 "Refile this message\nThis button runs `mh-refile-msg'")
1927 (mh-undo (folder) "undo" "Undo last operation\nThis button runs `undo'" 1927 (mh-undo (folder) "undo" "Undo last operation\nThis button runs `undo'"
1928 (mh-outstanding-commands-p)) 1928 (mh-outstanding-commands-p))
@@ -1933,19 +1933,19 @@ This button runs `mh-previous-undeleted-msg'")
1933 "Toggle tick mark\nThis button runs `mh-toggle-tick'") 1933 "Toggle tick mark\nThis button runs `mh-toggle-tick'")
1934 (mh-toggle-showing (folder) "show" 1934 (mh-toggle-showing (folder) "show"
1935 "Toggle showing message\nThis button runs `mh-toggle-showing'") 1935 "Toggle showing message\nThis button runs `mh-toggle-showing'")
1936 (mh-tool-bar-reply-from (folder) "reply-from" "Reply to \"from\"") 1936 (mh-tool-bar-reply-from (folder) "mail/reply-from" "Reply to \"from\"")
1937 (mh-tool-bar-reply-to (folder) "reply-to" "Reply to \"to\"") 1937 (mh-tool-bar-reply-to (folder) "mail/reply-to" "Reply to \"to\"")
1938 (mh-tool-bar-reply-all (folder) "reply-all" "Reply to \"all\"") 1938 (mh-tool-bar-reply-all (folder) "mail/reply-all" "Reply to \"all\"")
1939 (mh-reply (folder) "mail/reply2" 1939 (mh-reply (folder) "mail/reply"
1940 "Reply to this message\nThis button runs `mh-reply'") 1940 "Reply to this message\nThis button runs `mh-reply'")
1941 (mh-alias-grab-from-field (folder) "alias" 1941 (mh-alias-grab-from-field (folder) "mail/alias"
1942 "Grab From alias\nThis button runs `mh-alias-grab-from-field'" 1942 "Grab From alias\nThis button runs `mh-alias-grab-from-field'"
1943 (and (mh-extract-from-header-value) (not (mh-alias-for-from-p)))) 1943 (and (mh-extract-from-header-value) (not (mh-alias-for-from-p))))
1944 (mh-send (folder) "mail_compose" 1944 (mh-send (folder) "mail_compose"
1945 "Compose new message\nThis button runs `mh-send'") 1945 "Compose new message\nThis button runs `mh-send'")
1946 (mh-rescan-folder (folder) "rescan" 1946 (mh-rescan-folder (folder) "refresh"
1947 "Rescan this folder\nThis button runs `mh-rescan-folder'") 1947 "Rescan this folder\nThis button runs `mh-rescan-folder'")
1948 (mh-pack-folder (folder) "repack" 1948 (mh-pack-folder (folder) "mail/repack"
1949 "Repack this folder\nThis button runs `mh-pack-folder'") 1949 "Repack this folder\nThis button runs `mh-pack-folder'")
1950 (mh-tool-bar-search (folder) "search" 1950 (mh-tool-bar-search (folder) "search"
1951 "Search\nThis button runs `mh-tool-bar-search-function'") 1951 "Search\nThis button runs `mh-tool-bar-search-function'")
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 152e71e64cb..bf3b1427ac2 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1298,6 +1298,8 @@ only return the directory part of FILE."
1298 (setq file 1298 (setq file
1299 (if (file-name-absolute-p temp) 1299 (if (file-name-absolute-p temp)
1300 temp 1300 temp
1301 ;; Wouldn't `expand-file-name' be better than `concat' ?
1302 ;; It would fail when `a/b/..' != `a', tho. --Stef
1301 (concat (file-name-directory file) temp))))) 1303 (concat (file-name-directory file) temp)))))
1302 file) 1304 file)
1303 1305
@@ -1385,12 +1387,12 @@ only return the directory part of FILE."
1385 (if (or ange-ftp-disable-netrc-security-check 1387 (if (or ange-ftp-disable-netrc-security-check
1386 (and (eq (nth 2 attr) (user-uid)) ; Same uids. 1388 (and (eq (nth 2 attr) (user-uid)) ; Same uids.
1387 (string-match ".r..------" (nth 8 attr)))) 1389 (string-match ".r..------" (nth 8 attr))))
1388 (save-excursion 1390 (with-current-buffer
1389 ;; we are cheating a bit here. I'm trying to do the equivalent 1391 ;; we are cheating a bit here. I'm trying to do the equivalent
1390 ;; of find-file on the .netrc file, but then nuke it afterwards. 1392 ;; of find-file on the .netrc file, but then nuke it afterwards.
1391 ;; with the bit of logic below we should be able to have 1393 ;; with the bit of logic below we should be able to have
1392 ;; encrypted .netrc files. 1394 ;; encrypted .netrc files.
1393 (set-buffer (generate-new-buffer "*ftp-.netrc*")) 1395 (generate-new-buffer "*ftp-.netrc*")
1394 (ange-ftp-real-insert-file-contents file) 1396 (ange-ftp-real-insert-file-contents file)
1395 (setq buffer-file-name file) 1397 (setq buffer-file-name file)
1396 (setq default-directory (file-name-directory file)) 1398 (setq default-directory (file-name-directory file))
@@ -1511,7 +1513,7 @@ then kill the related ftp process."
1511 (setq buffer (current-buffer)) 1513 (setq buffer (current-buffer))
1512 (setq buffer (get-buffer buffer))) 1514 (setq buffer (get-buffer buffer)))
1513 (let ((file (or (buffer-file-name buffer) 1515 (let ((file (or (buffer-file-name buffer)
1514 (save-excursion (set-buffer buffer) default-directory)))) 1516 (with-current-buffer buffer default-directory))))
1515 (if file 1517 (if file
1516 (let ((parsed (ange-ftp-ftp-name (expand-file-name file)))) 1518 (let ((parsed (ange-ftp-ftp-name (expand-file-name file))))
1517 (if parsed 1519 (if parsed
@@ -1592,8 +1594,7 @@ good, skip, fatal, or unknown."
1592 (if proc 1594 (if proc
1593 (let ((buf (process-buffer proc))) 1595 (let ((buf (process-buffer proc)))
1594 (if buf 1596 (if buf
1595 (save-excursion 1597 (with-current-buffer buf
1596 (set-buffer buf)
1597 (setq ange-ftp-xfer-size 1598 (setq ange-ftp-xfer-size
1598 ;; For very large files, BYTES can be a float. 1599 ;; For very large files, BYTES can be a float.
1599 (if (integerp bytes) 1600 (if (integerp bytes)
@@ -1763,8 +1764,7 @@ good, skip, fatal, or unknown."
1763 1764
1764(defun ange-ftp-gwp-filter (proc str) 1765(defun ange-ftp-gwp-filter (proc str)
1765 (comint-output-filter proc str) 1766 (comint-output-filter proc str)
1766 (save-excursion 1767 (with-current-buffer (process-buffer proc)
1767 (set-buffer (process-buffer proc))
1768 ;; Replace STR by the result of the comint processing. 1768 ;; Replace STR by the result of the comint processing.
1769 (setq str (buffer-substring comint-last-output-start (process-mark proc)))) 1769 (setq str (buffer-substring comint-last-output-start (process-mark proc))))
1770 (cond ((string-match "login: *$" str) 1770 (cond ((string-match "login: *$" str)
@@ -1800,8 +1800,7 @@ good, skip, fatal, or unknown."
1800 (set-process-query-on-exit-flag proc nil) 1800 (set-process-query-on-exit-flag proc nil)
1801 (set-process-sentinel proc 'ange-ftp-gwp-sentinel) 1801 (set-process-sentinel proc 'ange-ftp-gwp-sentinel)
1802 (set-process-filter proc 'ange-ftp-gwp-filter) 1802 (set-process-filter proc 'ange-ftp-gwp-filter)
1803 (save-excursion 1803 (with-current-buffer (process-buffer proc)
1804 (set-buffer (process-buffer proc))
1805 (goto-char (point-max)) 1804 (goto-char (point-max))
1806 (set-marker (process-mark proc) (point))) 1805 (set-marker (process-mark proc) (point)))
1807 (setq ange-ftp-gwp-running t 1806 (setq ange-ftp-gwp-running t
@@ -1907,8 +1906,7 @@ been queued with no result. CONT will still be called, however."
1907 ange-ftp-nslookup-program host))) 1906 ange-ftp-nslookup-program host)))
1908 (res host)) 1907 (res host))
1909 (set-process-query-on-exit-flag proc nil) 1908 (set-process-query-on-exit-flag proc nil)
1910 (save-excursion 1909 (with-current-buffer (process-buffer proc)
1911 (set-buffer (process-buffer proc))
1912 (while (memq (process-status proc) '(run open)) 1910 (while (memq (process-status proc) '(run open))
1913 (accept-process-output proc)) 1911 (accept-process-output proc))
1914 (goto-char (point-min)) 1912 (goto-char (point-min))
@@ -1947,8 +1945,7 @@ on the gateway machine to do the ftp instead."
1947 ;; Copy this so we don't alter it permanently. 1945 ;; Copy this so we don't alter it permanently.
1948 (process-environment (copy-tree process-environment)) 1946 (process-environment (copy-tree process-environment))
1949 (buffer (get-buffer-create name))) 1947 (buffer (get-buffer-create name)))
1950 (save-excursion 1948 (with-current-buffer buffer
1951 (set-buffer buffer)
1952 (internal-ange-ftp-mode)) 1949 (internal-ange-ftp-mode))
1953 ;; This tells GNU ftp not to output any fancy escape sequences. 1950 ;; This tells GNU ftp not to output any fancy escape sequences.
1954 (setenv "TERM" "dumb") 1951 (setenv "TERM" "dumb")
@@ -1960,8 +1957,7 @@ on the gateway machine to do the ftp instead."
1960 ange-ftp-gateway-host) 1957 ange-ftp-gateway-host)
1961 args)))) 1958 args))))
1962 (setq proc (apply 'start-process name name args)))) 1959 (setq proc (apply 'start-process name name args))))
1963 (save-excursion 1960 (with-current-buffer (process-buffer proc)
1964 (set-buffer (process-buffer proc))
1965 (goto-char (point-max)) 1961 (goto-char (point-max))
1966 (set-marker (process-mark proc) (point))) 1962 (set-marker (process-mark proc) (point)))
1967 (set-process-query-on-exit-flag proc nil) 1963 (set-process-query-on-exit-flag proc nil)
@@ -2127,8 +2123,7 @@ suffix of the form #PORT to specify a non-default port"
2127 2123
2128(defun ange-ftp-guess-hash-mark-size (proc) 2124(defun ange-ftp-guess-hash-mark-size (proc)
2129 (if ange-ftp-send-hash 2125 (if ange-ftp-send-hash
2130 (save-excursion 2126 (with-current-buffer (process-buffer proc)
2131 (set-buffer (process-buffer proc))
2132 (let* ((status (ange-ftp-raw-send-cmd proc "hash")) 2127 (let* ((status (ange-ftp-raw-send-cmd proc "hash"))
2133 (line (cdr status))) 2128 (line (cdr status)))
2134 (save-match-data 2129 (save-match-data
@@ -2308,6 +2303,14 @@ and NOWAIT."
2308 (not (string-match "R" cmd3)) 2303 (not (string-match "R" cmd3))
2309 (setq cmd1 (concat cmd1 "."))) 2304 (setq cmd1 (concat cmd1 ".")))
2310 2305
2306 ;; Using "ls -flags foo" has several problems:
2307 ;; - if foo is a symlink, we may get a single line showing the symlink
2308 ;; rather than the listing of the directory it points to.
2309 ;; - if "foo" has spaces, the parsing of the command may be done wrong.
2310 ;; - some version of netbsd's ftpd only accept a single argument after
2311 ;; `ls', which can either be the directory or the flags.
2312 ;; So to work around those problems, we use "cd foo; ls -flags".
2313
2311 ;; If the dir name contains a space, some ftp servers will 2314 ;; If the dir name contains a space, some ftp servers will
2312 ;; refuse to list it. We instead change directory to the 2315 ;; refuse to list it. We instead change directory to the
2313 ;; directory in question and ls ".". 2316 ;; directory in question and ls ".".
@@ -2324,14 +2327,14 @@ and NOWAIT."
2324 ;; This works around a misfeature of some versions of netbsd ftpd 2327 ;; This works around a misfeature of some versions of netbsd ftpd
2325 ;; where `ls' can only take one argument: either one set of flags 2328 ;; where `ls' can only take one argument: either one set of flags
2326 ;; or a file/directory name. 2329 ;; or a file/directory name.
2327 ;; FIXME: if we're trying to `ls' a single file, this fails since we 2330 ;; If we're trying to `ls' a single file, this fails since we
2328 ;; can't cd to a file. We can't fix this problem here, tho, because 2331 ;; can't cd to a file. We can't fix this problem here, tho, because
2329 ;; at this point we don't know whether the argument is a file or 2332 ;; at this point we don't know whether the argument is a file or
2330 ;; a directory. Such an `ls' is only every used (apparently) from 2333 ;; a directory. Such an `ls' is only ever used (apparently) from
2331 ;; `insert-directory' when the `full-directory-p' argument is nil 2334 ;; `insert-directory' when the `full-directory-p' argument is nil
2332 ;; (which seems to only be used by dired when updating its display 2335 ;; (which seems to only be used by dired when updating its display
2333 ;; after operating on a set of files). We should change 2336 ;; after operating on a set of files). So we've changed
2334 ;; ange-ftp-insert-directory so that this case is handled by getting 2337 ;; `ange-ftp-insert-directory' such that in this case it gets
2335 ;; a full listing of the directory and extracting the line 2338 ;; a full listing of the directory and extracting the line
2336 ;; corresponding to the requested file. 2339 ;; corresponding to the requested file.
2337 (unless (equal cmd1 ".") 2340 (unless (equal cmd1 ".")
@@ -2606,9 +2609,8 @@ away in the internal cache."
2606 (format "Listing %s" 2609 (format "Listing %s"
2607 (ange-ftp-abbreviate-filename 2610 (ange-ftp-abbreviate-filename
2608 ange-ftp-this-file))))) 2611 ange-ftp-this-file)))))
2609 (save-excursion 2612 (with-current-buffer (get-buffer-create
2610 (set-buffer (get-buffer-create 2613 ange-ftp-data-buffer-name)
2611 ange-ftp-data-buffer-name))
2612 (erase-buffer) 2614 (erase-buffer)
2613 (if (ange-ftp-real-file-readable-p temp) 2615 (if (ange-ftp-real-file-readable-p temp)
2614 (ange-ftp-real-insert-file-contents temp) 2616 (ange-ftp-real-insert-file-contents temp)
@@ -3022,8 +3024,7 @@ this also returns nil."
3022 (let ((result (ange-ftp-send-cmd host user '(type "binary")))) 3024 (let ((result (ange-ftp-send-cmd host user '(type "binary"))))
3023 (if (not (car result)) 3025 (if (not (car result))
3024 (ange-ftp-error host user (concat "BINARY failed: " (cdr result))) 3026 (ange-ftp-error host user (concat "BINARY failed: " (cdr result)))
3025 (save-excursion 3027 (with-current-buffer (process-buffer (ange-ftp-get-process host user))
3026 (set-buffer (process-buffer (ange-ftp-get-process host user)))
3027 (and ange-ftp-binary-hash-mark-size 3028 (and ange-ftp-binary-hash-mark-size
3028 (setq ange-ftp-hash-mark-unit 3029 (setq ange-ftp-hash-mark-unit
3029 (ash ange-ftp-binary-hash-mark-size -4))))))) 3030 (ash ange-ftp-binary-hash-mark-size -4)))))))
@@ -3033,8 +3034,7 @@ this also returns nil."
3033 (let ((result (ange-ftp-send-cmd host user '(type "ascii")))) 3034 (let ((result (ange-ftp-send-cmd host user '(type "ascii"))))
3034 (if (not (car result)) 3035 (if (not (car result))
3035 (ange-ftp-error host user (concat "ASCII failed: " (cdr result))) 3036 (ange-ftp-error host user (concat "ASCII failed: " (cdr result)))
3036 (save-excursion 3037 (with-current-buffer (process-buffer (ange-ftp-get-process host user))
3037 (set-buffer (process-buffer (ange-ftp-get-process host user)))
3038 (and ange-ftp-ascii-hash-mark-size 3038 (and ange-ftp-ascii-hash-mark-size
3039 (setq ange-ftp-hash-mark-unit 3039 (setq ange-ftp-hash-mark-unit
3040 (ash ange-ftp-ascii-hash-mark-size -4))))))) 3040 (ash ange-ftp-ascii-hash-mark-size -4)))))))
@@ -3174,7 +3174,7 @@ logged in as user USER and cd'd to directory DIR."
3174 (ange-ftp-real-file-name-directory n)))))) 3174 (ange-ftp-real-file-name-directory n))))))
3175 3175
3176(defun ange-ftp-expand-file-name (name &optional default) 3176(defun ange-ftp-expand-file-name (name &optional default)
3177 "Documented as original." 3177 "Documented as `expand-file-name'."
3178 (save-match-data 3178 (save-match-data
3179 (setq default (or default default-directory)) 3179 (setq default (or default default-directory))
3180 (cond ((eq (string-to-char name) ?~) 3180 (cond ((eq (string-to-char name) ?~)
@@ -3289,7 +3289,7 @@ system TYPE.")
3289 ;; cleanup forms 3289 ;; cleanup forms
3290 (setq coding-system-used last-coding-system-used) 3290 (setq coding-system-used last-coding-system-used)
3291 (setq buffer-file-name filename) 3291 (setq buffer-file-name filename)
3292 (set-buffer-modified-p mod-p))) 3292 (restore-buffer-modified-p mod-p)))
3293 (if binary 3293 (if binary
3294 (ange-ftp-set-binary-mode host user)) 3294 (ange-ftp-set-binary-mode host user))
3295 3295
@@ -3448,7 +3448,9 @@ system TYPE.")
3448 (let ((file-ent (ange-ftp-get-file-entry 3448 (let ((file-ent (ange-ftp-get-file-entry
3449 (ange-ftp-file-name-as-directory name)))) 3449 (ange-ftp-file-name-as-directory name))))
3450 (if (stringp file-ent) 3450 (if (stringp file-ent)
3451 (file-directory-p 3451 ;; Calling file-directory-p doesn't work because ange-ftp
3452 ;; is temporarily disabled for this operation.
3453 (ange-ftp-file-directory-p
3452 (ange-ftp-expand-symlink file-ent 3454 (ange-ftp-expand-symlink file-ent
3453 (file-name-directory 3455 (file-name-directory
3454 (directory-file-name name)))) 3456 (directory-file-name name))))
@@ -3640,8 +3642,7 @@ Value is (0 0) if the modification time cannot be determined."
3640;; (set (make-local-variable 'copy-cont) cont)))) 3642;; (set (make-local-variable 'copy-cont) cont))))
3641;; 3643;;
3642;; (defun ange-ftp-copy-file-locally-sentinel (proc status) 3644;; (defun ange-ftp-copy-file-locally-sentinel (proc status)
3643;; (save-excursion 3645;; (with-current-buffer (process-buffer proc)
3644;; (set-buffer (process-buffer proc))
3645;; (let ((cont copy-cont) 3646;; (let ((cont copy-cont)
3646;; (result (buffer-string))) 3647;; (result (buffer-string)))
3647;; (unwind-protect 3648;; (unwind-protect
@@ -4476,21 +4477,38 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4476;; `ange-ftp-ls' handles this. 4477;; `ange-ftp-ls' handles this.
4477 4478
4478(defun ange-ftp-insert-directory (file switches &optional wildcard full) 4479(defun ange-ftp-insert-directory (file switches &optional wildcard full)
4479 (let ((parsed (ange-ftp-ftp-name (expand-file-name file))) 4480 (if (not (ange-ftp-ftp-name (expand-file-name file)))
4480 tem) 4481 (ange-ftp-real-insert-directory file switches wildcard full)
4481 (if parsed 4482 ;; We used to follow symlinks on `file' here. Apparently it was done
4482 (if (and (not wildcard) 4483 ;; because some FTP servers react to "ls foo" by listing the symlink foo
4483 (setq tem (file-symlink-p (directory-file-name file)))) 4484 ;; rather than the directory it points to. Now that ange-ftp-ls uses
4484 (ange-ftp-insert-directory 4485 ;; "cd foo; ls" instead, this is not necesssary any more.
4485 (ange-ftp-expand-symlink 4486 (insert
4486 tem (file-name-directory (directory-file-name file))) 4487 (cond
4487 switches wildcard full) 4488 (wildcard
4488 (insert 4489 (let ((default-directory (file-name-directory file)))
4489 (if wildcard 4490 (ange-ftp-ls (file-name-nondirectory file) switches nil nil t)))
4490 (let ((default-directory (file-name-directory file))) 4491 (full
4491 (ange-ftp-ls (file-name-nondirectory file) switches nil nil t)) 4492 (ange-ftp-ls file switches 'parse))
4492 (ange-ftp-ls file switches full)))) 4493 (t
4493 (ange-ftp-real-insert-directory file switches wildcard full)))) 4494 ;; If `full' is nil we're going to do `ls' for a single file.
4495 ;; Problem is that for various reasons, ange-ftp-ls needs to cd and
4496 ;; then do an ls of current dir, which obviously won't work if we
4497 ;; want to ls a file. So instead, we get a full listing of the
4498 ;; parent directory and extract the line corresponding to `file'.
4499 (when (string-match "d\\'" switches)
4500 ;; Remove "d" which dired added to `switches'.
4501 (setq switches (substring switches 0 (match-beginning 0))))
4502 (let* ((dirlist (ange-ftp-ls (or (file-name-directory file) ".")
4503 switches nil))
4504 (filename (file-name-nondirectory (directory-file-name file)))
4505 (case-fold-search nil))
4506 ;; FIXME: This presumes a particular output format, which is
4507 ;; basically Unix.
4508 (if (string-match (concat "^.+[^ ] " (regexp-quote filename)
4509 "\\( -> .*\\)?[@/*=]?\n") dirlist)
4510 (match-string 0 dirlist)
4511 "")))))))
4494 4512
4495(defun ange-ftp-dired-uncache (dir) 4513(defun ange-ftp-dired-uncache (dir)
4496 (if (ange-ftp-ftp-name (expand-file-name dir)) 4514 (if (ange-ftp-ftp-name (expand-file-name dir))
@@ -4502,10 +4520,8 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4502(defun ange-ftp-file-name-sans-versions (file keep-backup-version) 4520(defun ange-ftp-file-name-sans-versions (file keep-backup-version)
4503 (let* ((short (ange-ftp-abbreviate-filename file)) 4521 (let* ((short (ange-ftp-abbreviate-filename file))
4504 (parsed (ange-ftp-ftp-name short)) 4522 (parsed (ange-ftp-ftp-name short))
4505 func) 4523 (func (if parsed (cdr (assq (ange-ftp-host-type (car parsed))
4506 (if parsed 4524 ange-ftp-sans-version-alist)))))
4507 (setq func (cdr (assq (ange-ftp-host-type (car parsed))
4508 ange-ftp-sans-version-alist))))
4509 (if func (funcall func file keep-backup-version) 4525 (if func (funcall func file keep-backup-version)
4510 (ange-ftp-real-file-name-sans-versions file keep-backup-version)))) 4526 (ange-ftp-real-file-name-sans-versions file keep-backup-version))))
4511 4527
@@ -4649,10 +4665,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4649;; target marker-char buffer overwrite-query 4665;; target marker-char buffer overwrite-query
4650;; overwrite-backup-query failures skipped 4666;; overwrite-backup-query failures skipped
4651;; success-count total) 4667;; success-count total)
4652;; (let ((old-buf (current-buffer))) 4668;; (with-current-buffer buffer
4653;; (unwind-protect
4654;; (progn
4655;; (set-buffer buffer)
4656;; (if (null fn-list) 4669;; (if (null fn-list)
4657;; (ange-ftp-dcf-3 failures operation total skipped 4670;; (ange-ftp-dcf-3 failures operation total skipped
4658;; success-count buffer) 4671;; success-count buffer)
@@ -4724,8 +4737,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4724;; overwrite-query 4737;; overwrite-query
4725;; overwrite-backup-query 4738;; overwrite-backup-query
4726;; failures skipped success-count 4739;; failures skipped success-count
4727;; total)))))))) 4740;; total)))))))))
4728;; (set-buffer old-buf))))
4729 4741
4730;;(defun ange-ftp-dcf-2 (result line err 4742;;(defun ange-ftp-dcf-2 (result line err
4731;; file-creator operation fn-list 4743;; file-creator operation fn-list
@@ -4739,10 +4751,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4739;; overwrite-backup-query 4751;; overwrite-backup-query
4740;; failures skipped success-count 4752;; failures skipped success-count
4741;; total) 4753;; total)
4742;; (let ((old-buf (current-buffer))) 4754;; (with-current-buffer buffer
4743;; (unwind-protect
4744;; (progn
4745;; (set-buffer buffer)
4746;; (if (or err (not result)) 4755;; (if (or err (not result))
4747;; (progn 4756;; (progn
4748;; (setq failures (cons (dired-make-relative from) failures)) 4757;; (setq failures (cons (dired-make-relative from) failures))
@@ -4765,15 +4774,11 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4765;; overwrite-query 4774;; overwrite-query
4766;; overwrite-backup-query 4775;; overwrite-backup-query
4767;; failures skipped success-count 4776;; failures skipped success-count
4768;; total)) 4777;; total)))
4769;; (set-buffer old-buf))))
4770 4778
4771;;(defun ange-ftp-dcf-3 (failures operation total skipped success-count 4779;;(defun ange-ftp-dcf-3 (failures operation total skipped success-count
4772;; buffer) 4780;; buffer)
4773;; (let ((old-buf (current-buffer))) 4781;; (with-current-buffer buffer
4774;; (unwind-protect
4775;; (progn
4776;; (set-buffer buffer)
4777;; (cond 4782;; (cond
4778;; (failures 4783;; (failures
4779;; (dired-log-summary 4784;; (dired-log-summary
@@ -4788,8 +4793,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4788;; (t 4793;; (t
4789;; (message "%s: %s file%s." 4794;; (message "%s: %s file%s."
4790;; operation success-count (dired-plural-s success-count)))) 4795;; operation success-count (dired-plural-s success-count))))
4791;; (dired-move-to-filename)) 4796;; (dired-move-to-filename)))
4792;; (set-buffer old-buf))))
4793 4797
4794;;;; ----------------------------------------------- 4798;;;; -----------------------------------------------
4795;;;; Unix Descriptive Listing (dl) Support 4799;;;; Unix Descriptive Listing (dl) Support
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 9c832dd14f9..17b91d92818 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -136,7 +136,7 @@ Nil means to use a separate filename syntax for Tramp.")
136;; Avoid byte-compiler warnings if the byte-compiler supports this. 136;; Avoid byte-compiler warnings if the byte-compiler supports this.
137;; Currently, XEmacs supports this. 137;; Currently, XEmacs supports this.
138(eval-when-compile 138(eval-when-compile
139 (when (fboundp 'byte-compiler-options) 139 (when (featurep 'xemacs)
140 (let (unused-vars) ; Pacify Emacs byte-compiler 140 (let (unused-vars) ; Pacify Emacs byte-compiler
141 (defalias 'warnings 'identity) ; Pacify Emacs byte-compiler 141 (defalias 'warnings 'identity) ; Pacify Emacs byte-compiler
142 (byte-compiler-options (warnings (- unused-vars)))))) 142 (byte-compiler-options (warnings (- unused-vars))))))
@@ -3681,7 +3681,7 @@ This will break if COMMAND prints a newline, followed by the value of
3681 (let ((tmpbuf (get-buffer-create " *tramp tmp*"))) 3681 (let ((tmpbuf (get-buffer-create " *tramp tmp*")))
3682 (set-buffer tmpbuf) 3682 (set-buffer tmpbuf)
3683 (erase-buffer) 3683 (erase-buffer)
3684 (insert-buffer tramp-buf) 3684 (insert-buffer-substring tramp-buf)
3685 (tramp-message-for-buffer 3685 (tramp-message-for-buffer
3686 multi-method method user host 3686 multi-method method user host
3687 6 "Decoding remote file %s with function %s..." 3687 6 "Decoding remote file %s with function %s..."
diff --git a/lisp/outline.el b/lisp/outline.el
index 012396c2eb0..8a05aaf0cd9 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -685,7 +685,7 @@ This puts point at the start of the current subtree, and mark at the end."
685 (outline-previous-visible-heading 1)) 685 (outline-previous-visible-heading 1))
686 (setq beg (point)) 686 (setq beg (point))
687 (outline-end-of-subtree) 687 (outline-end-of-subtree)
688 (push-mark (point)) 688 (push-mark (point) nil t)
689 (goto-char beg))) 689 (goto-char beg)))
690 690
691 691
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index c402192c05a..f86e4c95625 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -647,34 +647,38 @@ This is responsible for parsing the output from the cvs update when
647it is finished." 647it is finished."
648 (when (memq (process-status proc) '(signal exit)) 648 (when (memq (process-status proc) '(signal exit))
649 (let ((cvs-postproc (process-get proc 'cvs-postprocess)) 649 (let ((cvs-postproc (process-get proc 'cvs-postprocess))
650 (cvs-buf (process-get proc 'cvs-buffer))) 650 (cvs-buf (process-get proc 'cvs-buffer))
651 (procbuf (process-buffer proc)))
652 (unless (buffer-live-p cvs-buf) (setq cvs-buf nil))
653 (unless (buffer-live-p procbuf) (setq procbuf nil))
651 ;; Since the buffer and mode line will show that the 654 ;; Since the buffer and mode line will show that the
652 ;; process is dead, we can delete it now. Otherwise it 655 ;; process is dead, we can delete it now. Otherwise it
653 ;; will stay around until M-x list-processes. 656 ;; will stay around until M-x list-processes.
654 (process-put proc 'postprocess nil) 657 (process-put proc 'postprocess nil)
655 (delete-process proc) 658 (delete-process proc)
656 ;; Don't do anything if the main buffer doesn't exist any more. 659 ;; Don't do anything if the main buffer doesn't exist any more.
657 (when (buffer-live-p cvs-buf) 660 (when cvs-buf
658 (with-current-buffer cvs-buf 661 (with-current-buffer cvs-buf
659 (cvs-update-header (process-get proc 'cvs-header) nil) 662 (cvs-update-header (process-get proc 'cvs-header) nil)
660 (setq cvs-mode-line-process (symbol-name (process-status proc))) 663 (setq cvs-mode-line-process (symbol-name (process-status proc)))
661 (force-mode-line-update) 664 (force-mode-line-update)
662 (when cvs-postproc 665 (when cvs-postproc
663 (if (null (buffer-live-p (process-buffer proc))) 666 (if (null procbuf)
664 ;;(set-process-buffer proc nil) 667 ;;(set-process-buffer proc nil)
665 (error "cvs' process buffer was killed") 668 (error "cvs' process buffer was killed")
666 (with-current-buffer (process-buffer proc) 669 (with-current-buffer procbuf
667 ;; do the postprocessing like parsing and such 670 ;; Do the postprocessing like parsing and such.
668 (save-excursion (eval cvs-postproc)) 671 (save-excursion (eval cvs-postproc)))))))
669 ;; check whether something is left 672 ;; Check whether something is left.
670 (unless (get-buffer-process (current-buffer)) 673 (when (and procbuf (not (get-buffer-process procbuf)))
671 ;; IIRC, we enable undo again once the process is finished 674 (with-current-buffer procbuf
672 ;; for cases where the output was inserted in *vc-diff* or 675 ;; IIRC, we enable undo again once the process is finished
673 ;; in a file-like buffer. --Stef 676 ;; for cases where the output was inserted in *vc-diff* or
674 (buffer-enable-undo) 677 ;; in a file-like buffer. --Stef
675 (with-current-buffer cvs-buffer 678 (buffer-enable-undo)
676 (message "CVS process has completed in %s" 679 (with-current-buffer (or cvs-buf (current-buffer))
677 (buffer-name)))))))))))) 680 (message "CVS process has completed in %s"
681 (buffer-name))))))))
678 682
679(defun cvs-parse-process (dcd &optional subdir old-fis) 683(defun cvs-parse-process (dcd &optional subdir old-fis)
680 "Parse the output of a cvs process. 684 "Parse the output of a cvs process.
diff --git a/lisp/play/zone.el b/lisp/play/zone.el
index 7441c2b9aa8..b914d1ba887 100644
--- a/lisp/play/zone.el
+++ b/lisp/play/zone.el
@@ -135,59 +135,60 @@ If the element is a function or a list of a function and a number,
135(defun zone () 135(defun zone ()
136 "Zone out, completely." 136 "Zone out, completely."
137 (interactive) 137 (interactive)
138 (let ((f (selected-frame)) 138 (save-window-excursion
139 (outbuf (get-buffer-create "*zone*")) 139 (let ((f (selected-frame))
140 (text (buffer-substring (window-start) (window-end))) 140 (outbuf (get-buffer-create "*zone*"))
141 (wp (1+ (- (window-point (selected-window)) 141 (text (buffer-substring (window-start) (window-end)))
142 (window-start))))) 142 (wp (1+ (- (window-point (selected-window))
143 (put 'zone 'orig-buffer (current-buffer)) 143 (window-start)))))
144 (put 'zone 'modeline-hidden-level 0) 144 (put 'zone 'orig-buffer (current-buffer))
145 (switch-to-buffer outbuf) 145 (put 'zone 'modeline-hidden-level 0)
146 (setq mode-name "Zone") 146 (switch-to-buffer outbuf)
147 (erase-buffer) 147 (setq mode-name "Zone")
148 (setq buffer-undo-list t 148 (erase-buffer)
149 truncate-lines t 149 (setq buffer-undo-list t
150 tab-width (zone-orig tab-width) 150 truncate-lines t
151 line-spacing (zone-orig line-spacing)) 151 tab-width (zone-orig tab-width)
152 (insert text) 152 line-spacing (zone-orig line-spacing))
153 (untabify (point-min) (point-max)) 153 (insert text)
154 (set-window-start (selected-window) (point-min)) 154 (untabify (point-min) (point-max))
155 (set-window-point (selected-window) wp) 155 (set-window-start (selected-window) (point-min))
156 (sit-for 0 500) 156 (set-window-point (selected-window) wp)
157 (let ((pgm (elt zone-programs (random (length zone-programs)))) 157 (sit-for 0 500)
158 (ct (and f (frame-parameter f 'cursor-type))) 158 (let ((pgm (elt zone-programs (random (length zone-programs))))
159 (restore (list '(kill-buffer outbuf)))) 159 (ct (and f (frame-parameter f 'cursor-type)))
160 (when ct 160 (restore (list '(kill-buffer outbuf))))
161 (modify-frame-parameters f '((cursor-type . (bar . 0)))) 161 (when ct
162 (setq restore (cons '(modify-frame-parameters 162 (modify-frame-parameters f '((cursor-type . (bar . 0))))
163 f (list (cons 'cursor-type ct))) 163 (setq restore (cons '(modify-frame-parameters
164 restore))) 164 f (list (cons 'cursor-type ct)))
165 ;; Make `restore' a self-disabling one-shot thunk. 165 restore)))
166 (setq restore `(lambda () ,@restore (setq restore nil))) 166 ;; Make `restore' a self-disabling one-shot thunk.
167 (condition-case nil 167 (setq restore `(lambda () ,@restore (setq restore nil)))
168 (progn 168 (condition-case nil
169 (message "Zoning... (%s)" pgm) 169 (progn
170 (garbage-collect) 170 (message "Zoning... (%s)" pgm)
171 ;; If some input is pending, zone says "sorry", which 171 (garbage-collect)
172 ;; isn't nice; this might happen e.g. when they invoke the 172 ;; If some input is pending, zone says "sorry", which
173 ;; game by clicking the menu bar. So discard any pending 173 ;; isn't nice; this might happen e.g. when they invoke the
174 ;; input before zoning out. 174 ;; game by clicking the menu bar. So discard any pending
175 (if (input-pending-p) 175 ;; input before zoning out.
176 (discard-input)) 176 (if (input-pending-p)
177 (zone-call pgm) 177 (discard-input))
178 (message "Zoning...sorry")) 178 (zone-call pgm)
179 (error 179 (message "Zoning...sorry"))
180 (funcall restore) 180 (error
181 (while (not (input-pending-p)) 181 (funcall restore)
182 (message "We were zoning when we wrote %s..." pgm) 182 (while (not (input-pending-p))
183 (sit-for 3) 183 (message "We were zoning when we wrote %s..." pgm)
184 (message "...here's hoping we didn't hose your buffer!") 184 (sit-for 3)
185 (sit-for 3))) 185 (message "...here's hoping we didn't hose your buffer!")
186 (quit 186 (sit-for 3)))
187 (funcall restore) 187 (quit
188 (ding) 188 (funcall restore)
189 (message "Zoning...sorry"))) 189 (ding)
190 (when restore (funcall restore))))) 190 (message "Zoning...sorry")))
191 (when restore (funcall restore))))))
191 192
192;;;; Zone when idle, or not. 193;;;; Zone when idle, or not.
193 194
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 92c402dbad4..63c6aad3aa1 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -395,11 +395,6 @@ that requires a literal mode spec at compile time."
395 (make-local-variable 'comment-end) 395 (make-local-variable 'comment-end)
396 (make-local-variable 'comment-start-skip) 396 (make-local-variable 'comment-start-skip)
397 (make-local-variable 'comment-multi-line) 397 (make-local-variable 'comment-multi-line)
398 (make-local-variable 'paragraph-start)
399 (make-local-variable 'paragraph-separate)
400 (make-local-variable 'paragraph-ignore-fill-prefix)
401 (make-local-variable 'adaptive-fill-mode)
402 (make-local-variable 'adaptive-fill-regexp)
403 398
404 ;; now set their values 399 ;; now set their values
405 (setq parse-sexp-ignore-comments t 400 (setq parse-sexp-ignore-comments t
@@ -1180,5 +1175,5 @@ Key bindings:
1180 1175
1181(cc-provide 'cc-mode) 1176(cc-provide 'cc-mode)
1182 1177
1183;;; arch-tag: 7825e5c4-fd09-439f-a04d-4c13208ba3d7 1178;; arch-tag: 7825e5c4-fd09-439f-a04d-4c13208ba3d7
1184;;; cc-mode.el ends here 1179;;; cc-mode.el ends here
diff --git a/lisp/progmodes/cc-styles.el b/lisp/progmodes/cc-styles.el
index f0a7a2c4b7c..f20eb8e57de 100644
--- a/lisp/progmodes/cc-styles.el
+++ b/lisp/progmodes/cc-styles.el
@@ -498,33 +498,34 @@ variables."
498 (let ((comment-line-prefix 498 (let ((comment-line-prefix
499 (concat "[ \t]*\\(" c-current-comment-prefix "\\)[ \t]*"))) 499 (concat "[ \t]*\\(" c-current-comment-prefix "\\)[ \t]*")))
500 500
501 (setq paragraph-start (concat comment-line-prefix 501 (set (make-local-variable 'paragraph-start)
502 c-paragraph-start 502 (concat comment-line-prefix
503 "\\|" 503 c-paragraph-start
504 page-delimiter) 504 "\\|"
505 paragraph-separate (concat comment-line-prefix 505 page-delimiter))
506 c-paragraph-separate 506 (set (make-local-variable 'paragraph-separate)
507 "\\|" 507 (concat comment-line-prefix
508 page-delimiter) 508 c-paragraph-separate
509 paragraph-ignore-fill-prefix t 509 "\\|"
510 adaptive-fill-mode t 510 page-delimiter))
511 adaptive-fill-regexp 511 (set (make-local-variable 'paragraph-ignore-fill-prefix) t)
512 (concat comment-line-prefix 512 (set (make-local-variable 'adaptive-fill-mode) t)
513 (if (default-value 'adaptive-fill-regexp) 513 (set (make-local-variable 'adaptive-fill-regexp)
514 (concat "\\(" 514 (concat comment-line-prefix
515 (default-value 'adaptive-fill-regexp) 515 (if (default-value 'adaptive-fill-regexp)
516 "\\)") 516 (concat "\\("
517 ""))) 517 (default-value 'adaptive-fill-regexp)
518 "\\)")
519 "")))
518 520
519 (when (boundp 'adaptive-fill-first-line-regexp) 521 (when (boundp 'adaptive-fill-first-line-regexp)
520 ;; XEmacs (20.x) adaptive fill mode doesn't have this. 522 ;; XEmacs (20.x) adaptive fill mode doesn't have this.
521 (make-local-variable 'adaptive-fill-first-line-regexp) 523 (set (make-local-variable 'adaptive-fill-first-line-regexp)
522 (setq adaptive-fill-first-line-regexp 524 (concat "\\`" comment-line-prefix
523 (concat "\\`" comment-line-prefix 525 ;; Maybe we should incorporate the old value here,
524 ;; Maybe we should incorporate the old value here, 526 ;; but then we have to do all sorts of kludges to
525 ;; but then we have to do all sorts of kludges to 527 ;; deal with the \` and \' it probably contains.
526 ;; deal with the \` and \' it probably contains. 528 "\\'")))))
527 "\\'")))))
528 529
529 530
530;; Helper for setting up Filladapt mode. It's not used by CC Mode itself. 531;; Helper for setting up Filladapt mode. It's not used by CC Mode itself.
@@ -626,5 +627,5 @@ any reason to call this function directly."
626 627
627(cc-provide 'cc-styles) 628(cc-provide 'cc-styles)
628 629
629;;; arch-tag: c764f61a-96ba-484a-a68f-101c0e9d5d2c 630;; arch-tag: c764f61a-96ba-484a-a68f-101c0e9d5d2c
630;;; cc-styles.el ends here 631;;; cc-styles.el ends here
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 1655aa33dcb..269fbeaf137 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -899,19 +899,20 @@ visible rather than the beginning."
899 :group 'compilation) 899 :group 'compilation)
900 900
901 901
902(defun compilation-buffer-name (mode-name name-function) 902(defun compilation-buffer-name (mode-name mode-command name-function)
903 "Return the name of a compilation buffer to use. 903 "Return the name of a compilation buffer to use.
904If NAME-FUNCTION is non-nil, call it with one argument MODE-NAME 904If NAME-FUNCTION is non-nil, call it with one argument MODE-NAME
905to determine the buffer name. 905to determine the buffer name.
906Likewise if `compilation-buffer-name-function' is non-nil. 906Likewise if `compilation-buffer-name-function' is non-nil.
907If current buffer is in Compilation mode for the same mode name 907If current buffer is the mode MODE-COMMAND,
908return the name of the current buffer, so that it gets reused. 908return the name of the current buffer, so that it gets reused.
909Otherwise, construct a buffer name from MODE-NAME." 909Otherwise, construct a buffer name from MODE-NAME."
910 (cond (name-function 910 (cond (name-function
911 (funcall name-function mode-name)) 911 (funcall name-function mode-name))
912 (compilation-buffer-name-function 912 (compilation-buffer-name-function
913 (funcall compilation-buffer-name-function mode-name)) 913 (funcall compilation-buffer-name-function mode-name))
914 ((eq major-mode (nth 1 compilation-arguments)) 914 ((and (eq mode-command major-mode)
915 (eq major-mode (nth 1 compilation-arguments)))
915 (buffer-name)) 916 (buffer-name))
916 (t 917 (t
917 (concat "*" (downcase mode-name) "*")))) 918 (concat "*" (downcase mode-name) "*"))))
@@ -960,7 +961,7 @@ Returns the compilation buffer created."
960 (with-current-buffer 961 (with-current-buffer
961 (setq outbuf 962 (setq outbuf
962 (get-buffer-create 963 (get-buffer-create
963 (compilation-buffer-name name-of-mode name-function))) 964 (compilation-buffer-name name-of-mode mode name-function)))
964 (let ((comp-proc (get-buffer-process (current-buffer)))) 965 (let ((comp-proc (get-buffer-process (current-buffer))))
965 (if comp-proc 966 (if comp-proc
966 (if (or (not (eq (process-status comp-proc) 'run)) 967 (if (or (not (eq (process-status comp-proc) 'run))
@@ -1552,7 +1553,7 @@ Use this command in a compilation log buffer. Sets the mark at point there."
1552 (dired-other-window (car (get-text-property (point) 'directory))) 1553 (dired-other-window (car (get-text-property (point) 'directory)))
1553 (push-mark) 1554 (push-mark)
1554 (setq compilation-current-error (point)) 1555 (setq compilation-current-error (point))
1555 (next-error 0))) 1556 (next-error-internal)))
1556 1557
1557;; Return a compilation buffer. 1558;; Return a compilation buffer.
1558;; If the current buffer is a compilation buffer, return it. 1559;; If the current buffer is a compilation buffer, return it.
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index 887e856ba1f..18d88c92699 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -4261,7 +4261,7 @@ end
4261 ebnf-eps-max-height prod-height)) 4261 ebnf-eps-max-height prod-height))
4262 ) 4262 )
4263 (setq ebnf-eps-prod-width prod-width) 4263 (setq ebnf-eps-prod-width prod-width)
4264 (insert-buffer eps-buffer)) 4264 (insert-buffer-substring eps-buffer))
4265 (setq prod-list (cdr prod-list)))) 4265 (setq prod-list (cdr prod-list))))
4266 4266
4267 4267
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 6c960c4c5d5..fe05119d2cd 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -103,6 +103,7 @@ and #define directives otherwise.")
103(defvar gdb-error "Non-nil when GDB is reporting an error.") 103(defvar gdb-error "Non-nil when GDB is reporting an error.")
104(defvar gdb-macro-info nil 104(defvar gdb-macro-info nil
105 "Non-nil if GDB knows that the inferior includes preprocessor macro info.") 105 "Non-nil if GDB knows that the inferior includes preprocessor macro info.")
106(defvar gdb-buffer-fringe-width nil)
106 107
107(defvar gdb-buffer-type nil 108(defvar gdb-buffer-type nil
108 "One of the symbols bound in `gdb-buffer-rules'.") 109 "One of the symbols bound in `gdb-buffer-rules'.")
@@ -377,7 +378,8 @@ Also display the main routine in the disassembly buffer if present."
377 gdb-location-alist nil 378 gdb-location-alist nil
378 gdb-find-file-unhook nil 379 gdb-find-file-unhook nil
379 gdb-error nil 380 gdb-error nil
380 gdb-macro-info nil) 381 gdb-macro-info nil
382 gdb-buffer-fringe-width (car (window-fringes)))
381 ;; 383 ;;
382 (setq gdb-buffer-type 'gdba) 384 (setq gdb-buffer-type 'gdba)
383 ;; 385 ;;
@@ -1337,8 +1339,11 @@ static char *magick[] = {
1337 (setq bptno (match-string 1)) 1339 (setq bptno (match-string 1))
1338 (setq flag (char-after (match-beginning 2))) 1340 (setq flag (char-after (match-beginning 2)))
1339 (beginning-of-line) 1341 (beginning-of-line)
1340 (if (re-search-forward " in .* at\\s-+" nil t) 1342 (if (re-search-forward " in \\(.*\\) at\\s-+" nil t)
1341 (progn 1343 (progn
1344 (let ((buffer-read-only nil))
1345 (add-text-properties (match-beginning 1) (match-end 1)
1346 '(face font-lock-function-name-face)))
1342 (looking-at "\\(\\S-+\\):\\([0-9]+\\)") 1347 (looking-at "\\(\\S-+\\):\\([0-9]+\\)")
1343 (let ((line (match-string 2)) (buffer-read-only nil) 1348 (let ((line (match-string 2)) (buffer-read-only nil)
1344 (file (match-string 1))) 1349 (file (match-string 1)))
@@ -1531,17 +1536,34 @@ static char *magick[] = {
1531(defun gdb-info-frames-custom () 1536(defun gdb-info-frames-custom ()
1532 (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer) 1537 (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer)
1533 (save-excursion 1538 (save-excursion
1534 (let ((buffer-read-only nil)) 1539 (let ((buffer-read-only nil)
1540 bl el)
1535 (goto-char (point-min)) 1541 (goto-char (point-min))
1536 (while (< (point) (point-max)) 1542 (while (< (point) (point-max))
1537 (add-text-properties (line-beginning-position) (line-end-position) 1543 (setq bl (line-beginning-position)
1544 el (line-end-position))
1545 (add-text-properties bl el
1538 '(mouse-face highlight 1546 '(mouse-face highlight
1539 help-echo "mouse-2, RET: Select frame")) 1547 help-echo "mouse-2, RET: Select frame"))
1540 (beginning-of-line) 1548 (goto-char bl)
1541 (when (and (looking-at "^#\\([0-9]+\\)") 1549 (when (looking-at "^#\\([0-9]+\\)")
1542 (equal (match-string 1) gdb-frame-number)) 1550 (when (string-equal (match-string 1) gdb-frame-number)
1543 (put-text-property (line-beginning-position) (line-end-position) 1551 (put-text-property bl (+ bl 4)
1544 'face '(:inverse-video t))) 1552 'face '(:inverse-video t)))
1553 (when (re-search-forward
1554 (concat
1555 (if (string-equal (match-string 1) "0") "" " in ")
1556 "\\([^ ]+\\) (") el t)
1557 (put-text-property (match-beginning 1) (match-end 1)
1558 'face font-lock-function-name-face)
1559 (setq bl (match-end 0))
1560 (while (re-search-forward "<\\([^>]+\\)>" el t)
1561 (put-text-property (match-beginning 1) (match-end 1)
1562 'face font-lock-function-name-face))
1563 (goto-char bl)
1564 (while (re-search-forward "\\(\\(\\sw\\|[_.]\\)+\\)=" el t)
1565 (put-text-property (match-beginning 1) (match-end 1)
1566 'face font-lock-variable-name-face))))
1545 (forward-line 1)))))) 1567 (forward-line 1))))))
1546 1568
1547(defun gdb-stack-buffer-name () 1569(defun gdb-stack-buffer-name ()
@@ -1587,6 +1609,7 @@ static char *magick[] = {
1587 1609
1588(defun gdb-get-frame-number () 1610(defun gdb-get-frame-number ()
1589 (save-excursion 1611 (save-excursion
1612 (end-of-line)
1590 (let* ((pos (re-search-backward "^#*\\([0-9]*\\)" nil t)) 1613 (let* ((pos (re-search-backward "^#*\\([0-9]*\\)" nil t))
1591 (n (or (and pos (match-string-no-properties 1)) "0"))) 1614 (n (or (and pos (match-string-no-properties 1)) "0")))
1592 n))) 1615 n)))
@@ -1648,6 +1671,14 @@ static char *magick[] = {
1648 (define-key map [mouse-2] 'gdb-threads-select) 1671 (define-key map [mouse-2] 'gdb-threads-select)
1649 map)) 1672 map))
1650 1673
1674(defvar gdb-threads-font-lock-keywords
1675 '(
1676 (") +\\([^ ]+\\) (" (1 font-lock-function-name-face))
1677 ("in \\([^ ]+\\) (" (1 font-lock-function-name-face))
1678 ("\\(\\(\\sw\\|[_.]\\)+\\)=" (1 font-lock-variable-name-face))
1679 )
1680 "Font lock keywords used in `gdb-threads-mode'.")
1681
1651(defun gdb-threads-mode () 1682(defun gdb-threads-mode ()
1652 "Major mode for gdb frames. 1683 "Major mode for gdb frames.
1653 1684
@@ -1657,6 +1688,8 @@ static char *magick[] = {
1657 (setq mode-name "Threads") 1688 (setq mode-name "Threads")
1658 (setq buffer-read-only t) 1689 (setq buffer-read-only t)
1659 (use-local-map gdb-threads-mode-map) 1690 (use-local-map gdb-threads-mode-map)
1691 (set (make-local-variable 'font-lock-defaults)
1692 '(gdb-threads-font-lock-keywords))
1660 (run-mode-hooks 'gdb-threads-mode-hook) 1693 (run-mode-hooks 'gdb-threads-mode-hook)
1661 'gdb-invalidate-threads) 1694 'gdb-invalidate-threads)
1662 1695
@@ -1702,6 +1735,12 @@ static char *magick[] = {
1702 (define-key map "q" 'kill-this-buffer) 1735 (define-key map "q" 'kill-this-buffer)
1703 map)) 1736 map))
1704 1737
1738(defvar gdb-registers-font-lock-keywords
1739 '(
1740 ("^[^ ]+" . font-lock-variable-name-face)
1741 )
1742 "Font lock keywords used in `gdb-registers-mode'.")
1743
1705(defun gdb-registers-mode () 1744(defun gdb-registers-mode ()
1706 "Major mode for gdb registers. 1745 "Major mode for gdb registers.
1707 1746
@@ -1711,6 +1750,8 @@ static char *magick[] = {
1711 (setq mode-name "Registers:") 1750 (setq mode-name "Registers:")
1712 (setq buffer-read-only t) 1751 (setq buffer-read-only t)
1713 (use-local-map gdb-registers-mode-map) 1752 (use-local-map gdb-registers-mode-map)
1753 (set (make-local-variable 'font-lock-defaults)
1754 '(gdb-registers-font-lock-keywords))
1714 (run-mode-hooks 'gdb-registers-mode-hook) 1755 (run-mode-hooks 'gdb-registers-mode-hook)
1715 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) 1756 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
1716 'gdb-invalidate-registers 1757 'gdb-invalidate-registers
@@ -1955,6 +1996,12 @@ corresponding to the mode line clicked."
1955 (define-key map (vector 'header-line 'down-mouse-1) 'ignore) 1996 (define-key map (vector 'header-line 'down-mouse-1) 'ignore)
1956 map)) 1997 map))
1957 1998
1999(defvar gdb-memory-font-lock-keywords
2000 '(;; <__function.name+n>
2001 ("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" (1 font-lock-function-name-face))
2002 )
2003 "Font lock keywords used in `gdb-memory-mode'.")
2004
1958(defun gdb-memory-mode () 2005(defun gdb-memory-mode ()
1959 "Major mode for examining memory. 2006 "Major mode for examining memory.
1960 2007
@@ -2026,6 +2073,8 @@ corresponding to the mode line clicked."
2026 'help-echo "mouse-3: Select unit size" 2073 'help-echo "mouse-3: Select unit size"
2027 'mouse-face 'mode-line-highlight 2074 'mouse-face 'mode-line-highlight
2028 'local-map gdb-memory-unit-keymap)))) 2075 'local-map gdb-memory-unit-keymap))))
2076 (set (make-local-variable 'font-lock-defaults)
2077 '(gdb-memory-font-lock-keywords))
2029 (run-mode-hooks 'gdb-memory-mode-hook) 2078 (run-mode-hooks 'gdb-memory-mode-hook)
2030 'gdb-invalidate-memory) 2079 'gdb-invalidate-memory)
2031 2080
@@ -2094,6 +2143,23 @@ corresponding to the mode line clicked."
2094 (define-key map "q" 'kill-this-buffer) 2143 (define-key map "q" 'kill-this-buffer)
2095 map)) 2144 map))
2096 2145
2146(defvar gdb-local-font-lock-keywords
2147 '(
2148 ;; var = (struct struct_tag) value
2149 ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(struct\\) \\(\\(\\sw\\|[_.]\\)+\\)"
2150 (1 font-lock-variable-name-face)
2151 (3 font-lock-keyword-face)
2152 (4 font-lock-type-face))
2153 ;; var = (type) value
2154 ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(\\(\\sw\\|[_.]\\)+\\)"
2155 (1 font-lock-variable-name-face)
2156 (3 font-lock-type-face))
2157 ;; var = val
2158 ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +[^(]"
2159 (1 font-lock-variable-name-face))
2160 )
2161 "Font lock keywords used in `gdb-local-mode'.")
2162
2097(defun gdb-locals-mode () 2163(defun gdb-locals-mode ()
2098 "Major mode for gdb locals. 2164 "Major mode for gdb locals.
2099 2165
@@ -2103,6 +2169,8 @@ corresponding to the mode line clicked."
2103 (setq mode-name (concat "Locals:" gdb-selected-frame)) 2169 (setq mode-name (concat "Locals:" gdb-selected-frame))
2104 (setq buffer-read-only t) 2170 (setq buffer-read-only t)
2105 (use-local-map gdb-locals-mode-map) 2171 (use-local-map gdb-locals-mode-map)
2172 (set (make-local-variable 'font-lock-defaults)
2173 '(gdb-local-font-lock-keywords))
2106 (run-mode-hooks 'gdb-locals-mode-hook) 2174 (run-mode-hooks 'gdb-locals-mode-hook)
2107 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)) 2175 (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
2108 'gdb-invalidate-locals 2176 'gdb-invalidate-locals
@@ -2408,7 +2476,8 @@ BUFFER nil or omitted means use the current buffer."
2408(defun gdb-put-breakpoint-icon (enabled bptno) 2476(defun gdb-put-breakpoint-icon (enabled bptno)
2409 (let ((start (- (line-beginning-position) 1)) 2477 (let ((start (- (line-beginning-position) 1))
2410 (end (+ (line-end-position) 1)) 2478 (end (+ (line-end-position) 1))
2411 (putstring (if enabled "B" "b"))) 2479 (putstring (if enabled "B" "b"))
2480 (source-window (get-buffer-window (current-buffer) 0)))
2412 (add-text-properties 2481 (add-text-properties
2413 0 1 '(help-echo "mouse-1: set/clear bkpt, mouse-3: enable/disable bkpt") 2482 0 1 '(help-echo "mouse-1: set/clear bkpt, mouse-3: enable/disable bkpt")
2414 putstring) 2483 putstring)
@@ -2418,7 +2487,9 @@ BUFFER nil or omitted means use the current buffer."
2418 0 1 `(gdb-bptno ,bptno gdb-enabled nil) putstring)) 2487 0 1 `(gdb-bptno ,bptno gdb-enabled nil) putstring))
2419 (gdb-remove-breakpoint-icons start end) 2488 (gdb-remove-breakpoint-icons start end)
2420 (if (display-images-p) 2489 (if (display-images-p)
2421 (if (>= (car (window-fringes)) 8) 2490 (if (>= (or left-fringe-width
2491 (if source-window (car (window-fringes source-window)))
2492 gdb-buffer-fringe-width) 8)
2422 (gdb-put-string 2493 (gdb-put-string
2423 nil (1+ start) 2494 nil (1+ start)
2424 `(left-fringe breakpoint 2495 `(left-fringe breakpoint
@@ -2428,9 +2499,9 @@ BUFFER nil or omitted means use the current buffer."
2428 (when (< left-margin-width 2) 2499 (when (< left-margin-width 2)
2429 (save-current-buffer 2500 (save-current-buffer
2430 (setq left-margin-width 2) 2501 (setq left-margin-width 2)
2431 (if (get-buffer-window (current-buffer) 0) 2502 (if source-window
2432 (set-window-margins 2503 (set-window-margins
2433 (get-buffer-window (current-buffer) 0) 2504 source-window
2434 left-margin-width right-margin-width)))) 2505 left-margin-width right-margin-width))))
2435 (put-image 2506 (put-image
2436 (if enabled 2507 (if enabled
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 47d74f00aec..12c7e1c0ba0 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -137,11 +137,15 @@ Used to grey out relevant togolbar icons.")
137 :enable (and (not gud-running) 137 :enable (and (not gud-running)
138 (memq gud-minor-mode '(gdbmi gdba gdb perldb)))) 138 (memq gud-minor-mode '(gdbmi gdba gdb perldb))))
139 ([remove] menu-item "Remove Breakpoint" gud-remove 139 ([remove] menu-item "Remove Breakpoint" gud-remove
140 :enable (not gud-running)) 140 :enable (not gud-running)
141 :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
142 (window-fringes))))
141 ([tbreak] menu-item "Temporary Breakpoint" gud-tbreak 143 ([tbreak] menu-item "Temporary Breakpoint" gud-tbreak
142 :enable (memq gud-minor-mode '(gdbmi gdba gdb sdb xdb bashdb))) 144 :enable (memq gud-minor-mode '(gdbmi gdba gdb sdb xdb bashdb)))
143 ([break] menu-item "Set Breakpoint" gud-break 145 ([break] menu-item "Set Breakpoint" gud-break
144 :enable (not gud-running)) 146 :enable (not gud-running)
147 :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
148 (window-fringes))))
145 ([up] menu-item "Up Stack" gud-up 149 ([up] menu-item "Up Stack" gud-up
146 :enable (and (not gud-running) 150 :enable (and (not gud-running)
147 (memq gud-minor-mode 151 (memq gud-minor-mode
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index aa50a013585..15ab8edaadc 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -90,20 +90,26 @@
90 (modify-syntax-entry ?\] ")[ " st) 90 (modify-syntax-entry ?\] ")[ " st)
91 (modify-syntax-entry ?{ "(} " st) 91 (modify-syntax-entry ?{ "(} " st)
92 (modify-syntax-entry ?} "){ " st) 92 (modify-syntax-entry ?} "){ " st)
93 (modify-syntax-entry ?\| "\" 23b" st) 93 (modify-syntax-entry ?\| "\" 23bn" st)
94 ;; Guile allows #! ... !# comments.
95 ;; But SRFI-22 defines the comment as #!...\n instead.
96 ;; Also Guile says that the !# should be on a line of its own.
97 ;; It's too difficult to get it right, for too little benefit.
98 ;; (modify-syntax-entry ?! "_ 2" st)
94 99
95 ;; Other atom delimiters 100 ;; Other atom delimiters
96 (modify-syntax-entry ?\( "() " st) 101 (modify-syntax-entry ?\( "() " st)
97 (modify-syntax-entry ?\) ")( " st) 102 (modify-syntax-entry ?\) ")( " st)
98 (modify-syntax-entry ?\; "< " st) 103 ;; It's used for single-line comments as well as for #;(...) sexp-comments.
99 (modify-syntax-entry ?\" "\" " st) 104 (modify-syntax-entry ?\; "< 2 " st)
105 (modify-syntax-entry ?\" "\" " st)
100 (modify-syntax-entry ?' "' " st) 106 (modify-syntax-entry ?' "' " st)
101 (modify-syntax-entry ?` "' " st) 107 (modify-syntax-entry ?` "' " st)
102 108
103 ;; Special characters 109 ;; Special characters
104 (modify-syntax-entry ?, "' " st) 110 (modify-syntax-entry ?, "' " st)
105 (modify-syntax-entry ?@ "' " st) 111 (modify-syntax-entry ?@ "' " st)
106 (modify-syntax-entry ?# "' 14bn" st) 112 (modify-syntax-entry ?# "' 14b" st)
107 (modify-syntax-entry ?\\ "\\ " st) 113 (modify-syntax-entry ?\\ "\\ " st)
108 st)) 114 st))
109 115
@@ -163,13 +169,18 @@
163 (setq imenu-generic-expression scheme-imenu-generic-expression) 169 (setq imenu-generic-expression scheme-imenu-generic-expression)
164 (set (make-local-variable 'imenu-syntax-alist) 170 (set (make-local-variable 'imenu-syntax-alist)
165 '(("+-*/.<>=?!$%_&~^:" . "w"))) 171 '(("+-*/.<>=?!$%_&~^:" . "w")))
166 (make-local-variable 'font-lock-defaults) 172 (set (make-local-variable 'font-lock-defaults)
167 (setq font-lock-defaults 173 '((scheme-font-lock-keywords
168 '((scheme-font-lock-keywords 174 scheme-font-lock-keywords-1 scheme-font-lock-keywords-2)
169 scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) 175 nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14"))
170 nil t (("+-*/.<>=!?$%_&~^:#" . "w")) beginning-of-defun 176 beginning-of-defun
171 (font-lock-mark-block-function . mark-defun) 177 (font-lock-mark-block-function . mark-defun)
172 (font-lock-syntactic-face-function . lisp-font-lock-syntactic-face-function)))) 178 (font-lock-syntactic-face-function
179 . scheme-font-lock-syntactic-face-function)
180 (parse-sexp-lookup-properties . t)
181 (font-lock-extra-managed-props syntax-table)))
182 (set (make-local-variable 'lisp-doc-string-elt-property)
183 'scheme-doc-string-elt))
173 184
174(defvar scheme-mode-line-process "") 185(defvar scheme-mode-line-process "")
175 186
@@ -345,6 +356,44 @@ See `run-hooks'."
345(defvar scheme-font-lock-keywords scheme-font-lock-keywords-1 356(defvar scheme-font-lock-keywords scheme-font-lock-keywords-1
346 "Default expressions to highlight in Scheme modes.") 357 "Default expressions to highlight in Scheme modes.")
347 358
359(defconst scheme-sexp-comment-syntax-table
360 (let ((st (make-syntax-table scheme-mode-syntax-table)))
361 (modify-syntax-entry ?\; "." st)
362 (modify-syntax-entry ?\n " " st)
363 (modify-syntax-entry ?# "'" st)
364 st))
365
366(put 'lambda 'scheme-doc-string-elt 2)
367;; Docstring's pos in a `define' depends on whether it's a var or fun def.
368(put 'define 'scheme-doc-string-elt
369 (lambda ()
370 ;; The function is called with point right after "define".
371 (forward-comment (point-max))
372 (if (eq (char-after) ?\() 2 0)))
373
374(defun scheme-font-lock-syntactic-face-function (state)
375 (when (and (null (nth 3 state))
376 (eq (char-after (nth 8 state)) ?#)
377 (eq (char-after (1+ (nth 8 state))) ?\;))
378 ;; It's a sexp-comment. Tell parse-partial-sexp where it ends.
379 (save-excursion
380 (let ((pos (point))
381 (end
382 (condition-case err
383 (let ((parse-sexp-lookup-properties nil))
384 (goto-char (+ 2 (nth 8 state)))
385 ;; FIXME: this doesn't handle the case where the sexp
386 ;; itself contains a #; comment.
387 (forward-sexp 1)
388 (point))
389 (scan-error (nth 2 err)))))
390 (when (< pos (- end 2))
391 (put-text-property pos (- end 2)
392 'syntax-table scheme-sexp-comment-syntax-table))
393 (put-text-property (- end 1) end 'syntax-table '(12)))))
394 ;; Choose the face to use.
395 (lisp-font-lock-syntactic-face-function state))
396
348;;;###autoload 397;;;###autoload
349(define-derived-mode dsssl-mode scheme-mode "DSSSL" 398(define-derived-mode dsssl-mode scheme-mode "DSSSL"
350 "Major mode for editing DSSSL code. 399 "Major mode for editing DSSSL code.
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 1986148e8d5..ed64de4c89c 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -142,6 +142,8 @@
142(defvar lazy-lock-defer-contextually) 142(defvar lazy-lock-defer-contextually)
143(defvar lazy-lock-defer-on-scrolling) 143(defvar lazy-lock-defer-on-scrolling)
144(defvar lazy-lock-defer-on-the-fly) 144(defvar lazy-lock-defer-on-the-fly)
145(defvar speedbar-attached-frame)
146
145 147
146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
147;;; Variables 149;;; Variables
@@ -13988,11 +13990,11 @@ if required."
13988 (speedbar-add-mode-functions-list 13990 (speedbar-add-mode-functions-list
13989 '("vhdl directory" 13991 '("vhdl directory"
13990 (speedbar-item-info . vhdl-speedbar-item-info) 13992 (speedbar-item-info . vhdl-speedbar-item-info)
13991 (speedbar-line-path . speedbar-files-line-path))) 13993 (speedbar-line-directory . speedbar-files-line-path)))
13992 (speedbar-add-mode-functions-list 13994 (speedbar-add-mode-functions-list
13993 '("vhdl project" 13995 '("vhdl project"
13994 (speedbar-item-info . vhdl-speedbar-item-info) 13996 (speedbar-item-info . vhdl-speedbar-item-info)
13995 (speedbar-line-path . vhdl-speedbar-line-project))) 13997 (speedbar-line-directory . vhdl-speedbar-line-project)))
13996 ;; keymap 13998 ;; keymap
13997 (unless vhdl-speedbar-key-map 13999 (unless vhdl-speedbar-key-map
13998 (setq vhdl-speedbar-key-map (speedbar-make-specialized-keymap)) 14000 (setq vhdl-speedbar-key-map (speedbar-make-specialized-keymap))
@@ -14257,9 +14259,9 @@ otherwise use cached data."
14257 ((save-excursion (beginning-of-line) (looking-at "[^0-9]")) 14259 ((save-excursion (beginning-of-line) (looking-at "[^0-9]"))
14258 (re-search-forward "[0-9]+:" nil t) 14260 (re-search-forward "[0-9]+:" nil t)
14259 (vhdl-scan-directory-contents 14261 (vhdl-scan-directory-contents
14260 (abbreviate-file-name (speedbar-line-path)))) 14262 (abbreviate-file-name (speedbar-line-directory))))
14261 ;; current directory 14263 ;; current directory
14262 (t (setq path (speedbar-line-path)) 14264 (t (setq path (speedbar-line-directory))
14263 (string-match "^\\(.+[/\\]\\)" path) 14265 (string-match "^\\(.+[/\\]\\)" path)
14264 (vhdl-scan-directory-contents 14266 (vhdl-scan-directory-contents
14265 (abbreviate-file-name (match-string 1 path))))) 14267 (abbreviate-file-name (match-string 1 path)))))
@@ -14977,7 +14979,7 @@ NO-POSITION non-nil means do not re-position cursor."
14977 (cond ((string-match "+" text) ; we have to expand this dir 14979 (cond ((string-match "+" text) ; we have to expand this dir
14978 (setq speedbar-shown-directories 14980 (setq speedbar-shown-directories
14979 (cons (expand-file-name 14981 (cons (expand-file-name
14980 (concat (speedbar-line-path indent) token "/")) 14982 (concat (speedbar-line-directory indent) token "/"))
14981 speedbar-shown-directories)) 14983 speedbar-shown-directories))
14982 (speedbar-change-expand-button-char ?-) 14984 (speedbar-change-expand-button-char ?-)
14983 (speedbar-reset-scanners) 14985 (speedbar-reset-scanners)
@@ -14986,12 +14988,12 @@ NO-POSITION non-nil means do not re-position cursor."
14986 (end-of-line) (forward-char 1) 14988 (end-of-line) (forward-char 1)
14987 (vhdl-speedbar-insert-dirs 14989 (vhdl-speedbar-insert-dirs
14988 (speedbar-file-lists 14990 (speedbar-file-lists
14989 (concat (speedbar-line-path indent) token "/")) 14991 (concat (speedbar-line-directory indent) token "/"))
14990 (1+ indent)) 14992 (1+ indent))
14991 (speedbar-reset-scanners) 14993 (speedbar-reset-scanners)
14992 (vhdl-speedbar-insert-dir-hierarchy 14994 (vhdl-speedbar-insert-dir-hierarchy
14993 (abbreviate-file-name 14995 (abbreviate-file-name
14994 (concat (speedbar-line-path indent) token "/")) 14996 (concat (speedbar-line-directory indent) token "/"))
14995 (1+ indent) speedbar-power-click))) 14997 (1+ indent) speedbar-power-click)))
14996 (vhdl-speedbar-update-current-unit t t)) 14998 (vhdl-speedbar-update-current-unit t t))
14997 ((string-match "-" text) ; we have to contract this node 14999 ((string-match "-" text) ; we have to contract this node
@@ -14999,7 +15001,7 @@ NO-POSITION non-nil means do not re-position cursor."
14999 (let ((oldl speedbar-shown-directories) 15001 (let ((oldl speedbar-shown-directories)
15000 (newl nil) 15002 (newl nil)
15001 (td (expand-file-name 15003 (td (expand-file-name
15002 (concat (speedbar-line-path indent) token)))) 15004 (concat (speedbar-line-directory indent) token))))
15003 (while oldl 15005 (while oldl
15004 (if (not (string-match (concat "^" (regexp-quote td)) (car oldl))) 15006 (if (not (string-match (concat "^" (regexp-quote td)) (car oldl)))
15005 (setq newl (cons (car oldl) newl))) 15007 (setq newl (cons (car oldl) newl)))
@@ -15085,7 +15087,7 @@ NO-POSITION non-nil means do not re-position cursor."
15085 (if vhdl-speedbar-show-projects 15087 (if vhdl-speedbar-show-projects
15086 (vhdl-speedbar-line-project) 15088 (vhdl-speedbar-line-project)
15087 (abbreviate-file-name 15089 (abbreviate-file-name
15088 (file-name-as-directory (speedbar-line-path indent))))) 15090 (file-name-as-directory (speedbar-line-directory indent)))))
15089 15091
15090(defun vhdl-speedbar-line-project (&optional indent) 15092(defun vhdl-speedbar-line-project (&optional indent)
15091 "Get currently displayed project name." 15093 "Get currently displayed project name."
@@ -15236,7 +15238,7 @@ is already shown in a buffer."
15236 (unit-name (vhdl-speedbar-line-text)) 15238 (unit-name (vhdl-speedbar-line-text))
15237 (vhdl-project (vhdl-speedbar-line-project)) 15239 (vhdl-project (vhdl-speedbar-line-project))
15238 (directory (file-name-as-directory 15240 (directory (file-name-as-directory
15239 (or (speedbar-line-file) (speedbar-line-path))))) 15241 (or (speedbar-line-file) (speedbar-line-directory)))))
15240 (if (fboundp 'speedbar-select-attached-frame) 15242 (if (fboundp 'speedbar-select-attached-frame)
15241 (speedbar-select-attached-frame) 15243 (speedbar-select-attached-frame)
15242 (select-frame speedbar-attached-frame)) 15244 (select-frame speedbar-attached-frame))
@@ -15248,7 +15250,7 @@ is already shown in a buffer."
15248 (interactive) 15250 (interactive)
15249 (let ((vhdl-project (vhdl-speedbar-line-project)) 15251 (let ((vhdl-project (vhdl-speedbar-line-project))
15250 (default-directory (file-name-as-directory 15252 (default-directory (file-name-as-directory
15251 (or (speedbar-line-file) (speedbar-line-path))))) 15253 (or (speedbar-line-file) (speedbar-line-directory)))))
15252 (vhdl-generate-makefile))) 15254 (vhdl-generate-makefile)))
15253 15255
15254(defun vhdl-speedbar-check-unit (design-unit) 15256(defun vhdl-speedbar-check-unit (design-unit)
diff --git a/lisp/sb-dir-minus.xpm b/lisp/sb-dir-minus.xpm
deleted file mode 100644
index 0bb8a9cd897..00000000000
--- a/lisp/sb-dir-minus.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_dir_minus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ...... ",
10" .++++++. ",
11".+@@@@@@+......... ",
12".+@@@@@@@+++++++++. ",
13".+@@@@@@@@@@@@@@@@+#",
14".+@@@@@@@@@@@@@@@@+#",
15".+@@@@@@@@@@@@@@@@+#",
16".+@@@@@+++++@@@@@@+#",
17".+@@@@@@.....@@@@@+#",
18".+@@@@@@@@@@@@@@@@+#",
19".+@@@@@@@@@@@@@@@@+#",
20".+@@@@@@@@@@@@@@@@+#",
21".+@@@@@@@@@@@@@@@@+#",
22" #++++++++++++++++# ",
23" ################ "};
diff --git a/lisp/sb-dir-plus.xpm b/lisp/sb-dir-plus.xpm
deleted file mode 100644
index 009719bce6d..00000000000
--- a/lisp/sb-dir-plus.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_dir_plus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ...... ",
10" .++++++. ",
11".+@@@@@@+......... ",
12".+@@@@@@@+++++++++. ",
13".+@@@@@@@@@@@@@@@@+#",
14".+@@@@@@@+@@@@@@@@+#",
15".+@@@@@@@+.@@@@@@@+#",
16".+@@@@@+++++@@@@@@+#",
17".+@@@@@@.+...@@@@@+#",
18".+@@@@@@@+.@@@@@@@+#",
19".+@@@@@@@@.@@@@@@@+#",
20".+@@@@@@@@@@@@@@@@+#",
21".+@@@@@@@@@@@@@@@@+#",
22" #++++++++++++++++# ",
23" ################ "};
diff --git a/lisp/sb-dir.xpm b/lisp/sb-dir.xpm
deleted file mode 100644
index 1c3d3d72b87..00000000000
--- a/lisp/sb-dir.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_dir_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ...... ",
10" .++++++. ",
11".+@@@@@@+......... ",
12".+@@@@@@@+++++++++. ",
13".+@@@@@@@@@@@@@@@@+#",
14".+@@@@@@@@@@@@@@@@+#",
15".+@@@@@@@@@@@@@@@@+#",
16".+@@@@@@@@@@@@@@@@+#",
17".+@@@@@@@@@@@@@@@@+#",
18".+@@@@@@@@@@@@@@@@+#",
19".+@@@@@@@@@@@@@@@@+#",
20".+@@@@@@@@@@@@@@@@+#",
21".+@@@@@@@@@@@@@@@@+#",
22" #++++++++++++++++# ",
23" ################ "};
diff --git a/lisp/sb-image.el b/lisp/sb-image.el
new file mode 100644
index 00000000000..e1ed8d06a86
--- /dev/null
+++ b/lisp/sb-image.el
@@ -0,0 +1,111 @@
1;;; sb-image --- Image management for speedbar
2
3;;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation
4
5;; Author: Eric M. Ludlam <zappo@gnu.org>
6;; Keywords: file, tags, tools
7
8;; This file is part of GNU Emacs.
9
10;; GNU Emacs is free software; you can redistribute it and/or modify
11;; it under the terms of the GNU General Public License as published by
12;; the Free Software Foundation; either version 2, or (at your option)
13;; any later version.
14
15;; GNU Emacs is distributed in the hope that it will be useful,
16;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;; GNU General Public License for more details.
19
20;; You should have received a copy of the GNU General Public License
21;; along with GNU Emacs; see the file COPYING. If not, write to the
22;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23;; Boston, MA 02110-1301, USA.
24
25;;; Commentary:
26;;
27;; Supporting Image display for Emacs 20 and less, Emacs 21, and XEmacs,
28;; is a challenging task, which doesn't take kindly to being byte compiled.
29;; When sharing speedbar.elc between these three applications, the Image
30;; support can get lost.
31;;
32;; By splitting out that hard part into this file, and avoiding byte
33;; compilation, one copy speedbar can support all these platforms together.
34;;
35;; This file requires the `image' package if it is available.
36
37(require 'ezimage)
38
39;;; Code:
40(defcustom speedbar-use-images ezimage-use-images
41 "*Non-nil if speedbar should display icons."
42 :group 'speedbar
43 :version "21.1"
44 :type 'boolean)
45
46(defalias 'defimage-speedbar 'defezimage)
47
48(defvar speedbar-expand-image-button-alist
49 '(("<+>" . ezimage-directory-plus)
50 ("<->" . ezimage-directory-minus)
51 ("< >" . ezimage-directory)
52 ("[+]" . ezimage-page-plus)
53 ("[-]" . ezimage-page-minus)
54 ("[?]" . ezimage-page)
55 ("[ ]" . ezimage-page)
56 ("{+}" . ezimage-box-plus)
57 ("{-}" . ezimage-box-minus)
58 ("<M>" . ezimage-mail)
59 ("<d>" . ezimage-document-tag)
60 ("<i>" . ezimage-info-tag)
61 (" =>" . ezimage-tag)
62 (" +>" . ezimage-tag-gt)
63 (" ->" . ezimage-tag-v)
64 (">" . ezimage-tag)
65 ("@" . ezimage-tag-type)
66 (" @" . ezimage-tag-type)
67 ("*" . ezimage-checkout)
68 ("#" . ezimage-object)
69 ("!" . ezimage-object-out-of-date)
70 ("//" . ezimage-label)
71 ("%" . ezimage-lock)
72 )
73 "List of text and image associations.")
74
75(defun speedbar-insert-image-button-maybe (start length)
76 "Insert an image button based on text starting at START for LENGTH chars.
77If buttontext is unknown, just insert that text.
78If we have an image associated with it, use that image."
79 (when speedbar-use-images
80 (let ((ezimage-expand-image-button-alist
81 speedbar-expand-image-button-alist))
82 (ezimage-insert-image-button-maybe start length))))
83
84(defun speedbar-image-dump ()
85 "Dump out the current state of the Speedbar image alist.
86See `speedbar-expand-image-button-alist' for details."
87 (interactive)
88 (with-output-to-temp-buffer "*Speedbar Images*"
89 (save-excursion
90 (set-buffer "*Speedbar Images*")
91 (goto-char (point-max))
92 (insert "Speedbar image cache.\n\n")
93 (let ((start (point)) (end nil))
94 (insert "Image\tText\tImage Name")
95 (setq end (point))
96 (insert "\n")
97 (put-text-property start end 'face 'underline))
98 (let ((ia speedbar-expand-image-button-alist))
99 (while ia
100 (let ((start (point)))
101 (insert (car (car ia)))
102 (insert "\t")
103 (speedbar-insert-image-button-maybe start
104 (length (car (car ia))))
105 (insert (car (car ia)) "\t" (format "%s" (cdr (car ia))) "\n"))
106 (setq ia (cdr ia)))))))
107
108(provide 'sb-image)
109
110;; arch-tag: 6b05accd-e8b8-4290-8379-f063f3dacabb
111;;; sb-image.el ends here
diff --git a/lisp/sb-mail.xpm b/lisp/sb-mail.xpm
deleted file mode 100644
index fecc0a1aa38..00000000000
--- a/lisp/sb-mail.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_mail_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #828282",
8"# c #FFFFFF",
9" .................. ",
10".++++++++++++++++++@",
11".++##############++@",
12".+#++##########++#+@",
13".+###++######++###+@",
14".+#####++##++#####+@",
15".+#######++#######+@",
16".+################+@",
17".+####+######+####+@",
18".+################+@",
19".+##+##########+##+@",
20".+################+@",
21".++##############++@",
22".++++++++++++++++++@",
23" @@@@@@@@@@@@@@@@@@ "};
diff --git a/lisp/sb-pg-minus.xpm b/lisp/sb-pg-minus.xpm
deleted file mode 100644
index e512d25120a..00000000000
--- a/lisp/sb-pg-minus.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_pg_minus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #828282",
8"# c #FFFFFF",
9" ............ ",
10" .++++++++++++@",
11" .++##########+@",
12" .+#+##########+@",
13" .+##+##########+@",
14" .+###+##########+@",
15" .+####+##########+@",
16".+++++++#+++++####+@",
17".+########.....###+@",
18".+################+@",
19".+################+@",
20".+################+@",
21".+################+@",
22".++++++++++++++++++@",
23" @@@@@@@@@@@@@@@@@@ "};
diff --git a/lisp/sb-pg-plus.xpm b/lisp/sb-pg-plus.xpm
deleted file mode 100644
index f0e74678249..00000000000
--- a/lisp/sb-pg-plus.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_pg_plus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #828282",
8"# c #FFFFFF",
9" ............ ",
10" .++++++++++++@",
11" .++##########+@",
12" .+#+##########+@",
13" .+##+##########+@",
14" .+###+###+######+@",
15" .+####+###+.#####+@",
16".+++++++#+++++####+@",
17".+########.+...###+@",
18".+#########+.#####+@",
19".+##########.#####+@",
20".+################+@",
21".+################+@",
22".++++++++++++++++++@",
23" @@@@@@@@@@@@@@@@@@ "};
diff --git a/lisp/sb-pg.xpm b/lisp/sb-pg.xpm
deleted file mode 100644
index 3a210bfa897..00000000000
--- a/lisp/sb-pg.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_pg_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #828282",
8"# c #FFFFFF",
9" ............ ",
10" .++++++++++++@",
11" .++##########+@",
12" .+#+##########+@",
13" .+##+##########+@",
14" .+###+##########+@",
15" .+####+##########+@",
16".+++++++##########+@",
17".+################+@",
18".+################+@",
19".+################+@",
20".+################+@",
21".+################+@",
22".++++++++++++++++++@",
23" @@@@@@@@@@@@@@@@@@ "};
diff --git a/lisp/sb-tag-gt.xpm b/lisp/sb-tag-gt.xpm
deleted file mode 100644
index 9db11a13e8f..00000000000
--- a/lisp/sb-tag-gt.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_tag_gt_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ",
10" ",
11" .............. ",
12" .++++++++++++++. ",
13" .+@@@@@++@@@@@@@+#",
14" .+@@@@@@+++@@@@@@+#",
15".+@@@@@@@++++@@@@@+#",
16".+@++@@@@+++++@@@@+#",
17".+@++@@@@+++++#@@@+#",
18".+@@@@@@@++++#@@@@+#",
19" #+@@@@@@+++#@@@@@+#",
20" #+@@@@@++#@@@@@@+#",
21" #++++++#+++++++# ",
22" ############## ",
23" "};
diff --git a/lisp/sb-tag-minus.xpm b/lisp/sb-tag-minus.xpm
deleted file mode 100644
index 560aaa3aa82..00000000000
--- a/lisp/sb-tag-minus.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_tag_minus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ",
10" ",
11" .............. ",
12" .++++++++++++++. ",
13" .+@@@@@@@@@@@@@@+#",
14" .+@@@@@@@@@@@@@@@+#",
15".+@@@@@@@@@@@@@@@@+#",
16".+@++@@+++++@@@@@@+#",
17".+@++@@@.....@@@@@+#",
18".+@@@@@@@@@@@@@@@@+#",
19" #+@@@@@@@@@@@@@@@+#",
20" #+@@@@@@@@@@@@@@+#",
21" #++++++++++++++# ",
22" ############## ",
23" "};
diff --git a/lisp/sb-tag-plus.xpm b/lisp/sb-tag-plus.xpm
deleted file mode 100644
index 3dcf2f87c5d..00000000000
--- a/lisp/sb-tag-plus.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_tag_plus_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ",
10" ",
11" .............. ",
12" .++++++++++++++. ",
13" .+@@@@@@@@@@@@@@+#",
14" .+@@@@@@+@@@@@@@@+#",
15".+@@@@@@@+.@@@@@@@+#",
16".+@++@@+++++@@@@@@+#",
17".+@++@@@.+...@@@@@+#",
18".+@@@@@@@+.@@@@@@@+#",
19" #+@@@@@@@.@@@@@@@+#",
20" #+@@@@@@@@@@@@@@+#",
21" #++++++++++++++# ",
22" ############## ",
23" "};
diff --git a/lisp/sb-tag-type.xpm b/lisp/sb-tag-type.xpm
deleted file mode 100644
index 3abe408a66b..00000000000
--- a/lisp/sb-tag-type.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_tag_type_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ",
10" ",
11" .............. ",
12" .++++++++++++++. ",
13" .+@@@@@@@@@@@@@@+#",
14" .+@@@@@@++++++@@@+#",
15".+@@@@@@@++++++@@@+#",
16".+@++@@@@@@++@@@@@+#",
17".+@++@@@@@@++@@@@@+#",
18".+@@@@@@@@@++@@@@@+#",
19" #+@@@@@@@@++@@@@@+#",
20" #+@@@@@@@@@@@@@@+#",
21" #++++++++++++++# ",
22" ############## ",
23" "};
diff --git a/lisp/sb-tag-v.xpm b/lisp/sb-tag-v.xpm
deleted file mode 100644
index ae447adc8e4..00000000000
--- a/lisp/sb-tag-v.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_tag_v_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ",
10" ",
11" .............. ",
12" .++++++++++++++. ",
13" .+@@@@@@@@@@@@@@+#",
14" .+@@@++++++++++#@+#",
15".+@@@@@++++++++#@@+#",
16".+@++@@@++++++#@@@+#",
17".+@++@@@@++++#@@@@+#",
18".+@@@@@@@@++#@@@@@+#",
19" #+@@@@@@@@#@@@@@@+#",
20" #+@@@@@@@@@@@@@@+#",
21" #++++++++++++++# ",
22" ############## ",
23" "};
diff --git a/lisp/sb-tag.xpm b/lisp/sb-tag.xpm
deleted file mode 100644
index 900bfd34b26..00000000000
--- a/lisp/sb-tag.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
1/* XPM */
2static char * sb_tag_xpm[] = {
3"20 15 5 1",
4" c None",
5". c #B8B8B8",
6"+ c #000000",
7"@ c #FFF993",
8"# c #828282",
9" ",
10" ",
11" .............. ",
12" .++++++++++++++. ",
13" .+@@@@@@@@@@@@@@+#",
14" .+@@@@@@@@@@@@@@@+#",
15".+@@@@@@@@@@@@@@@@+#",
16".+@++@@@@@@@@@@@@@+#",
17".+@++@@@@@@@@@@@@@+#",
18".+@@@@@@@@@@@@@@@@+#",
19" #+@@@@@@@@@@@@@@@+#",
20" #+@@@@@@@@@@@@@@+#",
21" #++++++++++++++# ",
22" ############## ",
23" "};
diff --git a/lisp/simple.el b/lisp/simple.el
index d0b9ef5ab80..0faa4d7e566 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -261,6 +261,14 @@ See variables `compilation-parse-errors-function' and
261 (funcall next-error-function (prefix-numeric-value arg) reset) 261 (funcall next-error-function (prefix-numeric-value arg) reset)
262 (run-hooks 'next-error-hook)))) 262 (run-hooks 'next-error-hook))))
263 263
264(defun next-error-internal ()
265 "Visit the source code corresponding to the `next-error' message at point."
266 (setq next-error-last-buffer (current-buffer))
267 ;; we know here that next-error-function is a valid symbol we can funcall
268 (with-current-buffer next-error-last-buffer
269 (funcall next-error-function 0 nil)
270 (run-hooks 'next-error-hook)))
271
264(defalias 'goto-next-locus 'next-error) 272(defalias 'goto-next-locus 'next-error)
265(defalias 'next-match 'next-error) 273(defalias 'next-match 'next-error)
266 274
@@ -888,22 +896,42 @@ in *Help* buffer. See also the command `describe-char'."
888 (message "point=%d of %d (%d%%) column %d %s" 896 (message "point=%d of %d (%d%%) column %d %s"
889 pos total percent col hscroll)) 897 pos total percent col hscroll))
890 (let ((coding buffer-file-coding-system) 898 (let ((coding buffer-file-coding-system)
891 encoded encoding-msg) 899 encoded encoding-msg display-prop under-display)
892 (if (or (not coding) 900 (if (or (not coding)
893 (eq (coding-system-type coding) t)) 901 (eq (coding-system-type coding) t))
894 (setq coding default-buffer-file-coding-system)) 902 (setq coding default-buffer-file-coding-system))
895 (if (eq (char-charset char) 'eight-bit) 903 (if (eq (char-charset char) 'eight-bit)
896 (setq encoding-msg 904 (setq encoding-msg
897 (format "(0%o, %d, 0x%x, raw-byte)" char char char)) 905 (format "(0%o, %d, 0x%x, raw-byte)" char char char))
898 (setq encoded (and (>= char 128) (encode-coding-char char coding))) 906 ;; Check if the character is displayed with some `display'
907 ;; text property. In that case, set under-display to the
908 ;; buffer substring covered by that property.
909 (setq display-prop (get-text-property pos 'display))
910 (if display-prop
911 (let ((to (or (next-single-property-change pos 'display)
912 (point-max))))
913 (if (< to (+ pos 4))
914 (setq under-display "")
915 (setq under-display "..."
916 to (+ pos 4)))
917 (setq under-display
918 (concat (buffer-substring-no-properties pos to)
919 under-display)))
920 (setq encoded (and (>= char 128) (encode-coding-char char coding))))
899 (setq encoding-msg 921 (setq encoding-msg
900 (if encoded 922 (if display-prop
901 (format "(0%o, %d, 0x%x, file %s)" 923 (if (not (stringp display-prop))
902 char char char 924 (format "(0%o, %d, 0x%x, part of display \"%s\")"
903 (if (> (length encoded) 1) 925 char char char under-display)
904 "..." 926 (format "(0%o, %d, 0x%x, part of display \"%s\"->\"%s\")"
905 (encoded-string-description encoded coding))) 927 char char char under-display display-prop))
906 (format "(0%o, %d, 0x%x)" char char char)))) 928 (if encoded
929 (format "(0%o, %d, 0x%x, file %s)"
930 char char char
931 (if (> (length encoded) 1)
932 "..."
933 (encoded-string-description encoded coding)))
934 (format "(0%o, %d, 0x%x)" char char char)))))
907 (if detail 935 (if detail
908 ;; We show the detailed information about CHAR. 936 ;; We show the detailed information about CHAR.
909 (describe-char (point))) 937 (describe-char (point)))
@@ -914,9 +942,11 @@ in *Help* buffer. See also the command `describe-char'."
914 (buffer-substring-no-properties (point) (1+ (point)))) 942 (buffer-substring-no-properties (point) (1+ (point))))
915 encoding-msg pos total percent beg end col hscroll) 943 encoding-msg pos total percent beg end col hscroll)
916 (message "Char: %s %s point=%d of %d (%d%%) column %d %s" 944 (message "Char: %s %s point=%d of %d (%d%%) column %d %s"
917 (if (< char 256) 945 (if enable-multibyte-characters
918 (single-key-description char) 946 (if (< char 128)
919 (buffer-substring-no-properties (point) (1+ (point)))) 947 (single-key-description char)
948 (buffer-substring-no-properties (point) (1+ (point))))
949 (single-key-description char))
920 encoding-msg pos total percent col hscroll)))))) 950 encoding-msg pos total percent col hscroll))))))
921 951
922(defvar read-expression-map 952(defvar read-expression-map
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 434025ec07c..cdb592a3944 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1,12 +1,17 @@
1;;; speedbar.el --- quick access to files and tags in a frame 1;;; speedbar --- quick access to files and tags in a frame
2 2
3;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3;;; Copyright (C) 1996, 97, 98, 99, 00, 01, 02, 03, 04, 05 Free Software Foundation
4;; 2004, 2005 Free Software Foundation, Inc.
5 4
6;; Author: Eric M. Ludlam <zappo@gnu.org> 5;; Author: Eric M. Ludlam <zappo@gnu.org>
7;; Version: 0.11a
8;; Keywords: file, tags, tools 6;; Keywords: file, tags, tools
9 7
8(defvar speedbar-version "1.0"
9 "The current version of speedbar.")
10(defvar speedbar-incompatible-version "0.14beta4"
11 "This version of speedbar is incompatible with this version.
12Due to massive API changes (removing the use of the word PATH)
13this version is not backward compatible to 0.14 or earlier.")
14
10;; This file is part of GNU Emacs. 15;; This file is part of GNU Emacs.
11 16
12;; GNU Emacs is free software; you can redistribute it and/or modify 17;; GNU Emacs is free software; you can redistribute it and/or modify
@@ -27,169 +32,38 @@
27;;; Commentary: 32;;; Commentary:
28;; 33;;
29;; The speedbar provides a frame in which files, and locations in 34;; The speedbar provides a frame in which files, and locations in
30;; files are displayed. These items can be clicked on with mouse-2 35;; files are displayed. These items can be clicked on with mouse-2 in
31;; in order to make the last active frame display that file location. 36;; to display that file location.
32;;
33;; Starting Speedbar:
34;;
35;; Simply type `M-x speedbar', and it will be autoloaded for you.
36
37;; If you want to choose it from a menu, such as "Tools", you can do this:
38;;
39;; (define-key-after (lookup-key global-map [menu-bar tools])
40;; [speedbar] '("Speedbar" . speedbar-frame-mode) [calendar])
41;;
42;; If you want to access speedbar using only the keyboard, do this:
43;;
44;; (global-set-key [f4] 'speedbar-get-focus)
45;;
46;; This will let you hit f4 (or whatever key you choose) to jump
47;; focus to the speedbar frame. Pressing it again will bring you back
48;; to the attached frame. Pressing RET or e to jump to a file
49;; or tag will move you back to the attached frame. The command
50;; `speedbar-get-focus' will also create a speedbar frame if it does
51;; not exist.
52;;
53;; Customizing Speedbar:
54;;
55;; Once a speedbar frame is active, it takes advantage of idle time
56;; to keep its contents updated. The contents is usually a list of
57;; files in the directory of the currently active buffer. When
58;; applicable, tags in the active file can be expanded.
59;;
60;; To add new supported files types into speedbar, use the function
61;; `speedbar-add-supported-extension'. If speedbar complains that the
62;; file type is not supported, that means there is no built in
63;; support from imenu, and the etags part wasn't set up correctly. You
64;; may add elements to `speedbar-supported-extension-expressions' as long
65;; as it is done before speedbar is loaded.
66;; 37;;
67;; To prevent speedbar from following you into certain directories 38;;; Customizing and Developing for speedbar
68;; use the function `speedbar-add-ignored-path-regexp' to add a new
69;; regular expression matching a type of path. You may add list
70;; elements to `speedbar-ignored-path-expressions' as long as it is
71;; done before speedbar is loaded.
72;; 39;;
73;; To add new file types to imenu, see the documentation in the 40;; Please see the speedbar manual for informaion.
74;; file imenu.el that comes with Emacs. To add new file types which
75;; etags supports, you need to modify the variable
76;; `speedbar-fetch-etags-parse-list'.
77;; 41;;
78;; If the updates are going too slow for you, modify the variable 42;;; Notes:
79;; `speedbar-update-speed' to a longer idle time before updates.
80;; 43;;
81;; If you navigate directories, you will probably notice that you 44;; Users of really old emacsen without the need timer functions
82;; will navigate to a directory which is eventually replaced after 45;; will not have speedbar updating automatically. Use "g" to refresh
83;; you go back to editing a file (unless you pull up a new file.) 46;; the display after changing directories. Remember, do not interrupt
84;; The delay time before this happens is in 47;; the stealthy updates or your display may not be completely
85;; `speedbar-navigating-speed', and defaults to 10 seconds. 48;; refreshed.
86;; 49;;
87;; To enable mouse tracking with information in the minibuffer of 50;; AUC-TEX users: The imenu tags for AUC-TEX mode don't work very
88;; the attached frame, use the variable `speedbar-track-mouse-flag'.
89;;
90;; Tag layout can be modified through `speedbar-tag-hierarchy-method',
91;; which controls how tags are layed out. It is actually a list of
92;; functions that filter the data. The default groups large tag lists
93;; into sub-lists. A long flat list can be used instead if needed.
94;; Other filters can be easily added.
95;;
96;; AUCTEX users: The imenu tags for AUCTEX mode doesn't work very
97;; well. Use the imenu keywords from tex-mode.el for better results. 51;; well. Use the imenu keywords from tex-mode.el for better results.
98;; 52;;
99;; This file requires the library package assoc (association lists) 53;; This file requires the library package assoc (association lists)
54;; assoc should be available in all modern versions of Emacs.
55;; The custom package is optional (for easy configuration of speedbar)
56;; http://www.dina.kvl.dk/~abraham/custom/
57;; custom is available in all versions of Emacs version 20 or better.
100;; 58;;
101;;; Developing for speedbar
102;;
103;; Adding a speedbar specialized display mode:
104;;
105;; Speedbar can be configured to create a special display for certain
106;; modes that do not display traditional file/tag data. Rmail, Info,
107;; and the debugger are examples. These modes can, however, benefit
108;; from a speedbar style display in their own way.
109;;
110;; If your `major-mode' is `foo-mode', the only requirement is to
111;; create a function called `foo-speedbar-buttons' which takes one
112;; argument, BUFFER. BUFFER will be the buffer speedbar wants filled.
113;; In `foo-speedbar-buttons' there are several functions that make
114;; building a speedbar display easy. See the documentation for
115;; `speedbar-with-writable' (needed because the buffer is usually
116;; read-only) `speedbar-make-tag-line', `speedbar-insert-button', and
117;; `speedbar-insert-generic-list'. If you use
118;; `speedbar-insert-generic-list', also read the doc for
119;; `speedbar-tag-hierarchy-method' in case you wish to override it.
120;; The macro `speedbar-with-attached-buffer' brings you back to the
121;; buffer speedbar is displaying for.
122;;
123;; For those functions that make buttons, the "function" should be a
124;; symbol that is the function to call when clicked on. The "token"
125;; is extra data you can pass along. The "function" must take three
126;; parameters. They are (TEXT TOKEN INDENT). TEXT is the text of the
127;; button clicked on. TOKEN is the data passed in when you create the
128;; button. INDENT is an indentation level, or 0. You can store
129;; indentation levels with `speedbar-make-tag-line' which creates a
130;; line with an expander (eg. [+]) and a text button.
131;;
132;; Some useful functions when writing expand functions, and click
133;; functions are `speedbar-change-expand-button-char',
134;; `speedbar-delete-subblock', and `speedbar-center-buffer-smartly'.
135;; The variable `speedbar-power-click' is set to t in your functions
136;; when the user shift-clicks. This is an indication of anything from
137;; refreshing cached data to making a buffer appear in a new frame.
138;;
139;; If you wish to add to the default speedbar menu for the case of
140;; `foo-mode', create a variable `foo-speedbar-menu-items'. This
141;; should be a list compatible with the `easymenu' package. It will
142;; be spliced into the main menu. (Available with click-mouse-3). If
143;; you wish to have extra key bindings in your special mode, create a
144;; variable `foo-speedbar-key-map'. Instead of using `make-keymap',
145;; or `make-sparse-keymap', use the function
146;; `speedbar-make-specialized-keymap'. This lets you inherit all of
147;; speedbar's default bindings with low overhead.
148;;
149;; Adding a speedbar top-level display mode:
150;;
151;; Unlike the specialized modes, there are no name requirements,
152;; however the methods for writing a button display, menu, and keymap
153;; are the same. Once you create these items, you can call the
154;; function `speedbar-add-expansion-list'. It takes one parameter
155;; which is a list element of the form (NAME MENU KEYMAP &rest
156;; BUTTON-FUNCTIONS). NAME is a string that will show up in the
157;; Displays menu item. MENU is a symbol containing the menu items to
158;; splice in. KEYMAP is a symbol holding the keymap to use, and
159;; BUTTON-FUNCTIONS are the function names to call, in order, to create
160;; the display.
161;; Another tweakable variable is `speedbar-stealthy-function-list'
162;; which is of the form (NAME &rest FUNCTION ...). NAME is the string
163;; name matching `speedbar-add-expansion-list'. (It does not need to
164;; exist.). This provides additional display info which might be
165;; time-consuming to calculate.
166;; Lastly, `speedbar-mode-functions-list' allows you to set special
167;; function overrides. At the moment very few functions may be
168;; overridden, but more will be added as the need is discovered.
169 59
170;;; TODO: 60;;; TODO:
171;; - More functions to create buttons and options
172;; - Timeout directories we haven't visited in a while. 61;; - Timeout directories we haven't visited in a while.
173 62
174;;; Code:
175
176(require 'assoc) 63(require 'assoc)
177(require 'easymenu) 64(require 'easymenu)
178 65(require 'dframe)
179(condition-case nil 66(require 'sb-image)
180 (require 'image)
181 (error nil))
182
183(defvar ange-ftp-path-format)
184(defvar efs-path-regexp)
185(defvar font-lock-keywords)
186(defvar x-pointer-hand2)
187(defvar x-pointer-top-left-arrow)
188
189(defvar speedbar-xemacsp (string-match "XEmacs" emacs-version)
190 "Non-nil if we are running in the XEmacs environment.")
191(defvar speedbar-xemacs20p (and speedbar-xemacsp
192 (>= emacs-major-version 20)))
193 67
194;; customization stuff 68;; customization stuff
195(defgroup speedbar nil 69(defgroup speedbar nil
@@ -197,7 +71,8 @@
197 :group 'etags 71 :group 'etags
198 :group 'tools 72 :group 'tools
199 :group 'convenience 73 :group 'convenience
200 :version "20.3") 74; :version "20.3"
75 )
201 76
202(defgroup speedbar-faces nil 77(defgroup speedbar-faces nil
203 "Faces used in speedbar." 78 "Faces used in speedbar."
@@ -210,6 +85,27 @@
210 :prefix "speedbar-" 85 :prefix "speedbar-"
211 :group 'speedbar) 86 :group 'speedbar)
212 87
88;;; Code:
89
90;; Note: `inversion-test' requires parts of the CEDET package that are
91;; not included with Emacs.
92;;
93;; (defun speedbar-require-version (major minor &optional beta)
94;; "Non-nil if this version of SPEEDBAR does not satisfy a specific version.
95;; Arguments can be:
96;;
97;; (MAJOR MINOR &optional BETA)
98;;
99;; Values MAJOR and MINOR must be integers. BETA can be an integer, or
100;; excluded if a released version is required.
101;;
102;; It is assumed that if the current version is newer than that specified,
103;; everything passes. Exceptions occur when known incompatibilities are
104;; introduced."
105;; (inversion-test 'speedbar
106;; (concat major "." minor
107;; (when beta (concat "beta" beta)))))
108
213(defvar speedbar-initial-expansion-mode-alist 109(defvar speedbar-initial-expansion-mode-alist
214 '(("buffers" speedbar-buffer-easymenu-definition speedbar-buffers-key-map 110 '(("buffers" speedbar-buffer-easymenu-definition speedbar-buffers-key-map
215 speedbar-buffer-buttons) 111 speedbar-buffer-buttons)
@@ -244,7 +140,10 @@ the user is done with the current expansion list.")
244 140
245(defvar speedbar-stealthy-function-list 141(defvar speedbar-stealthy-function-list
246 '(("files" 142 '(("files"
247 speedbar-update-current-file speedbar-check-vc speedbar-check-objects) 143 speedbar-update-current-file
144 speedbar-check-read-only
145 speedbar-check-vc
146 speedbar-check-objects)
248 ) 147 )
249 "List of functions to periodically call stealthily. 148 "List of functions to periodically call stealthily.
250This list is of the form: 149This list is of the form:
@@ -260,11 +159,11 @@ interruption. See `speedbar-check-vc' as a good example.")
260 159
261(defvar speedbar-mode-functions-list 160(defvar speedbar-mode-functions-list
262 '(("files" (speedbar-item-info . speedbar-files-item-info) 161 '(("files" (speedbar-item-info . speedbar-files-item-info)
263 (speedbar-line-path . speedbar-files-line-path)) 162 (speedbar-line-directory . speedbar-files-line-directory))
264 ("buffers" (speedbar-item-info . speedbar-buffers-item-info) 163 ("buffers" (speedbar-item-info . speedbar-buffers-item-info)
265 (speedbar-line-path . speedbar-buffers-line-path)) 164 (speedbar-line-directory . speedbar-buffers-line-directory))
266 ("quick buffers" (speedbar-item-info . speedbar-buffers-item-info) 165 ("quick buffers" (speedbar-item-info . speedbar-buffers-item-info)
267 (speedbar-line-path . speedbar-buffers-line-path)) 166 (speedbar-line-directory . speedbar-buffers-line-directory))
268 ) 167 )
269 "List of function tables to use for different major display modes. 168 "List of function tables to use for different major display modes.
270It is not necessary to define any functions for a specialized mode. 169It is not necessary to define any functions for a specialized mode.
@@ -285,6 +184,20 @@ frame."
285 :group 'speedbar 184 :group 'speedbar
286 :type 'boolean) 185 :type 'boolean)
287 186
187(defcustom speedbar-query-confirmation-method 'all
188 "*Query control for file operations.
189The 'always flag means to always query before file operations.
190The 'none-but-delete flag means to not query before any file
191operations, except before a file deletion."
192 :group 'speedbar
193 :type '(radio (const :tag "Always Query before some file operations."
194 all)
195 (const :tag "Never Query before file operations, except for deletions."
196 none-but-delete)
197;;;; (const :tag "Never Every Query."
198;;;; none)
199 ))
200
288(defvar speedbar-special-mode-expansion-list nil 201(defvar speedbar-special-mode-expansion-list nil
289 "Default function list for creating specialized button lists. 202 "Default function list for creating specialized button lists.
290This list is set by modes that wish to have special speedbar displays. 203This list is set by modes that wish to have special speedbar displays.
@@ -297,30 +210,40 @@ speedbar buffer.")
297This keymap is local to each buffer that wants to define special keybindings 210This keymap is local to each buffer that wants to define special keybindings
298effective when its display is shown.") 211effective when its display is shown.")
299 212
213(defcustom speedbar-before-visiting-file-hook '(push-mark)
214 "*Hooks run before speedbar visits a file in the selected frame.
215The default buffer is the buffer in the selected window in the attached frame."
216 :group 'speedbar
217 :type 'hook)
218
300(defcustom speedbar-visiting-file-hook nil 219(defcustom speedbar-visiting-file-hook nil
301 "Hooks run when speedbar visits a file in the selected frame." 220 "*Hooks run when speedbar visits a file in the selected frame."
221 :group 'speedbar
222 :type 'hook)
223
224(defcustom speedbar-before-visiting-tag-hook '(push-mark)
225 "*Hooks run before speedbar visits a tag in the selected frame.
226The default buffer is the buffer in the selected window in the attached frame."
302 :group 'speedbar 227 :group 'speedbar
303 :type 'hook) 228 :type 'hook)
304 229
305(defcustom speedbar-visiting-tag-hook '(speedbar-highlight-one-tag-line) 230(defcustom speedbar-visiting-tag-hook '(speedbar-highlight-one-tag-line)
306 "Hooks run when speedbar visits a tag in the selected frame." 231 "*Hooks run when speedbar visits a tag in the selected frame."
307 :group 'speedbar 232 :group 'speedbar
308 :type 'hook 233 :type 'hook
309 :version "21.1"
310 :options '(speedbar-highlight-one-tag-line 234 :options '(speedbar-highlight-one-tag-line
311 speedbar-recenter-to-top 235 speedbar-recenter-to-top
312 speedbar-recenter 236 speedbar-recenter
313 )) 237 ))
314 238
315(defcustom speedbar-load-hook nil 239(defcustom speedbar-load-hook nil
316 "Hooks run when speedbar is loaded." 240 "*Hooks run when speedbar is loaded."
317 :group 'speedbar 241 :group 'speedbar
318 :type 'hook) 242 :type 'hook)
319 243
320(defcustom speedbar-reconfigure-keymaps-hook nil 244(defcustom speedbar-reconfigure-keymaps-hook nil
321 "Hooks run when the keymaps are regenerated." 245 "*Hooks run when the keymaps are regenerated."
322 :group 'speedbar 246 :group 'speedbar
323 :version "21.1"
324 :type 'hook) 247 :type 'hook)
325 248
326(defcustom speedbar-show-unknown-files nil 249(defcustom speedbar-show-unknown-files nil
@@ -329,34 +252,26 @@ nil means don't show the file in the list."
329 :group 'speedbar 252 :group 'speedbar
330 :type 'boolean) 253 :type 'boolean)
331 254
332(defcustom speedbar-update-speed 255;;; EVENTUALLY REMOVE THESE
333 (if speedbar-xemacsp
334 (if speedbar-xemacs20p
335 2 ; 1 is too obrusive in XEmacs
336 5) ; when no idleness, need long delay
337 1)
338 "*Idle time in seconds needed before speedbar will update itself.
339Updates occur to allow speedbar to display directory information
340relevant to the buffer you are currently editing."
341 :group 'speedbar
342 :type 'integer)
343 256
344;; When I moved to a repeating timer, I had the horrible missfortune 257;; When I moved to a repeating timer, I had the horrible missfortune
345;; of loosing the ability for adaptive speed choice. This update 258;; of loosing the ability for adaptive speed choice. This update
346;; speed currently causes long delays when it should have been turned off. 259;; speed currently causes long delays when it should have been turned off.
347(defcustom speedbar-navigating-speed speedbar-update-speed 260(defvar speedbar-update-speed dframe-update-speed
348 "*Idle time to wait after navigation commands in speedbar are executed. 261 "*Obsoleted variable. Use `dframe-update-speed'.")
349Navigation commands included expanding/contracting nodes, and moving 262
350between different directories." 263(defvar speedbar-navigating-speed dframe-update-speed
351 :group 'speedbar 264 "*Obsoleted variable. Use `dframe-update-speed'.")
352 :type 'integer) 265;;; END REMOVE THESE
353 266
354(defcustom speedbar-frame-parameters '((minibuffer . nil) 267(defcustom speedbar-frame-parameters '((minibuffer . nil)
355 (width . 20) 268 (width . 20)
356 (border-width . 0) 269 (border-width . 0)
357 (menu-bar-lines . 0) 270 (menu-bar-lines . 0)
358 (tool-bar-lines . 0) 271 (tool-bar-lines . 0)
359 (unsplittable . t)) 272 (unsplittable . t)
273 (left-fringe . 0)
274 )
360 "*Parameters to use when creating the speedbar frame in Emacs. 275 "*Parameters to use when creating the speedbar frame in Emacs.
361Any parameter supported by a frame may be added. The parameter `height' 276Any parameter supported by a frame may be added. The parameter `height'
362will be initialized to the height of the frame speedbar is 277will be initialized to the height of the frame speedbar is
@@ -371,7 +286,9 @@ attached to and added to this list before the new frame is initialized."
371 '(minibuffer nil width 20 border-width 0 286 '(minibuffer nil width 20 border-width 0
372 internal-border-width 0 unsplittable t 287 internal-border-width 0 unsplittable t
373 default-toolbar-visible-p nil has-modeline-p nil 288 default-toolbar-visible-p nil has-modeline-p nil
374 menubar-visible-p nil) 289 menubar-visible-p nil
290 default-gutter-visible-p nil
291 )
375 "*Parameters to use when creating the speedbar frame in XEmacs. 292 "*Parameters to use when creating the speedbar frame in XEmacs.
376Parameters not listed here which will be added automatically are 293Parameters not listed here which will be added automatically are
377`height' which will be initialized to the height of the frame speedbar 294`height' which will be initialized to the height of the frame speedbar
@@ -401,13 +318,22 @@ error occurred, and the next fetch routine is tried.
401INSERT is a function which takes an INDENTation level, and a LIST of 318INSERT is a function which takes an INDENTation level, and a LIST of
402tags to insert. It will then create the speedbar buttons.") 319tags to insert. It will then create the speedbar buttons.")
403 320
404(defcustom speedbar-track-mouse-flag t 321(defcustom speedbar-use-tool-tips-flag (and (not (featurep 'xemacs))
322 (>= emacs-major-version 21))
323 "*Non-nil means to use tool tips if they are avaialble.
324When tooltips are not available, mouse-tracking and minibuffer
325display is used instead."
326 :group 'speedbar
327 :type 'boolean)
328
329(defcustom speedbar-track-mouse-flag (not speedbar-use-tool-tips-flag)
405 "*Non-nil means to display info about the line under the mouse." 330 "*Non-nil means to display info about the line under the mouse."
406 :group 'speedbar 331 :group 'speedbar
407 :type 'boolean) 332 :type 'boolean)
408 333
409(defcustom speedbar-sort-tags nil 334(defcustom speedbar-sort-tags nil
410 "*If non-nil, sort tags in the speedbar display. *Obsolete*." 335 "*If non-nil, sort tags in the speedbar display. *Obsolete*.
336Use `semantic-tag-hierarchy-method' instead."
411 :group 'speedbar 337 :group 'speedbar
412 :type 'boolean) 338 :type 'boolean)
413 339
@@ -427,10 +353,10 @@ or
427 (GROUP-NAME-STRING ELT1 ELT2... ELTn)" 353 (GROUP-NAME-STRING ELT1 ELT2... ELTn)"
428 :group 'speedbar 354 :group 'speedbar
429 :type 'hook 355 :type 'hook
430 :options '(speedbar-sort-tag-hierarchy 356 :options '(speedbar-prefix-group-tag-hierarchy
431 speedbar-trim-words-tag-hierarchy 357 speedbar-trim-words-tag-hierarchy
432 speedbar-prefix-group-tag-hierarchy 358 speedbar-simple-group-tag-hierarchy
433 speedbar-simple-group-tag-hierarchy) 359 speedbar-sort-tag-hierarchy)
434 ) 360 )
435 361
436(defcustom speedbar-tag-group-name-minimum-length 4 362(defcustom speedbar-tag-group-name-minimum-length 4
@@ -460,13 +386,6 @@ items is reached."
460 :group 'speedbar 386 :group 'speedbar
461 :type 'integer) 387 :type 'integer)
462 388
463(defcustom speedbar-activity-change-focus-flag nil
464 "*Non-nil means the selected frame will change based on activity.
465Thus, if a file is selected for edit, the buffer will appear in the
466selected frame and the focus will change to that frame."
467 :group 'speedbar
468 :type 'boolean)
469
470(defcustom speedbar-directory-button-trim-method 'span 389(defcustom speedbar-directory-button-trim-method 'span
471 "*Indicates how the directory button will be displayed. 390 "*Indicates how the directory button will be displayed.
472Possible values are: 391Possible values are:
@@ -493,26 +412,19 @@ hierarchy would be replaced with the new directory."
493(defcustom speedbar-indentation-width 1 412(defcustom speedbar-indentation-width 1
494 "*When sub-nodes are expanded, the number of spaces used for indentation." 413 "*When sub-nodes are expanded, the number of spaces used for indentation."
495 :group 'speedbar 414 :group 'speedbar
496 :version "21.1"
497 :type 'integer) 415 :type 'integer)
498 416
499(defcustom speedbar-hide-button-brackets-flag nil 417(defcustom speedbar-hide-button-brackets-flag nil
500 "*Non-nil means speedbar will hide the brackets around the + or -." 418 "*Non-nil means speedbar will hide the brackets around the + or -."
501 :group 'speedbar 419 :group 'speedbar
502 :version "21.1"
503 :type 'boolean) 420 :type 'boolean)
504 421
505(defcustom speedbar-use-images (and (or (fboundp 'defimage) 422(defcustom speedbar-before-popup-hook nil
506 (fboundp 'make-image-specifier)) 423 "*Hooks called before popping up the speedbar frame."
507 (if (fboundp 'display-graphic-p)
508 (display-graphic-p)
509 window-system))
510 "*Non-nil if speedbar should display icons."
511 :group 'speedbar 424 :group 'speedbar
512 :version "21.1" 425 :type 'hook)
513 :type 'boolean)
514 426
515(defcustom speedbar-before-popup-hook nil 427(defcustom speedbar-after-create-hook '(speedbar-frame-reposition-smartly)
516 "*Hooks called before popping up the speedbar frame." 428 "*Hooks called before popping up the speedbar frame."
517 :group 'speedbar 429 :group 'speedbar
518 :type 'hook) 430 :type 'hook)
@@ -551,18 +463,18 @@ Any file checked out is marked with `speedbar-vc-indicator'."
551(defvar speedbar-vc-indicator "*" 463(defvar speedbar-vc-indicator "*"
552 "Text used to mark files which are currently checked out. 464 "Text used to mark files which are currently checked out.
553Other version control systems can be added by examining the function 465Other version control systems can be added by examining the function
554`speedbar-vc-path-enable-hook' and `speedbar-vc-in-control-hook'.") 466`speedbar-vc-directory-enable-hook' and `speedbar-vc-in-control-hook'.")
555 467
556(defcustom speedbar-vc-path-enable-hook nil 468(defcustom speedbar-vc-directory-enable-hook nil
557 "*Return non-nil if the current path should be checked for Version Control. 469 "*Return non-nil if the current directory should be checked for Version Control.
558Functions in this hook must accept one parameter which is the path 470Functions in this hook must accept one parameter which is the directory
559being checked." 471being checked."
560 :group 'speedbar-vc 472 :group 'speedbar-vc
561 :type 'hook) 473 :type 'hook)
562 474
563(defcustom speedbar-vc-in-control-hook nil 475(defcustom speedbar-vc-in-control-hook nil
564 "*Return non-nil if the specified file is under Version Control. 476 "*Return non-nil if the specified file is under Version Control.
565Functions in this hook must accept two parameters. The PATH of the 477Functions in this hook must accept two parameters. The DIRECTORY of the
566current file, and the FILENAME of the file being checked." 478current file, and the FILENAME of the file being checked."
567 :group 'speedbar-vc 479 :group 'speedbar-vc
568 :type 'hook) 480 :type 'hook)
@@ -573,7 +485,7 @@ current file, and the FILENAME of the file being checked."
573(defcustom speedbar-obj-do-check t 485(defcustom speedbar-obj-do-check t
574 "*Non-nil check all files in speedbar to see if they have an object file. 486 "*Non-nil check all files in speedbar to see if they have an object file.
575Any file checked out is marked with `speedbar-obj-indicator', and the 487Any file checked out is marked with `speedbar-obj-indicator', and the
576marking is based on `speedbar-obj-alist'." 488marking is based on `speedbar-obj-alist'"
577 :group 'speedbar-vc 489 :group 'speedbar-vc
578 :type 'boolean) 490 :type 'boolean)
579 491
@@ -586,7 +498,7 @@ The car is for an up-to-date object. The cdr is for an out of date object.
586The expression `speedbar-obj-alist' defines who gets tagged.") 498The expression `speedbar-obj-alist' defines who gets tagged.")
587 499
588(defvar speedbar-obj-alist 500(defvar speedbar-obj-alist
589 '(("\\.\\([cpC]\\|cpp\\|cc\\)$" . ".o") 501 '(("\\.\\([cpC]\\|cpp\\|cc\\|cxx\\)$" . ".o")
590 ("\\.el$" . ".elc") 502 ("\\.el$" . ".elc")
591 ("\\.java$" . ".class") 503 ("\\.java$" . ".class")
592 ("\\.f\\(or\\|90\\|77\\)?$" . ".o") 504 ("\\.f\\(or\\|90\\|77\\)?$" . ".o")
@@ -594,6 +506,14 @@ The expression `speedbar-obj-alist' defines who gets tagged.")
594 ("\\.texi$" . ".info")) 506 ("\\.texi$" . ".info"))
595 "Alist of file extensions, and their corresponding object file type.") 507 "Alist of file extensions, and their corresponding object file type.")
596 508
509(defvar speedbar-ro-to-do-point nil
510 "Local variable maintaining the current read only check position.")
511
512(defvar speedbar-object-read-only-indicator "%"
513 "Indicator to append onto a line if that item is Read Only.")
514
515;; Note: Look for addition place to add indicator lists that
516;; use skip-chars instead of a regular expression.
597(defvar speedbar-indicator-regex 517(defvar speedbar-indicator-regex
598 (concat (regexp-quote speedbar-indicator-separator) 518 (concat (regexp-quote speedbar-indicator-separator)
599 "\\(" 519 "\\("
@@ -602,6 +522,8 @@ The expression `speedbar-obj-alist' defines who gets tagged.")
602 (regexp-quote (car speedbar-obj-indicator)) 522 (regexp-quote (car speedbar-obj-indicator))
603 "\\|" 523 "\\|"
604 (regexp-quote (cdr speedbar-obj-indicator)) 524 (regexp-quote (cdr speedbar-obj-indicator))
525 "\\|"
526 (regexp-quote speedbar-object-read-only-indicator)
605 "\\)*") 527 "\\)*")
606 "Regular expression used when identifying files. 528 "Regular expression used when identifying files.
607Permits stripping of indicator characters from a line.") 529Permits stripping of indicator characters from a line.")
@@ -613,7 +535,7 @@ state data."
613 :group 'speedbar 535 :group 'speedbar
614 :type 'hook) 536 :type 'hook)
615 537
616(defvar speedbar-ignored-modes nil 538(defvar speedbar-ignored-modes '(fundamental-mode)
617 "*List of major modes which speedbar will not switch directories for.") 539 "*List of major modes which speedbar will not switch directories for.")
618 540
619(defun speedbar-extension-list-to-regex (extlist) 541(defun speedbar-extension-list-to-regex (extlist)
@@ -635,29 +557,29 @@ with `.' followed by extensions, followed by full-filenames."
635 (if regex2 (concat "\\(" regex2 "\\)") "") 557 (if regex2 (concat "\\(" regex2 "\\)") "")
636 "\\)$"))) 558 "\\)$")))
637 559
638(defvar speedbar-ignored-path-regexp nil 560(defvar speedbar-ignored-directory-regexp nil
639 "Regular expression matching paths speedbar will not switch to. 561 "Regular expression matching directorys speedbar will not switch to.
640Created from `speedbar-ignored-path-expressions' with the function 562Created from `speedbar-ignored-directory-expressions' with the function
641`speedbar-extension-list-to-regex' (A misnamed function in this case.) 563`speedbar-extension-list-to-regex' (A misnamed function in this case.)
642Use the function `speedbar-add-ignored-path-regexp', or customize the 564Use the function `speedbar-add-ignored-directory-regexp', or customize the
643variable `speedbar-ignored-path-expressions' to modify this variable.") 565variable `speedbar-ignored-directory-expressions' to modify this variable.")
644 566
645(defcustom speedbar-ignored-path-expressions 567(defcustom speedbar-ignored-directory-expressions
646 '("[/\\]logs?[/\\]\\'") 568 '("[/\\]logs?[/\\]\\'")
647 "*List of regular expressions matching directories speedbar will ignore. 569 "*List of regular expressions matching directories speedbar will ignore.
648They should included paths to directories which are notoriously very 570They should included directorys to directories which are notoriously very
649large and take a long time to load in. Use the function 571large and take a long time to load in. Use the function
650`speedbar-add-ignored-path-regexp' to add new items to this list after 572`speedbar-add-ignored-directory-regexp' to add new items to this list after
651speedbar is loaded. You may place anything you like in this list 573speedbar is loaded. You may place anything you like in this list
652before speedbar has been loaded." 574before speedbar has been loaded."
653 :group 'speedbar 575 :group 'speedbar
654 :type '(repeat (regexp :tag "Path Regexp")) 576 :type '(repeat (regexp :tag "Directory Regexp"))
655 :set (lambda (sym val) 577 :set (lambda (sym val)
656 (setq speedbar-ignored-path-expressions val 578 (setq speedbar-ignored-directory-expressions val
657 speedbar-ignored-path-regexp 579 speedbar-ignored-directory-regexp
658 (speedbar-extension-list-to-regex val)))) 580 (speedbar-extension-list-to-regex val))))
659 581
660(defcustom speedbar-directory-unshown-regexp "^\\(CVS\\|RCS\\|SCCS\\)\\'" 582(defcustom speedbar-directory-unshown-regexp "^\\(CVS\\|RCS\\|SCCS\\|\\..*\\)\\'"
661 "*Regular expression matching directories not to show in speedbar. 583 "*Regular expression matching directories not to show in speedbar.
662They should include commonly existing directories which are not 584They should include commonly existing directories which are not
663useful, such as version control." 585useful, such as version control."
@@ -675,8 +597,10 @@ useful, such as version control."
675 "*Regexp matching files we don't want displayed in a speedbar buffer. 597 "*Regexp matching files we don't want displayed in a speedbar buffer.
676It is generated from the variable `completion-ignored-extensions'") 598It is generated from the variable `completion-ignored-extensions'")
677 599
678;; Compiler silencing trick. The real defvar comes later in this file. 600(defvar speedbar-file-regexp nil
679(defvar speedbar-file-regexp) 601 "Regular expression matching files we know how to expand.
602Created from `speedbar-supported-extension-expressions' with the
603function `speedbar-extension-list-to-regex'")
680 604
681;; this is dangerous to customize, because the defaults will probably 605;; this is dangerous to customize, because the defaults will probably
682;; change in the future. 606;; change in the future.
@@ -688,7 +612,7 @@ It is generated from the variable `completion-ignored-extensions'")
688 ;; html is not supported by default, but an imenu tags package 612 ;; html is not supported by default, but an imenu tags package
689 ;; is available. Also, html files are nice to be able to see. 613 ;; is available. Also, html files are nice to be able to see.
690 ".s?html" 614 ".s?html"
691 "[Mm]akefile\\(\\.in\\)?"))) 615 ".ma?k" "[Mm]akefile\\(\\.in\\)?")))
692 "*List of regular expressions which will match files supported by tagging. 616 "*List of regular expressions which will match files supported by tagging.
693Do not prefix the `.' char with a double \\ to quote it, as the period 617Do not prefix the `.' char with a double \\ to quote it, as the period
694will be stripped by a simplified optimizer when compiled into a 618will be stripped by a simplified optimizer when compiled into a
@@ -696,28 +620,18 @@ singular expression. This variable will be turned into
696`speedbar-file-regexp' for use with speedbar. You should use the 620`speedbar-file-regexp' for use with speedbar. You should use the
697function `speedbar-add-supported-extension' to add a new extension at 621function `speedbar-add-supported-extension' to add a new extension at
698runtime, or use the configuration dialog to set it in your .emacs 622runtime, or use the configuration dialog to set it in your .emacs
699file." 623file.
624If you add an extension to this list, and it does not appear, you may
625need to also modify `completion-ignored-extension' which will also help
626file completion."
700 :group 'speedbar 627 :group 'speedbar
701 :version "21.1"
702 :type '(repeat (regexp :tag "Extension Regexp")) 628 :type '(repeat (regexp :tag "Extension Regexp"))
703 :set (lambda (sym val) 629 :set (lambda (sym val)
704 (setq speedbar-supported-extension-expressions val 630 (set 'speedbar-supported-extension-expressions val)
705 speedbar-file-regexp (speedbar-extension-list-to-regex val)))) 631 (set 'speedbar-file-regexp (speedbar-extension-list-to-regex val))))
706 632
707(defvar speedbar-file-regexp 633(setq speedbar-file-regexp
708 (speedbar-extension-list-to-regex speedbar-supported-extension-expressions) 634 (speedbar-extension-list-to-regex speedbar-supported-extension-expressions))
709 "Regular expression matching files we know how to expand.
710Created from `speedbar-supported-extension-expression' with the
711function `speedbar-extension-list-to-regex'")
712
713(defcustom speedbar-scan-subdirs nil
714 "*Non-nil means speedbar will check if subdirs are empty.
715That way you don't have to click on them to find out. But this
716incurs extra I/O, hence it slows down directory display
717proportionally to the number of subdirs."
718 :group 'speedbar
719 :type 'boolean
720 :version 22.1)
721 635
722(defun speedbar-add-supported-extension (extension) 636(defun speedbar-add-supported-extension (extension)
723 "Add EXTENSION as a new supported extension for speedbar tagging. 637 "Add EXTENSION as a new supported extension for speedbar tagging.
@@ -736,42 +650,41 @@ list of strings."
736 (setq speedbar-file-regexp (speedbar-extension-list-to-regex 650 (setq speedbar-file-regexp (speedbar-extension-list-to-regex
737 speedbar-supported-extension-expressions))) 651 speedbar-supported-extension-expressions)))
738 652
739(defun speedbar-add-ignored-path-regexp (path-expression) 653(defun speedbar-add-ignored-directory-regexp (directory-expression)
740 "Add PATH-EXPRESSION as a new ignored path for speedbar tracking. 654 "Add DIRECTORY-EXPRESSION as a new ignored directory for speedbar tracking.
741This function will modify `speedbar-ignored-path-regexp' and add 655This function will modify `speedbar-ignored-directory-regexp' and add
742PATH-EXPRESSION to `speedbar-ignored-path-expressions'." 656DIRECTORY-EXPRESSION to `speedbar-ignored-directory-expressions'."
743 (interactive "sPath regex: ") 657 (interactive "sDirectory regex: ")
744 (if (not (listp path-expression)) 658 (if (not (listp directory-expression))
745 (setq path-expression (list path-expression))) 659 (setq directory-expression (list directory-expression)))
746 (while path-expression 660 (while directory-expression
747 (if (member (car path-expression) speedbar-ignored-path-expressions) 661 (if (member (car directory-expression) speedbar-ignored-directory-expressions)
748 nil 662 nil
749 (setq speedbar-ignored-path-expressions 663 (setq speedbar-ignored-directory-expressions
750 (cons (car path-expression) speedbar-ignored-path-expressions))) 664 (cons (car directory-expression) speedbar-ignored-directory-expressions)))
751 (setq path-expression (cdr path-expression))) 665 (setq directory-expression (cdr directory-expression)))
752 (setq speedbar-ignored-path-regexp (speedbar-extension-list-to-regex 666 (setq speedbar-ignored-directory-regexp (speedbar-extension-list-to-regex
753 speedbar-ignored-path-expressions))) 667 speedbar-ignored-directory-expressions)))
754 668
755;; If we don't have custom, then we set it here by hand. 669;; If we don't have custom, then we set it here by hand.
756(if (not (fboundp 'custom-declare-variable)) 670(if (not (fboundp 'custom-declare-variable))
757 (setq speedbar-file-regexp (speedbar-extension-list-to-regex 671 (setq speedbar-file-regexp (speedbar-extension-list-to-regex
758 speedbar-supported-extension-expressions) 672 speedbar-supported-extension-expressions)
759 speedbar-ignored-path-regexp (speedbar-extension-list-to-regex 673 speedbar-ignored-directory-regexp (speedbar-extension-list-to-regex
760 speedbar-ignored-path-expressions))) 674 speedbar-ignored-directory-expressions)))
761 675
762(defvar speedbar-update-flag (and 676(defvar speedbar-update-flag dframe-have-timer-flag
763 (or (fboundp 'run-with-idle-timer)
764 (fboundp 'start-itimer)
765 (boundp 'post-command-idle-hook))
766 (if (fboundp 'display-graphic-p)
767 (display-graphic-p)
768 window-system))
769 "*Non-nil means to automatically update the display. 677 "*Non-nil means to automatically update the display.
770When this is nil then speedbar will not follow the attached 678When this is nil then speedbar will not follow the attached frame's directory.
771frame's path. Type \ 679When speedbar is active, use:
772\\<speedbar-key-map>\\[speedbar-toggle-updates] in the speedbar \ 680
681\\<speedbar-key-map> `\\[speedbar-toggle-updates]'
682
773to toggle this value.") 683to toggle this value.")
774 684
685(defvar speedbar-update-flag-disable nil
686 "Permanently disable changing of the update flag.")
687
775(defvar speedbar-syntax-table nil 688(defvar speedbar-syntax-table nil
776 "Syntax-table used on the speedbar.") 689 "Syntax-table used on the speedbar.")
777 690
@@ -797,10 +710,8 @@ to toggle this value.")
797 (suppress-keymap speedbar-key-map t) 710 (suppress-keymap speedbar-key-map t)
798 711
799 ;; control 712 ;; control
800 (define-key speedbar-key-map "g" 'speedbar-refresh)
801 (define-key speedbar-key-map "t" 'speedbar-toggle-updates) 713 (define-key speedbar-key-map "t" 'speedbar-toggle-updates)
802 (define-key speedbar-key-map "q" 'speedbar-close-frame) 714 (define-key speedbar-key-map "g" 'speedbar-refresh)
803 (define-key speedbar-key-map "Q" 'delete-frame)
804 715
805 ;; navigation 716 ;; navigation
806 (define-key speedbar-key-map "n" 'speedbar-next) 717 (define-key speedbar-key-map "n" 'speedbar-next)
@@ -809,8 +720,9 @@ to toggle this value.")
809 (define-key speedbar-key-map "\M-p" 'speedbar-restricted-prev) 720 (define-key speedbar-key-map "\M-p" 'speedbar-restricted-prev)
810 (define-key speedbar-key-map "\C-\M-n" 'speedbar-forward-list) 721 (define-key speedbar-key-map "\C-\M-n" 'speedbar-forward-list)
811 (define-key speedbar-key-map "\C-\M-p" 'speedbar-backward-list) 722 (define-key speedbar-key-map "\C-\M-p" 'speedbar-backward-list)
812 (define-key speedbar-key-map " " 'speedbar-scroll-up) 723;; These commands never seemed useful.
813 (define-key speedbar-key-map [delete] 'speedbar-scroll-down) 724;; (define-key speedbar-key-map " " 'speedbar-scroll-up)
725;; (define-key speedbar-key-map [delete] 'speedbar-scroll-down)
814 726
815 ;; Short cuts I happen to find useful 727 ;; Short cuts I happen to find useful
816 (define-key speedbar-key-map "r" 728 (define-key speedbar-key-map "r"
@@ -824,46 +736,8 @@ to toggle this value.")
824 (lambda () (interactive) 736 (lambda () (interactive)
825 (speedbar-change-initial-expansion-list "files"))) 737 (speedbar-change-initial-expansion-list "files")))
826 738
827 ;; Overrides 739 (dframe-update-keymap speedbar-key-map)
828 (substitute-key-definition 'switch-to-buffer 740)
829 'speedbar-switch-buffer-attached-frame
830 speedbar-key-map global-map)
831
832 (if speedbar-xemacsp
833 (progn
834 ;; mouse bindings so we can manipulate the items on each line
835 (define-key speedbar-key-map 'button2 'speedbar-click)
836 (define-key speedbar-key-map '(shift button2) 'speedbar-power-click)
837 ;; Info doc fix from Bob Weiner
838 (if (featurep 'infodoc)
839 nil
840 (define-key speedbar-key-map 'button3 'speedbar-xemacs-popup-kludge))
841 (define-key speedbar-key-map '(meta button3) 'speedbar-mouse-item-info)
842 )
843
844 ;; mouse bindings so we can manipulate the items on each line
845 (define-key speedbar-key-map [down-mouse-1] 'speedbar-double-click)
846 (define-key speedbar-key-map [mouse-2] 'speedbar-click)
847 ;; This is the power click for new frames, or refreshing a cache
848 (define-key speedbar-key-map [S-mouse-2] 'speedbar-power-click)
849 ;; This adds a small unecessary visual effect
850 ;;(define-key speedbar-key-map [down-mouse-2] 'speedbar-quick-mouse)
851 (define-key speedbar-key-map [M-mouse-2] 'speedbar-mouse-item-info)
852
853 (define-key speedbar-key-map [down-mouse-3] 'speedbar-emacs-popup-kludge)
854
855 ;; This lets the user scroll as if we had a scrollbar... well maybe not
856 (define-key speedbar-key-map [mode-line mouse-2] 'speedbar-mouse-hscroll)
857 ;; another handy place users might click to get our menu.
858 (define-key speedbar-key-map [mode-line down-mouse-1]
859 'speedbar-emacs-popup-kludge)
860
861 ;; We can't switch buffers with the buffer mouse menu. Lets hack it.
862 (define-key speedbar-key-map [C-down-mouse-1] 'speedbar-hack-buffer-menu)
863
864 ;; Lastly, we want to track the mouse. Play here
865 (define-key speedbar-key-map [mouse-movement] 'speedbar-track-mouse)
866 ))
867 741
868(defun speedbar-make-specialized-keymap () 742(defun speedbar-make-specialized-keymap ()
869 "Create a keymap for use with a speedbar major or minor display mode. 743 "Create a keymap for use with a speedbar major or minor display mode.
@@ -887,6 +761,11 @@ This basically creates a sparse keymap, and makes it's parent be
887 (define-key speedbar-file-key-map "=" 'speedbar-expand-line) 761 (define-key speedbar-file-key-map "=" 'speedbar-expand-line)
888 (define-key speedbar-file-key-map "-" 'speedbar-contract-line) 762 (define-key speedbar-file-key-map "-" 'speedbar-contract-line)
889 763
764 (define-key speedbar-file-key-map "[" 'speedbar-expand-line-descendants)
765 (define-key speedbar-file-key-map "]" 'speedbar-close-line-descendants)
766
767 (define-key speedbar-file-key-map " " 'speedbar-toggle-line-expansion)
768
890 ;; file based commands 769 ;; file based commands
891 (define-key speedbar-file-key-map "U" 'speedbar-up-directory) 770 (define-key speedbar-file-key-map "U" 'speedbar-up-directory)
892 (define-key speedbar-file-key-map "I" 'speedbar-item-info) 771 (define-key speedbar-file-key-map "I" 'speedbar-item-info)
@@ -896,6 +775,7 @@ This basically creates a sparse keymap, and makes it's parent be
896 (define-key speedbar-file-key-map "D" 'speedbar-item-delete) 775 (define-key speedbar-file-key-map "D" 'speedbar-item-delete)
897 (define-key speedbar-file-key-map "O" 'speedbar-item-object-delete) 776 (define-key speedbar-file-key-map "O" 'speedbar-item-object-delete)
898 (define-key speedbar-file-key-map "R" 'speedbar-item-rename) 777 (define-key speedbar-file-key-map "R" 'speedbar-item-rename)
778 (define-key speedbar-file-key-map "M" 'speedbar-create-directory)
899 ) 779 )
900 780
901(defvar speedbar-easymenu-definition-base 781(defvar speedbar-easymenu-definition-base
@@ -903,6 +783,7 @@ This basically creates a sparse keymap, and makes it's parent be
903 '("Speedbar" 783 '("Speedbar"
904 ["Update" speedbar-refresh t] 784 ["Update" speedbar-refresh t]
905 ["Auto Update" speedbar-toggle-updates 785 ["Auto Update" speedbar-toggle-updates
786 :active (not speedbar-update-flag-disable)
906 :style toggle :selected speedbar-update-flag]) 787 :style toggle :selected speedbar-update-flag])
907 (if (and (or (fboundp 'defimage) 788 (if (and (or (fboundp 'defimage)
908 (fboundp 'make-image-specifier)) 789 (fboundp 'make-image-specifier))
@@ -925,6 +806,9 @@ This basically creates a sparse keymap, and makes it's parent be
925 ["Flush Cache & Expand" speedbar-flush-expand-line 806 ["Flush Cache & Expand" speedbar-flush-expand-line
926 (save-excursion (beginning-of-line) 807 (save-excursion (beginning-of-line)
927 (looking-at "[0-9]+: *.\\+. "))] 808 (looking-at "[0-9]+: *.\\+. "))]
809 ["Expand All Descendants" speedbar-expand-line-descendants
810 (save-excursion (beginning-of-line)
811 (looking-at "[0-9]+: *.\\+. ")) ]
928 ["Contract File Tags" speedbar-contract-line 812 ["Contract File Tags" speedbar-contract-line
929 (save-excursion (beginning-of-line) 813 (save-excursion (beginning-of-line)
930 (looking-at "[0-9]+: *.-. "))] 814 (looking-at "[0-9]+: *.-. "))]
@@ -944,6 +828,8 @@ This basically creates a sparse keymap, and makes it's parent be
944 (save-excursion (beginning-of-line) (looking-at "[0-9]+: *\\["))] 828 (save-excursion (beginning-of-line) (looking-at "[0-9]+: *\\["))]
945 ["Rename File" speedbar-item-rename 829 ["Rename File" speedbar-item-rename
946 (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))] 830 (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
831 ["Create Directory" speedbar-create-directory
832 (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
947 ["Delete File" speedbar-item-delete 833 ["Delete File" speedbar-item-delete
948 (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))] 834 (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
949 ["Delete Object" speedbar-item-object-delete 835 ["Delete Object" speedbar-item-object-delete
@@ -951,13 +837,15 @@ This basically creates a sparse keymap, and makes it's parent be
951 (looking-at "[0-9]+: *\\[[+-]\\] [^ \n]+ \\*?[!#]$"))] 837 (looking-at "[0-9]+: *\\[[+-]\\] [^ \n]+ \\*?[!#]$"))]
952 ) 838 )
953 "Additional menu items while in file-mode.") 839 "Additional menu items while in file-mode.")
954 840
955(defvar speedbar-easymenu-definition-trailer 841(defvar speedbar-easymenu-definition-trailer
956 (append 842 (append
957 (if (and (featurep 'custom) (fboundp 'custom-declare-variable)) 843 (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
958 (list ["Customize..." speedbar-customize t])) 844 (list ["Customize..." speedbar-customize t]))
959 (list 845 (list
960 ["Close" speedbar-close-frame t] 846 ["Detach" speedbar-detach (and speedbar-frame
847 (eq (selected-frame) speedbar-frame)) ]
848 ["Close" dframe-close-frame t]
961 ["Quit" delete-frame t] )) 849 ["Quit" delete-frame t] ))
962 "Menu items appearing at the end of the speedbar menu.") 850 "Menu items appearing at the end of the speedbar menu.")
963 851
@@ -972,12 +860,6 @@ In this case it is the originating buffer.")
972 "The frame that was last created, then removed from the display.") 860 "The frame that was last created, then removed from the display.")
973(defvar speedbar-full-text-cache nil 861(defvar speedbar-full-text-cache nil
974 "The last open directory is saved in its entirety for ultra-fast switching.") 862 "The last open directory is saved in its entirety for ultra-fast switching.")
975(defvar speedbar-timer nil
976 "The speedbar timer used for updating the buffer.")
977(defvar speedbar-attached-frame nil
978 "The frame which started speedbar mode.
979This is the frame from which all data displayed in the speedbar is
980gathered, and in which files and such are displayed.")
981 863
982(defvar speedbar-last-selected-file nil 864(defvar speedbar-last-selected-file nil
983 "The last file which was selected in speedbar buffer.") 865 "The last file which was selected in speedbar buffer.")
@@ -997,28 +879,17 @@ directories.")
997 879
998;;; Compatibility 880;;; Compatibility
999;; 881;;
1000(if (fboundp 'frame-parameter) 882(defalias 'speedbar-make-overlay
1001 883 (if (featurep 'xemacs) 'make-extent 'make-overlay))
1002 (defalias 'speedbar-frame-parameter 'frame-parameter) 884
1003 885(defalias 'speedbar-overlay-put
1004 (defun speedbar-frame-parameter (frame parameter) 886 (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
1005 "Return FRAME's PARAMETER value." 887
1006 (cdr (assoc parameter (frame-parameters frame))))) 888(defalias 'speedbar-delete-overlay
1007 889 (if (featurep 'xemacs) 'delete-extent 'delete-overlay))
1008(if (fboundp 'make-overlay) 890
1009 (progn 891(defalias 'speedbar-mode-line-update
1010 (defalias 'speedbar-make-overlay 'make-overlay) 892 (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
1011 (defalias 'speedbar-overlay-put 'overlay-put)
1012 (defalias 'speedbar-delete-overlay 'delete-overlay)
1013 (defalias 'speedbar-overlay-start 'overlay-start)
1014 (defalias 'speedbar-overlay-end 'overlay-end)
1015 (defalias 'speedbar-mode-line-update 'force-mode-line-update))
1016 (defalias 'speedbar-make-overlay 'make-extent)
1017 (defalias 'speedbar-overlay-put 'set-extent-property)
1018 (defalias 'speedbar-delete-overlay 'delete-extent)
1019 (defalias 'speedbar-overlay-start 'extent-start)
1020 (defalias 'speedbar-overlay-end 'extent-end)
1021 (defalias 'speedbar-mode-line-update 'redraw-modeline))
1022 893
1023;;; Mode definitions/ user commands 894;;; Mode definitions/ user commands
1024;; 895;;
@@ -1034,132 +905,97 @@ supported at a time.
1034`speedbar-before-popup-hook' is called before popping up the speedbar frame. 905`speedbar-before-popup-hook' is called before popping up the speedbar frame.
1035`speedbar-before-delete-hook' is called before the frame is deleted." 906`speedbar-before-delete-hook' is called before the frame is deleted."
1036 (interactive "P") 907 (interactive "P")
1037 ;; toggle frame on and off. 908 ;; Get the buffer to play with
1038 (if (not arg) (if (and (frame-live-p speedbar-frame) 909 (if (not (buffer-live-p speedbar-buffer))
1039 (frame-visible-p speedbar-frame)) 910 (save-excursion
1040 (setq arg -1) (setq arg 1))) 911 (setq speedbar-buffer (get-buffer-create " SPEEDBAR"))
1041 ;; turn the frame off on neg number 912 (set-buffer speedbar-buffer)
1042 (if (and (numberp arg) (< arg 0)) 913 (speedbar-mode)))
1043 (progn 914 ;; Do the frame thing
1044 (run-hooks 'speedbar-before-delete-hook) 915 (dframe-frame-mode arg
1045 (if (and speedbar-frame (frame-live-p speedbar-frame)) 916 'speedbar-frame
1046 (progn 917 'speedbar-cached-frame
1047 (setq speedbar-cached-frame speedbar-frame) 918 'speedbar-buffer
1048 (make-frame-invisible speedbar-frame))) 919 "Speedbar"
1049 (setq speedbar-frame nil) 920 #'speedbar-frame-mode
1050 (speedbar-set-timer nil) 921 (if dframe-xemacsp
1051 ;; Used to delete the buffer. This has the annoying affect of 922 (append speedbar-frame-plist
1052 ;; preventing whatever took its place from ever appearing 923 ;; This is a hack to get speedbar to iconfiy
1053 ;; as the default after a C-x b was typed 924 ;; with the selected frame.
1054 ;;(if (bufferp speedbar-buffer) 925 (list 'parent (selected-frame)))
1055 ;; (kill-buffer speedbar-buffer)) 926 speedbar-frame-parameters)
1056 ) 927 speedbar-before-delete-hook
1057 ;; Set this as our currently attached frame 928 speedbar-before-popup-hook
1058 (setq speedbar-attached-frame (selected-frame)) 929 speedbar-after-create-hook)
1059 (run-hooks 'speedbar-before-popup-hook) 930 ;; Start up the timer
1060 ;; Get the frame to work in 931 (if (not speedbar-frame)
1061 (if (frame-live-p speedbar-cached-frame) 932 (speedbar-set-timer nil)
1062 (progn 933 (speedbar-reconfigure-keymaps)
1063 (setq speedbar-frame speedbar-cached-frame) 934 (speedbar-update-contents)
1064 (make-frame-visible speedbar-frame) 935 (speedbar-set-timer dframe-update-speed)
1065 ;; Get the buffer to play with 936 )
1066 (speedbar-mode) 937 ;; Frame modifications
1067 (select-frame speedbar-frame) 938 (set (make-local-variable 'dframe-delete-frame-function)
1068 (if (not (eq (current-buffer) speedbar-buffer)) 939 'speedbar-handle-delete-frame)
1069 (switch-to-buffer speedbar-buffer)) 940 ;; hscroll
1070 (set-window-dedicated-p (selected-window) t) 941 (set (make-local-variable 'automatic-hscrolling) nil) ; Emacs 21
1071 (raise-frame speedbar-frame) 942 ;; reset the selection variable
1072 (speedbar-set-timer speedbar-update-speed) 943 (setq speedbar-last-selected-file nil))
1073 ) 944
1074 (if (frame-live-p speedbar-frame) 945(defun speedbar-frame-reposition-smartly ()
1075 (raise-frame speedbar-frame) 946 "Reposition the speedbar frame to be next to the attached frame."
1076 (setq speedbar-frame 947 (cond ((and dframe-xemacsp
1077 (if speedbar-xemacsp 948 (or (member 'left speedbar-frame-plist)
1078 ;; Only guess height if it is not specified. 949 (member 'top speedbar-frame-plist)))
1079 (if (member 'height speedbar-frame-plist) 950 (dframe-reposition-frame
1080 (make-frame speedbar-frame-plist) 951 speedbar-frame
1081 (make-frame (nconc (list 'height 952 (dframe-attached-frame speedbar-frame)
1082 (speedbar-needed-height)) 953 (cons (car (cdr (member 'left speedbar-frame-plist)))
1083 speedbar-frame-plist))) 954 (car (cdr (member 'top speedbar-frame-plist)))))
1084 (let* ((mh (speedbar-frame-parameter nil 'menu-bar-lines)) 955 )
1085 (cfx (speedbar-frame-parameter nil 'left)) 956 ((and (not dframe-xemacsp)
1086 (cfy (speedbar-frame-parameter nil 'top)) 957 (or (assoc 'left speedbar-frame-parameters)
1087 (cfw (frame-pixel-width)) 958 (assoc 'top speedbar-frame-parameters)))
1088 (params 959 ;; if left/top were specified in the parameters, pass them
1089 ;; Only add a guessed height if one is not specified 960 ;; down to the reposition function
1090 ;; in the input parameters. 961 (dframe-reposition-frame
1091 (if (assoc 'height speedbar-frame-parameters) 962 speedbar-frame
1092 speedbar-frame-parameters 963 (dframe-attached-frame speedbar-frame)
1093 (append 964 (cons (cdr (assoc 'left speedbar-frame-parameters))
1094 speedbar-frame-parameters 965 (cdr (assoc 'top speedbar-frame-parameters))))
1095 (list (cons 'height (+ mh (frame-height))))))) 966 )
1096 (frame 967 (t
1097 (if (or (< emacs-major-version 20) 968 (dframe-reposition-frame speedbar-frame
1098 (not (eq window-system 'x))) 969 (dframe-attached-frame speedbar-frame)
1099 (make-frame params) 970 'left-right))))
1100 (let ((x-pointer-shape x-pointer-top-left-arrow) 971
1101 (x-sensitive-text-pointer-shape 972(defun speedbar-detach ()
1102 x-pointer-hand2)) 973 "Detach the current Speedbar from auto-updating.
1103 (make-frame params))))) 974Doing this allows the creation of a second speedbar."
1104 ;; Position speedbar frame. 975 (interactive)
1105 (if (or (not window-system) (eq window-system 'pc) 976 (let ((buffer speedbar-buffer))
1106 (assoc 'left speedbar-frame-parameters) 977 (dframe-detach 'speedbar-frame 'speedbar-cached-frame 'speedbar-buffer)
1107 (assoc 'top speedbar-frame-parameters)) 978 (save-excursion
1108 ;; Do no positioning if not on a windowing system, 979 (set-buffer buffer)
1109 ;; or if left/top were specified in the parameters. 980 ;; Permanently disable auto-updating in this speedbar buffer.
1110 frame 981 (set (make-local-variable 'speedbar-update-flag) nil)
1111 (let ((cfx 982 (set (make-local-variable 'speedbar-update-flag-disable) t)
1112 (if (not (consp cfx)) 983 ;; Make local copies of all the different variables to prevent
1113 cfx 984 ;; funny stuff later...
1114 ;; If cfx is a list, that means we grow 985 )))
1115 ;; from a specific edge of the display. 986
1116 ;; Convert that to the distance from the 987(defsubst speedbar-current-frame ()
1117 ;; left side of the display. 988 "Return the frame to use for speedbar based on current context."
1118 (if (eq (car cfx) '-) 989 (dframe-current-frame 'speedbar-frame 'speedbar-mode))
1119 ;; A - means distance from the right edge 990
1120 ;; of the display, or DW - cfx - framewidth 991(defun speedbar-handle-delete-frame (e)
1121 (- (x-display-pixel-width) (car (cdr cfx)) 992 "Handle a delete frame event E.
1122 (frame-pixel-width)) 993If the deleted frame is the frame SPEEDBAR is attached to,
1123 (car (cdr cfx)))))) 994we need to delete speedbar also."
1124 (modify-frame-parameters 995 (let ((frame-to-be-deleted (car (car (cdr e)))))
1125 frame 996 (if (eq frame-to-be-deleted dframe-attached-frame)
1126 (list 997 (delete-frame speedbar-frame)))
1127 (cons 998 )
1128 'left
1129 ;; Decide which side to put it
1130 ;; on. 200 is just a buffer
1131 ;; for the left edge of the
1132 ;; screen. The extra 10 is just
1133 ;; dressings for window decorations.
1134 (let ((sfw (frame-pixel-width frame)))
1135 (let ((left-guess (- cfx 10 sfw))
1136 (right-guess (+ cfx cfw 5)))
1137 (let ((left-margin left-guess)
1138 (right-margin
1139 (- (x-display-pixel-width)
1140 right-guess 5 sfw)))
1141 (cond ((>= left-margin 0) left-guess)
1142 ((>= right-margin 0) right-guess)
1143 ;; otherwise choose side we overlap less
1144 ((> left-margin right-margin) 0)
1145 (t (- (x-display-pixel-width) sfw 5)))))))
1146 (cons 'top cfy)))
1147 frame)))))
1148 ;; reset the selection variable
1149 (setq speedbar-last-selected-file nil)
1150 ;; Put the buffer into the frame
1151 (save-window-excursion
1152 ;; Get the buffer to play with
1153 (speedbar-mode)
1154 (select-frame speedbar-frame)
1155 (switch-to-buffer speedbar-buffer)
1156 (set-window-dedicated-p (selected-window) t))
1157 (if (and (or (null window-system) (eq window-system 'pc))
1158 (fboundp 'set-frame-name))
1159 (progn
1160 (select-frame speedbar-frame)
1161 (set-frame-name "Speedbar")))
1162 (speedbar-set-timer speedbar-update-speed)))))
1163 999
1164;;;###autoload 1000;;;###autoload
1165(defun speedbar-get-focus () 1001(defun speedbar-get-focus ()
@@ -1167,59 +1003,23 @@ supported at a time.
1167If the selected frame is not speedbar, then speedbar frame is 1003If the selected frame is not speedbar, then speedbar frame is
1168selected. If the speedbar frame is active, then select the attached frame." 1004selected. If the speedbar frame is active, then select the attached frame."
1169 (interactive) 1005 (interactive)
1170 (if (eq (selected-frame) speedbar-frame) 1006 (speedbar-reset-scanners)
1171 (if (frame-live-p speedbar-attached-frame) 1007 (dframe-get-focus 'speedbar-frame 'speedbar-frame-mode
1172 (select-frame speedbar-attached-frame)) 1008 (lambda () (let ((speedbar-update-flag t))
1173 ;; If updates are off, then refresh the frame (they want it now...) 1009 (speedbar-timer-fn)))))
1174 (if (not speedbar-update-flag)
1175 (let ((speedbar-update-flag t))
1176 (speedbar-timer-fn)))
1177 ;; make sure we have a frame
1178 (if (not (frame-live-p speedbar-frame)) (speedbar-frame-mode 1))
1179 ;; go there
1180 (select-frame speedbar-frame)
1181 )
1182 (other-frame 0))
1183
1184(defun speedbar-close-frame ()
1185 "Turn off a currently active speedbar."
1186 (interactive)
1187 (speedbar-frame-mode -1)
1188 (select-frame speedbar-attached-frame)
1189 (other-frame 0))
1190
1191(defun speedbar-switch-buffer-attached-frame (&optional buffer)
1192 "Switch to BUFFER in speedbar's attached frame, and raise that frame.
1193This overrides the default behavior of `switch-to-buffer' which is
1194broken because of the dedicated speedbar frame."
1195 (interactive)
1196 ;; Assume we are in the speedbar frame.
1197 (speedbar-get-focus)
1198 ;; Now switch buffers
1199 (if buffer
1200 (switch-to-buffer buffer)
1201 (call-interactively 'switch-to-buffer nil nil)))
1202 1010
1203(defmacro speedbar-frame-width () 1011(defmacro speedbar-frame-width ()
1204 "Return the width of the speedbar frame in characters. 1012 "Return the width of the speedbar frame in characters.
1205nil if it doesn't exist." 1013nil if it doesn't exist."
1206 '(frame-width speedbar-frame)) 1014 '(window-width (get-buffer-window speedbar-buffer)))
1207
1208;; XEmacs function only.
1209(defun speedbar-needed-height (&optional frame)
1210 "The needed height for the tool bar FRAME (in characters)."
1211 (or frame (setq frame (selected-frame)))
1212 ;; The 1 is the missing modeline/minibuffer
1213 (+ 1 (/ (frame-pixel-height frame)
1214 (face-height 'default frame))))
1215 1015
1216(defun speedbar-mode () 1016(defun speedbar-mode ()
1217 "Major mode for managing a display of directories and tags. 1017 "Major mode for managing a display of directories and tags.
1218\\<speedbar-key-map> 1018\\<speedbar-key-map>
1219The first line represents the default path of the speedbar frame. 1019The first line represents the default directory of the speedbar frame.
1220Each directory segment is a button which jumps speedbar's default 1020Each directory segment is a button which jumps speedbar's default
1221directory to that path. Buttons are activated by clicking `\\[speedbar-click]'. 1021directory to that directory. Buttons are activated by clicking `\\[speedbar-click]'.
1222In some situations using `\\[speedbar-power-click]' is a `power click' which will 1022In some situations using `\\[dframe-power-click]' is a `power click' which will
1223rescan cached items, or pop up new frames. 1023rescan cached items, or pop up new frames.
1224 1024
1225Each line starting with <+> represents a directory. Click on the <+> 1025Each line starting with <+> represents a directory. Click on the <+>
@@ -1255,7 +1055,6 @@ in the selected file.
1255\\{speedbar-key-map}" 1055\\{speedbar-key-map}"
1256 ;; NOT interactive 1056 ;; NOT interactive
1257 (save-excursion 1057 (save-excursion
1258 (setq speedbar-buffer (set-buffer (get-buffer-create " SPEEDBAR")))
1259 (kill-all-local-variables) 1058 (kill-all-local-variables)
1260 (setq major-mode 'speedbar-mode) 1059 (setq major-mode 'speedbar-mode)
1261 (setq mode-name "Speedbar") 1060 (setq mode-name "Speedbar")
@@ -1263,110 +1062,59 @@ in the selected file.
1263 (setq font-lock-keywords nil) ;; no font-locking please 1062 (setq font-lock-keywords nil) ;; no font-locking please
1264 (setq truncate-lines t) 1063 (setq truncate-lines t)
1265 (make-local-variable 'frame-title-format) 1064 (make-local-variable 'frame-title-format)
1266 (setq frame-title-format "Speedbar") 1065 (setq frame-title-format (concat "Speedbar " speedbar-version))
1267 ;; Set this up special just for the speedbar buffer 1066 (setq case-fold-search nil)
1268 ;; Terminal minibuffer stuff does not require this.
1269 (if (and window-system (not (eq window-system 'pc))
1270 (null default-minibuffer-frame))
1271 (progn
1272 (make-local-variable 'default-minibuffer-frame)
1273 (setq default-minibuffer-frame speedbar-attached-frame)))
1274 ;; Correct use of `temp-buffer-show-function': Bob Weiner
1275 (if (and (boundp 'temp-buffer-show-hook)
1276 (boundp 'temp-buffer-show-function))
1277 (progn (make-local-variable 'temp-buffer-show-hook)
1278 (setq temp-buffer-show-hook temp-buffer-show-function)))
1279 (make-local-variable 'temp-buffer-show-function)
1280 (setq temp-buffer-show-function 'speedbar-temp-buffer-show-function)
1281 (if speedbar-xemacsp
1282 (progn
1283 ;; Argh! mouse-track-click-hook doesn't understand the
1284 ;; make-local-hook conventions.
1285 (make-local-variable 'mouse-track-click-hook)
1286 (add-hook 'mouse-track-click-hook
1287 (lambda (event count)
1288 (if (/= (event-button event) 1)
1289 nil ; Do normal operations.
1290 (cond ((eq count 1)
1291 (speedbar-quick-mouse event))
1292 ((or (eq count 2)
1293 (eq count 3))
1294 (speedbar-mouse-set-point event)
1295 (speedbar-do-function-pointer)
1296 (speedbar-quick-mouse event)))
1297 ;; Don't do normal operations.
1298 t)))))
1299 (add-hook 'kill-buffer-hook (lambda () (let ((skilling (boundp 'skilling)))
1300 (if skilling
1301 nil
1302 (if (eq (current-buffer)
1303 speedbar-buffer)
1304 (speedbar-frame-mode -1)))))
1305 t t)
1306 (toggle-read-only 1) 1067 (toggle-read-only 1)
1307 (speedbar-set-mode-line-format) 1068 (speedbar-set-mode-line-format)
1308 (if speedbar-xemacsp 1069 ;; Add in our dframe hooks.
1309 (with-no-warnings 1070 (if speedbar-track-mouse-flag
1310 (set (make-local-variable 'mouse-motion-handler) 1071 (setq dframe-track-mouse-function #'speedbar-track-mouse))
1311 'speedbar-track-mouse-xemacs)) 1072 (setq dframe-help-echo-function #'speedbar-item-info
1312 (if speedbar-track-mouse-flag 1073 dframe-mouse-click-function #'speedbar-click
1313 (set (make-local-variable 'track-mouse) t)) ;this could be messy. 1074 dframe-mouse-position-function #'speedbar-position-cursor-on-line)
1314 (setq auto-show-mode nil)) ;no auto-show for Emacs 1075 (run-hooks 'speedbar-mode-hook))
1315 (run-mode-hooks 'speedbar-mode-hook))
1316 (speedbar-update-contents)
1317 speedbar-buffer) 1076 speedbar-buffer)
1318 1077
1319(defmacro speedbar-with-attached-buffer (&rest forms) 1078(defmacro speedbar-message (fmt &rest args)
1320 "Execute FORMS in the attached frame's special buffer.
1321Optionally select that frame if necessary."
1322 `(save-selected-window
1323 (speedbar-set-timer speedbar-update-speed)
1324 (select-frame speedbar-attached-frame)
1325 ,@forms
1326 (speedbar-maybee-jump-to-attached-frame)))
1327
1328(defun speedbar-message (fmt &rest args)
1329 "Like message, but for use in the speedbar frame. 1079 "Like message, but for use in the speedbar frame.
1330Argument FMT is the format string, and ARGS are the arguments for message." 1080Argument FMT is the format string, and ARGS are the arguments for message."
1331 (save-selected-window 1081 `(dframe-message ,fmt ,@args))
1332 (select-frame speedbar-attached-frame)
1333 (apply 'message fmt args)))
1334 1082
1335(defun speedbar-y-or-n-p (prompt) 1083(defsubst speedbar-y-or-n-p (prompt &optional deleting)
1336 "Like `y-or-n-p', but for use in the speedbar frame. 1084 "Like `y-or-n-p', but for use in the speedbar frame.
1337Argument PROMPT is the prompt to use." 1085Argument PROMPT is the prompt to use.
1338 (save-selected-window 1086Optional argument DELETING means this is a query that will delete something.
1339 (if (and default-minibuffer-frame (not (eq default-minibuffer-frame 1087The variable `speedbar-query-confirmation-method' can cause this to
1340 speedbar-attached-frame))) 1088return true without a query."
1341 (select-frame speedbar-attached-frame)) 1089 (or (and (not deleting)
1342 (y-or-n-p prompt))) 1090 (eq speedbar-query-confirmation-method 'none-but-delete))
1343 1091 (dframe-y-or-n-p prompt)))
1344(defun speedbar-show-info-under-mouse (&optional event) 1092
1345 "Call the info function for the line under the mouse. 1093(defsubst speedbar-select-attached-frame ()
1346Optional EVENT is currently not used." 1094 "Select the frame attached to this speedbar."
1347 (let ((pos (mouse-position))) ; we ignore event until I use it later. 1095 (dframe-select-attached-frame (speedbar-current-frame)))
1348 (if (equal (car pos) speedbar-frame) 1096
1349 (save-excursion 1097;; Backwards compatibility
1350 (save-window-excursion 1098(defalias 'speedbar-with-attached-buffer 'dframe-with-attached-buffer)
1351 (apply 'set-mouse-position (list (car pos) (cadr pos) (cddr pos))) 1099(defalias 'speedbar-maybee-jump-to-attached-frame 'dframe-maybee-jump-to-attached-frame)
1352 (speedbar-item-info)))))) 1100
1353
1354(defun speedbar-set-mode-line-format () 1101(defun speedbar-set-mode-line-format ()
1355 "Set the format of the mode line based on the current speedbar environment. 1102 "Set the format of the mode line based on the current speedbar environment.
1356This gives visual indications of what is up. It EXPECTS the speedbar 1103This gives visual indications of what is up. It EXPECTS the speedbar
1357frame and window to be the currently active frame and window." 1104frame and window to be the currently active frame and window."
1358 (if (and (frame-live-p speedbar-frame) 1105 (if (and (frame-live-p (speedbar-current-frame))
1359 (or (not speedbar-xemacsp) 1106 (or (not dframe-xemacsp)
1360 (with-no-warnings 1107 (with-no-warnings
1361 (specifier-instance has-modeline-p)))) 1108 (specifier-instance has-modeline-p)))
1362 (save-excursion 1109 speedbar-buffer) (save-excursion
1363 (set-buffer speedbar-buffer) 1110 (set-buffer speedbar-buffer)
1364 (let* ((w (or (speedbar-frame-width) 20)) 1111 (let* ((w (or (speedbar-frame-width) 20))
1365 (p1 "<<") 1112 (p1 "<<")
1366 (p5 ">>") 1113 (p5 ">>")
1367 (p3 (if speedbar-update-flag "SPEEDBAR" "SLOWBAR")) 1114 (p3 (if speedbar-update-flag "#" "!"))
1368 (blank (- w (length p1) (length p3) (length p5) 1115 (p35 (capitalize speedbar-initial-expansion-list-name))
1369 (if line-number-mode 4 0))) 1116 (blank (- w (length p1) (length p3) (length p5) (length p35)
1117 (if line-number-mode 5 1)))
1370 (p2 (if (> blank 0) 1118 (p2 (if (> blank 0)
1371 (make-string (/ blank 2) ? ) 1119 (make-string (/ blank 2) ? )
1372 "")) 1120 ""))
@@ -1375,7 +1123,7 @@ frame and window to be the currently active frame and window."
1375 "")) 1123 ""))
1376 (tf 1124 (tf
1377 (if line-number-mode 1125 (if line-number-mode
1378 (list (concat p1 p2 p3) '(line-number-mode " %3l") 1126 (list (concat p1 p2 p3 " " p35) '(line-number-mode " %3l")
1379 (concat p4 p5)) 1127 (concat p4 p5))
1380 (list (concat p1 p2 p3 p4 p5))))) 1128 (list (concat p1 p2 p3 p4 p5)))))
1381 (if (not (equal mode-line-format tf)) 1129 (if (not (equal mode-line-format tf))
@@ -1383,23 +1131,6 @@ frame and window to be the currently active frame and window."
1383 (setq mode-line-format tf) 1131 (setq mode-line-format tf)
1384 (speedbar-mode-line-update))))))) 1132 (speedbar-mode-line-update)))))))
1385 1133
1386(defun speedbar-temp-buffer-show-function (buffer)
1387 "Placed in the variable `temp-buffer-show-function' in `speedbar-mode'.
1388If a user requests help using \\[help-command] <Key> the temp BUFFER will be
1389redirected into a window on the attached frame."
1390 (if speedbar-attached-frame (select-frame speedbar-attached-frame))
1391 (pop-to-buffer buffer nil)
1392 (other-window -1)
1393 ;; Fix for using this hook on some platforms: Bob Weiner
1394 (cond ((not speedbar-xemacsp)
1395 (run-hooks 'temp-buffer-show-hook))
1396 ((fboundp 'run-hook-with-args)
1397 (run-hook-with-args 'temp-buffer-show-hook buffer))
1398 ((and (boundp 'temp-buffer-show-hook)
1399 (listp temp-buffer-show-hook))
1400 (mapcar (function (lambda (hook) (funcall hook buffer)))
1401 temp-buffer-show-hook))))
1402
1403(defvar speedbar-previous-menu nil 1134(defvar speedbar-previous-menu nil
1404 "The menu before the last `speedbar-reconfigure-keymaps' was called.") 1135 "The menu before the last `speedbar-reconfigure-keymaps' was called.")
1405 1136
@@ -1413,7 +1144,7 @@ and the existence of packages."
1413 ;; file display mode version 1144 ;; file display mode version
1414 (speedbar-initial-menu) 1145 (speedbar-initial-menu)
1415 (save-excursion 1146 (save-excursion
1416 (select-frame speedbar-attached-frame) 1147 (dframe-select-attached-frame speedbar-frame)
1417 (if (local-variable-p 1148 (if (local-variable-p
1418 'speedbar-easymenu-definition-special 1149 'speedbar-easymenu-definition-special
1419 (current-buffer)) 1150 (current-buffer))
@@ -1432,7 +1163,11 @@ and the existence of packages."
1432 (list 1163 (list
1433 'speedbar-change-initial-expansion-list 1164 'speedbar-change-initial-expansion-list
1434 (car (car alist))) 1165 (car (car alist)))
1435 t) 1166 :style 'radio
1167 :selected
1168 `(string= ,(car (car alist))
1169 speedbar-initial-expansion-list-name)
1170 )
1436 displays)) 1171 displays))
1437 (setq alist (cdr alist))) 1172 (setq alist (cdr alist)))
1438 displays))) 1173 displays)))
@@ -1441,7 +1176,7 @@ and the existence of packages."
1441 (localmap (save-excursion 1176 (localmap (save-excursion
1442 (let ((cf (selected-frame))) 1177 (let ((cf (selected-frame)))
1443 (prog2 1178 (prog2
1444 (select-frame speedbar-attached-frame) 1179 (dframe-select-attached-frame speedbar-frame)
1445 (if (local-variable-p 1180 (if (local-variable-p
1446 'speedbar-special-mode-key-map 1181 'speedbar-special-mode-key-map
1447 (current-buffer)) 1182 (current-buffer))
@@ -1458,129 +1193,51 @@ and the existence of packages."
1458 (if speedbar-previous-menu (easy-menu-remove speedbar-previous-menu)) 1193 (if speedbar-previous-menu (easy-menu-remove speedbar-previous-menu))
1459 (setq speedbar-previous-menu md) 1194 (setq speedbar-previous-menu md)
1460 ;; Now add the new menu 1195 ;; Now add the new menu
1461 (if (not speedbar-xemacsp) 1196 (if (not dframe-xemacsp)
1462 (easy-menu-define speedbar-menu-map (current-local-map) 1197 (easy-menu-define speedbar-menu-map (current-local-map)
1463 "Speedbar menu" md) 1198 "Speedbar menu" md)
1464 (easy-menu-add md (current-local-map)) 1199 (easy-menu-add md (current-local-map))
1465 (set-buffer-menubar (list md)))) 1200 ;; XEmacs-specific:
1201 (if (fboundp 'set-buffer-menubar)
1202 (set-buffer-menubar (list md)))))
1203
1466 (run-hooks 'speedbar-reconfigure-keymaps-hook))) 1204 (run-hooks 'speedbar-reconfigure-keymaps-hook)))
1467 1205
1468 1206
1469;;; User Input stuff 1207;;; User Input stuff
1470;; 1208;;
1471
1472;; XEmacs: this can be implemented using modeline keymaps, but there
1473;; is no use, as we have horizontal scrollbar (as the docstring
1474;; hints.)
1475(defun speedbar-mouse-hscroll (e)
1476 "Read a mouse event E from the mode line, and horizontally scroll.
1477If the mouse is being clicked on the far left, or far right of the
1478mode-line. This is only useful for non-XEmacs."
1479 (interactive "e")
1480 (let* ((xp (car (nth 2 (car (cdr e)))))
1481 (cpw (/ (frame-pixel-width)
1482 (frame-width)))
1483 (oc (1+ (/ xp cpw)))
1484 )
1485 (cond ((< oc 3)
1486 (scroll-left 2))
1487 ((> oc (- (window-width) 3))
1488 (scroll-right 2))
1489 (t (speedbar-message
1490 "Click on the edge of the modeline to scroll left/right")))
1491 ;;(speedbar-message "X: Pixel %d Char Pixels %d On char %d" xp cpw oc)
1492 ))
1493
1494(defun speedbar-customize () 1209(defun speedbar-customize ()
1495 "Customize speedbar using the Custom package." 1210 "Customize speedbar using the Custom package."
1496 (interactive) 1211 (interactive)
1497 (let ((sf (selected-frame))) 1212 (let ((sf (selected-frame)))
1498 (select-frame speedbar-attached-frame) 1213 (dframe-select-attached-frame speedbar-frame)
1499 (customize-group 'speedbar) 1214 (customize-group 'speedbar)
1500 (select-frame sf)) 1215 (select-frame sf))
1501 (speedbar-maybee-jump-to-attached-frame)) 1216 (dframe-maybee-jump-to-attached-frame))
1502 1217
1503(defun speedbar-track-mouse (event) 1218(defun speedbar-track-mouse (event)
1504 "For motion EVENT, display info about the current line." 1219 "For motion EVENT, display info about the current line."
1505 (interactive "e")
1506 (if (not speedbar-track-mouse-flag) 1220 (if (not speedbar-track-mouse-flag)
1507 nil 1221 nil
1508 (save-excursion 1222 (save-excursion
1509 (let ((char (nth 1 (car (cdr event))))) 1223 (save-window-excursion
1510 (if (not (numberp char)) 1224 (condition-case nil
1511 (speedbar-message nil) 1225 (progn
1512 (goto-char char) 1226 (mouse-set-point event)
1513 ;; (speedbar-message "%S" event) 1227 (if (eq major-mode 'speedbar-mode)
1514 (speedbar-item-info) 1228 ;; XEmacs may let us get in here in other mode buffers.
1515 ))))) 1229 (speedbar-item-info)))
1516 1230 (t (speedbar-message nil)))))))
1517(defun speedbar-track-mouse-xemacs (event) 1231
1518 "For motion EVENT, display info about the current line." 1232(defun speedbar-show-info-under-mouse ()
1519 (if (functionp (default-value 'mouse-motion-handler)) 1233 "Call the info function for the line under the mouse.
1520 (funcall (default-value 'mouse-motion-handler) event)) 1234Optional EVENT is currently not used."
1521 (if speedbar-track-mouse-flag 1235 (let ((pos (mouse-position))) ; we ignore event until I use it later.
1522 (save-excursion 1236 (if (equal (car pos) speedbar-frame)
1523 (save-window-excursion
1524 (condition-case ()
1525 (progn (mouse-set-point event)
1526 ;; Prevent focus-related bugs.
1527 (if (eq major-mode 'speedbar-mode)
1528 (speedbar-item-info)))
1529 (error nil))))))
1530
1531;; In XEmacs, we make popup menus work on the item over mouse (as
1532;; opposed to where the point happens to be.) We attain this by
1533;; temporarily moving the point to that place.
1534;; Hrvoje Niksic <hniksic@srce.hr>
1535(defun speedbar-xemacs-popup-kludge (event)
1536 "Pop up a menu related to the clicked on item.
1537Must be bound to EVENT."
1538 (interactive "e")
1539 (select-frame speedbar-frame)
1540 (save-excursion
1541 (goto-char (event-closest-point event))
1542 (beginning-of-line)
1543 (forward-char (min 5 (- (save-excursion (end-of-line) (point))
1544 (save-excursion (beginning-of-line) (point)))))
1545 (popup-mode-menu)
1546 ;; Wait for menu to bail out. `popup-mode-menu' (and other popup
1547 ;; menu functions) return immediately.
1548 (let (new)
1549 (while (not (misc-user-event-p (setq new (next-event))))
1550 (dispatch-event new))
1551 (dispatch-event new))))
1552
1553(defun speedbar-emacs-popup-kludge (e)
1554 "Pop up a menu related to the clicked on item.
1555Must be bound to event E."
1556 (interactive "e")
1557 (save-excursion
1558 (mouse-set-point e)
1559 ;; This gets the cursor where the user can see it.
1560 (if (not (bolp)) (forward-char -1))
1561 (sit-for 0)
1562 (mouse-major-mode-menu e nil)))
1563
1564(defun speedbar-hack-buffer-menu (e)
1565 "Control mouse 1 is buffer menu.
1566This hack overrides it so that the right thing happens in the main
1567Emacs frame, not in the speedbar frame.
1568Argument E is the event causing this activity."
1569 (interactive "e")
1570 (let ((fn (lookup-key global-map (if speedbar-xemacsp
1571 '(control button1)
1572 [C-down-mouse-1])))
1573 (newbuff nil))
1574 (unwind-protect
1575 (save-excursion 1237 (save-excursion
1576 (set-window-dedicated-p (selected-window) nil) 1238 (save-window-excursion
1577 (call-interactively fn) 1239 (apply 'set-mouse-position pos)
1578 (setq newbuff (current-buffer))) 1240 (speedbar-item-info))))))
1579 (switch-to-buffer speedbar-buffer)
1580 (set-window-dedicated-p (selected-window) t))
1581 (if (not (eq newbuff speedbar-buffer))
1582 (speedbar-with-attached-buffer
1583 (switch-to-buffer newbuff)))))
1584 1241
1585(defun speedbar-next (arg) 1242(defun speedbar-next (arg)
1586 "Move to the next ARGth line in a speedbar buffer." 1243 "Move to the next ARGth line in a speedbar buffer."
@@ -1602,16 +1259,16 @@ of intermediate nodes are skipped."
1602 ;; First find the extent for which we are allowed to move. 1259 ;; First find the extent for which we are allowed to move.
1603 (let ((depth (save-excursion (beginning-of-line) 1260 (let ((depth (save-excursion (beginning-of-line)
1604 (if (looking-at "[0-9]+:") 1261 (if (looking-at "[0-9]+:")
1605 (string-to-int (match-string 0)) 1262 (string-to-number (match-string 0))
1606 0))) 1263 0)))
1607 (crement (if (< arg 0) 1 -1)) ; decrement or increment 1264 (crement (if (< arg 0) 1 -1)) ; decrement or increment
1608 (lastmatch (point))) 1265 (lastmatch (point)))
1609 (while (/= arg 0) 1266 (while (/= arg 0)
1610 (forward-line (- crement)) 1267 (forward-line (- crement))
1611 (let ((subdepth (save-excursion (beginning-of-line) 1268 (let ((subdepth (save-excursion (beginning-of-line)
1612 (if (looking-at "[0-9]+:") 1269 (if (looking-at "[0-9]+:")
1613 (string-to-int (match-string 0)) 1270 (string-to-number (match-string 0))
1614 0)))) 1271 0))))
1615 (cond ((or (< subdepth depth) 1272 (cond ((or (< subdepth depth)
1616 (progn (end-of-line) (eobp)) 1273 (progn (end-of-line) (eobp))
1617 (progn (beginning-of-line) (bobp))) 1274 (progn (beginning-of-line) (bobp)))
@@ -1632,7 +1289,6 @@ of intermediate nodes are skipped."
1632 (speedbar-restricted-move (or arg 1)) 1289 (speedbar-restricted-move (or arg 1))
1633 (speedbar-item-info)) 1290 (speedbar-item-info))
1634 1291
1635
1636(defun speedbar-restricted-prev (arg) 1292(defun speedbar-restricted-prev (arg)
1637 "Move to the previous ARGth line in a speedbar buffer at the same depth. 1293 "Move to the previous ARGth line in a speedbar buffer at the same depth.
1638This means that movement is restricted to a subnode, and that siblings 1294This means that movement is restricted to a subnode, and that siblings
@@ -1691,11 +1347,14 @@ Assumes that the current buffer is the speedbar buffer."
1691 1347
1692;;; Speedbar file activity (aka creeping featurism) 1348;;; Speedbar file activity (aka creeping featurism)
1693;; 1349;;
1694(defun speedbar-refresh () 1350(defun speedbar-refresh (&optional arg)
1695 "Refresh the current speedbar display, disposing of any cached data." 1351 "Refresh the current speedbar display, disposing of any cached data.
1696 (interactive) 1352Argument ARG represents to force a refresh past any caches that may exist."
1353 (interactive "P")
1697 (let ((dl speedbar-shown-directories) 1354 (let ((dl speedbar-shown-directories)
1355 (dframe-power-click arg)
1698 deactivate-mark) 1356 deactivate-mark)
1357 ;; We need to hack something so this works in detached frames.
1699 (while dl 1358 (while dl
1700 (adelete 'speedbar-directory-contents-alist (car dl)) 1359 (adelete 'speedbar-directory-contents-alist (car dl))
1701 (setq dl (cdr dl))) 1360 (setq dl (cdr dl)))
@@ -1704,7 +1363,7 @@ Assumes that the current buffer is the speedbar buffer."
1704 (speedbar-update-contents) 1363 (speedbar-update-contents)
1705 (speedbar-stealthy-updates) 1364 (speedbar-stealthy-updates)
1706 ;; Reset the timer in case it got really hosed for some reason... 1365 ;; Reset the timer in case it got really hosed for some reason...
1707 (speedbar-set-timer speedbar-update-speed) 1366 (speedbar-set-timer dframe-update-speed)
1708 (if (<= 1 speedbar-verbosity-level) 1367 (if (<= 1 speedbar-verbosity-level)
1709 (speedbar-message "Refreshing speedbar...done")))) 1368 (speedbar-message "Refreshing speedbar...done"))))
1710 1369
@@ -1727,7 +1386,7 @@ Assumes that the current buffer is the speedbar buffer."
1727 (sf (selected-frame))) 1386 (sf (selected-frame)))
1728 (if (and (file-exists-p f) (string-match "\\.el\\'" f)) 1387 (if (and (file-exists-p f) (string-match "\\.el\\'" f))
1729 (progn 1388 (progn
1730 (select-frame speedbar-attached-frame) 1389 (dframe-select-attached-frame speedbar-frame)
1731 (byte-compile-file f nil) 1390 (byte-compile-file f nil)
1732 (select-frame sf) 1391 (select-frame sf)
1733 (speedbar-reset-scanners))) 1392 (speedbar-reset-scanners)))
@@ -1779,13 +1438,22 @@ nil if not applicable."
1779 (beginning-of-line) 1438 (beginning-of-line)
1780 (if (re-search-forward " [-+=]?> \\([^\n]+\\)" 1439 (if (re-search-forward " [-+=]?> \\([^\n]+\\)"
1781 (save-excursion(end-of-line)(point)) t) 1440 (save-excursion(end-of-line)(point)) t)
1782 (let ((tag (match-string 1)) 1441 (let* ((tag (match-string 1))
1783 (attr (speedbar-line-token)) 1442 (attr (speedbar-line-token))
1784 (item nil)) 1443 (item nil)
1785 (if (and (featurep 'semantic) (semantic-token-p attr)) 1444 (semantic-tagged (if (fboundp 'semantic-tag-p)
1786 (speedbar-message (semantic-summerize-nonterminal attr)) 1445 (semantic-tag-p attr))))
1446 (if semantic-tagged
1447 (with-no-warnings
1448 (save-excursion
1449 (when (and (semantic-tag-overlay attr)
1450 (semantic-tag-buffer attr))
1451 (set-buffer (semantic-tag-buffer attr)))
1452 (speedbar-message
1453 (funcall semantic-sb-info-format-tag-function attr)
1454 )))
1787 (looking-at "\\([0-9]+\\):") 1455 (looking-at "\\([0-9]+\\):")
1788 (setq item (file-name-nondirectory (speedbar-line-path))) 1456 (setq item (file-name-nondirectory (speedbar-line-directory)))
1789 (speedbar-message "Tag: %s in %s" tag item))) 1457 (speedbar-message "Tag: %s in %s" tag item)))
1790 (if (re-search-forward "{[+-]} \\([^\n]+\\)$" 1458 (if (re-search-forward "{[+-]} \\([^\n]+\\)$"
1791 (save-excursion(end-of-line)(point)) t) 1459 (save-excursion(end-of-line)(point)) t)
@@ -1793,27 +1461,32 @@ nil if not applicable."
1793 (if (re-search-forward " [+-]?[()|@] \\([^\n]+\\)$" nil t) 1461 (if (re-search-forward " [+-]?[()|@] \\([^\n]+\\)$" nil t)
1794 (let* ((detailtext (match-string 1)) 1462 (let* ((detailtext (match-string 1))
1795 (detail (or (speedbar-line-token) detailtext)) 1463 (detail (or (speedbar-line-token) detailtext))
1796 (parent (save-excursion 1464 (parent (save-excursion
1797 (beginning-of-line) 1465 (beginning-of-line)
1798 (let ((dep (if (looking-at "[0-9]+:") 1466 (let ((dep (if (looking-at "[0-9]+:")
1799 (1- (string-to-int (match-string 0))) 1467 (1- (string-to-number (match-string 0)))
1800 0))) 1468 0)))
1801 (re-search-backward (concat "^" 1469 (re-search-backward (concat "^"
1802 (int-to-string dep) 1470 (int-to-string dep)
1803 ":") 1471 ":")
1804 nil t)) 1472 nil t))
1805 (if (looking-at "[0-9]+: +[-+=>]> \\([^\n]+\\)$") 1473 (if (looking-at "[0-9]+: +[-+=>]> \\([^\n]+\\)$")
1806 (speedbar-line-token) 1474 (speedbar-line-token)
1807 nil)))) 1475 nil))))
1808 (if (and (featurep 'semantic) (semantic-token-p detail)) 1476 (if (featurep 'semantic)
1809 (speedbar-message 1477 (with-no-warnings
1810 (semantic-summerize-nonterminal detail parent)) 1478 (if (semantic-tag-p detail)
1479 (speedbar-message
1480 (funcall semantic-sb-info-format-tag-function detail parent))
1481 (if parent
1482 (speedbar-message "Detail: %s of tag %s" detail
1483 (if (semantic-tag-p parent)
1484 (semantic-format-tag-name parent nil t)
1485 parent))
1486 (speedbar-message "Detail: %s" detail))))
1487 ;; Not using `semantic':
1811 (if parent 1488 (if parent
1812 (speedbar-message "Detail: %s of tag %s" detail 1489 (speedbar-message "Detail: %s of tag %s" detail parent)
1813 (if (and (featurep 'semantic)
1814 (semantic-token-p parent))
1815 (semantic-token-name parent)
1816 parent))
1817 (speedbar-message "Detail: %s" detail)))) 1490 (speedbar-message "Detail: %s" detail))))
1818 nil))))) 1491 nil)))))
1819 1492
@@ -1845,7 +1518,8 @@ Files can be copied to new names or places."
1845 (if (string-match "[/\\]$" rt) "" "/") 1518 (if (string-match "[/\\]$" rt) "" "/")
1846 (file-name-nondirectory f)))) 1519 (file-name-nondirectory f))))
1847 (if (or (not (file-exists-p rt)) 1520 (if (or (not (file-exists-p rt))
1848 (speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f))) 1521 (speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f)
1522 t))
1849 (progn 1523 (progn
1850 (copy-file f rt t t) 1524 (copy-file f rt t t)
1851 ;; refresh display if the new place is currently displayed. 1525 ;; refresh display if the new place is currently displayed.
@@ -1874,7 +1548,8 @@ Files can be renamed to new names or moved to new directories."
1874 (if (string-match "[/\\]\\'" rt) "" "/") 1548 (if (string-match "[/\\]\\'" rt) "" "/")
1875 (file-name-nondirectory f)))) 1549 (file-name-nondirectory f))))
1876 (if (or (not (file-exists-p rt)) 1550 (if (or (not (file-exists-p rt))
1877 (speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f))) 1551 (speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f)
1552 t))
1878 (progn 1553 (progn
1879 (rename-file f rt t) 1554 (rename-file f rt t)
1880 ;; refresh display if the new place is currently displayed. 1555 ;; refresh display if the new place is currently displayed.
@@ -1885,12 +1560,27 @@ Files can be renamed to new names or moved to new directories."
1885 ))))) 1560 )))))
1886 (error "Not a file")))) 1561 (error "Not a file"))))
1887 1562
1563(defun speedbar-create-directory ()
1564 "Create a directory in speedbar."
1565 (interactive)
1566 (let ((f (speedbar-line-file)))
1567 (if f
1568 (let* ((basedir (file-name-directory f))
1569 (nd (read-file-name "Create directory: "
1570 basedir)))
1571 ;; Make the directory
1572 (make-directory nd t)
1573 (speedbar-refresh)
1574 (speedbar-goto-this-file nd)
1575 )
1576 (error "Not a file"))))
1577
1888(defun speedbar-item-delete () 1578(defun speedbar-item-delete ()
1889 "Delete the item under the cursor. Files are removed from disk." 1579 "Delete the item under the cursor. Files are removed from disk."
1890 (interactive) 1580 (interactive)
1891 (let ((f (speedbar-line-file))) 1581 (let ((f (speedbar-line-file)))
1892 (if (not f) (error "Not a file")) 1582 (if (not f) (error "Not a file"))
1893 (if (speedbar-y-or-n-p (format "Delete %s? " f)) 1583 (if (speedbar-y-or-n-p (format "Delete %s? " f) t)
1894 (progn 1584 (progn
1895 (if (file-directory-p f) 1585 (if (file-directory-p f)
1896 (delete-directory f) 1586 (delete-directory f)
@@ -1915,7 +1605,7 @@ variable `speedbar-obj-alist'."
1915 (setq oa (cdr oa))) 1605 (setq oa (cdr oa)))
1916 (setq obj (concat (file-name-sans-extension f) (cdr (car oa)))) 1606 (setq obj (concat (file-name-sans-extension f) (cdr (car oa))))
1917 (if (and oa (file-exists-p obj) 1607 (if (and oa (file-exists-p obj)
1918 (speedbar-y-or-n-p (format "Delete %s? " obj))) 1608 (speedbar-y-or-n-p (format "Delete %s? " obj) t))
1919 (progn 1609 (progn
1920 (delete-file obj) 1610 (delete-file obj)
1921 (speedbar-reset-scanners))))) 1611 (speedbar-reset-scanners)))))
@@ -1925,7 +1615,7 @@ variable `speedbar-obj-alist'."
1925 (interactive) 1615 (interactive)
1926 (setq speedbar-update-flag t) 1616 (setq speedbar-update-flag t)
1927 (speedbar-set-mode-line-format) 1617 (speedbar-set-mode-line-format)
1928 (speedbar-set-timer speedbar-update-speed)) 1618 (speedbar-set-timer dframe-update-speed))
1929 1619
1930(defun speedbar-disable-update () 1620(defun speedbar-disable-update ()
1931 "Disable automatic updating and stop consuming resources." 1621 "Disable automatic updating and stop consuming resources."
@@ -1942,13 +1632,14 @@ variable `speedbar-obj-alist'."
1942 (speedbar-enable-update))) 1632 (speedbar-enable-update)))
1943 1633
1944(defun speedbar-toggle-images () 1634(defun speedbar-toggle-images ()
1945 "Toggle images for the speedbar frame." 1635 "Toggle use of images in the speedbar frame.
1636Images are not available in Emacs 20 or earlier."
1946 (interactive) 1637 (interactive)
1947 (setq speedbar-use-images (not speedbar-use-images)) 1638 (setq speedbar-use-images (not speedbar-use-images))
1948 (speedbar-refresh)) 1639 (speedbar-refresh))
1949 1640
1950(defun speedbar-toggle-sorting () 1641(defun speedbar-toggle-sorting ()
1951 "Toggle sorting for the speedbar frame." 1642 "Toggle tag sorting."
1952 (interactive) 1643 (interactive)
1953 (setq speedbar-sort-tags (not speedbar-sort-tags))) 1644 (setq speedbar-sort-tags (not speedbar-sort-tags)))
1954 1645
@@ -1957,61 +1648,6 @@ variable `speedbar-obj-alist'."
1957 (interactive) 1648 (interactive)
1958 (setq speedbar-show-unknown-files (not speedbar-show-unknown-files)) 1649 (setq speedbar-show-unknown-files (not speedbar-show-unknown-files))
1959 (speedbar-refresh)) 1650 (speedbar-refresh))
1960
1961;;; Utility functions
1962;;
1963(defun speedbar-set-timer (timeout)
1964 "Apply a timer with TIMEOUT, or remove a timer if TIMEOUT is nil.
1965TIMEOUT is the number of seconds until the speedbar timer is called
1966again. When TIMEOUT is nil, turn off all timeouts.
1967This function will also enable or disable the `vc-checkin-hook' used
1968to track file check ins, and will change the mode line to match
1969`speedbar-update-flag'."
1970 (cond
1971 ;; XEmacs
1972 (speedbar-xemacsp
1973 (if speedbar-timer
1974 (progn (delete-itimer speedbar-timer)
1975 (setq speedbar-timer nil)))
1976 (if timeout
1977 (if (and speedbar-xemacsp
1978 (or (>= emacs-major-version 20)
1979 (>= emacs-minor-version 15)))
1980 (setq speedbar-timer (start-itimer "speedbar"
1981 'speedbar-timer-fn
1982 timeout
1983 timeout
1984 t))
1985 (setq speedbar-timer (start-itimer "speedbar"
1986 'speedbar-timer-fn
1987 timeout
1988 nil)))))
1989 ;; Post 19.31 Emacs
1990 ((fboundp 'run-with-idle-timer)
1991 (if speedbar-timer
1992 (progn (cancel-timer speedbar-timer)
1993 (setq speedbar-timer nil)))
1994 (if timeout
1995 (setq speedbar-timer
1996 (run-with-idle-timer timeout t 'speedbar-timer-fn))))
1997 ;; Emacs 19.30 (Thanks twice: ptype@dra.hmg.gb)
1998 ((fboundp 'post-command-idle-hook)
1999 (if timeout
2000 (add-hook 'post-command-idle-hook 'speedbar-timer-fn)
2001 (remove-hook 'post-command-idle-hook 'speedbar-timer-fn)))
2002 ;; Older or other Emacsen with no timers. Set up so that its
2003 ;; obvious this emacs can't handle the updates
2004 (t
2005 (setq speedbar-update-flag nil)))
2006 ;; Apply a revert hook that will reset the scanners. We attach to revert
2007 ;; because most reverts occur during VC state change, and this lets our
2008 ;; VC scanner fix itself.
2009 (if timeout
2010 (add-hook 'after-revert-hook 'speedbar-reset-scanners)
2011 (remove-hook 'after-revert-hook 'speedbar-reset-scanners)
2012 )
2013 ;; change this if it changed for some reason
2014 (speedbar-set-mode-line-format))
2015 1651
2016(defmacro speedbar-with-writable (&rest forms) 1652(defmacro speedbar-with-writable (&rest forms)
2017 "Allow the buffer to be writable and evaluate FORMS." 1653 "Allow the buffer to be writable and evaluate FORMS."
@@ -2019,14 +1655,6 @@ to track file check ins, and will change the mode line to match
2019 (cons 'progn forms))) 1655 (cons 'progn forms)))
2020(put 'speedbar-with-writable 'lisp-indent-function 0) 1656(put 'speedbar-with-writable 'lisp-indent-function 0)
2021 1657
2022(defun speedbar-select-window (buffer)
2023 "Select a window in which BUFFER is shown.
2024If it is not shown, force it to appear in the default window."
2025 (let ((win (get-buffer-window buffer speedbar-attached-frame)))
2026 (if win
2027 (select-window win)
2028 (set-window-buffer (selected-window) buffer))))
2029
2030(defun speedbar-insert-button (text face mouse function 1658(defun speedbar-insert-button (text face mouse function
2031 &optional token prevline) 1659 &optional token prevline)
2032 "Insert TEXT as the next logical speedbar button. 1660 "Insert TEXT as the next logical speedbar button.
@@ -2053,13 +1681,30 @@ specialized speedbar displays."
2053 (put-text-property start (point) 'invisible nil) 1681 (put-text-property start (point) 'invisible nil)
2054 (put-text-property start (point) 'mouse-face nil))) 1682 (put-text-property start (point) 'mouse-face nil)))
2055 1683
1684(defun speedbar-insert-separator (text)
1685 "Insert a separation label of TEXT.
1686Separators are not active, have no labels, depth, or actions."
1687 (if speedbar-use-images
1688 (let ((start (point)))
1689 (insert "//")
1690 (speedbar-insert-image-button-maybe start 2)))
1691 (let ((start (point)))
1692 (insert text "\n")
1693 (speedbar-make-button start (point)
1694 'speedbar-separator-face
1695 nil nil nil)))
1696
2056(defun speedbar-make-button (start end face mouse function &optional token) 1697(defun speedbar-make-button (start end face mouse function &optional token)
2057 "Create a button from START to END, with FACE as the display face. 1698 "Create a button from START to END, with FACE as the display face.
2058MOUSE is the mouse face. When this button is clicked on FUNCTION 1699MOUSE is the mouse face. When this button is clicked on FUNCTION
2059will be run with the TOKEN parameter (any Lisp object)." 1700will be run with the TOKEN parameter (any Lisp object)"
2060 (put-text-property start end 'face face) 1701 (put-text-property start end 'face face)
2061 (put-text-property start end 'mouse-face mouse) 1702 (put-text-property start end 'mouse-face mouse)
1703 (if speedbar-use-tool-tips-flag
1704 (put-text-property start end 'help-echo #'dframe-help-echo))
2062 (put-text-property start end 'invisible nil) 1705 (put-text-property start end 'invisible nil)
1706 (put-text-property start end 'speedbar-text
1707 (buffer-substring-no-properties start end))
2063 (if function (put-text-property start end 'speedbar-function function)) 1708 (if function (put-text-property start end 'speedbar-function function))
2064 (if token (put-text-property start end 'speedbar-token token)) 1709 (if token (put-text-property start end 'speedbar-token token))
2065 ;; So far the only text we have is less that 3 chars. 1710 ;; So far the only text we have is less that 3 chars.
@@ -2116,8 +1761,10 @@ This is based on `speedbar-initial-expansion-list-name' referencing
2116 (setq speedbar-previously-used-expansion-list-name 1761 (setq speedbar-previously-used-expansion-list-name
2117 speedbar-initial-expansion-list-name 1762 speedbar-initial-expansion-list-name
2118 speedbar-initial-expansion-list-name new-default) 1763 speedbar-initial-expansion-list-name new-default)
2119 (speedbar-refresh) 1764 (if (and (speedbar-current-frame) (frame-live-p (speedbar-current-frame)))
2120 (speedbar-reconfigure-keymaps)) 1765 (progn
1766 (speedbar-refresh)
1767 (speedbar-reconfigure-keymaps))))
2121 1768
2122(defun speedbar-fetch-replacement-function (function) 1769(defun speedbar-fetch-replacement-function (function)
2123 "Return a current mode specific replacement for function, or nil. 1770 "Return a current mode specific replacement for function, or nil.
@@ -2199,26 +1846,30 @@ the file-system."
2199 (setq directory (expand-file-name directory)) 1846 (setq directory (expand-file-name directory))
2200 ;; If in powerclick mode, then the directory we are getting 1847 ;; If in powerclick mode, then the directory we are getting
2201 ;; should be rescanned. 1848 ;; should be rescanned.
2202 (if speedbar-power-click 1849 (if dframe-power-click
2203 (adelete 'speedbar-directory-contents-alist directory)) 1850 (adelete 'speedbar-directory-contents-alist directory))
2204 ;; find the directory, either in the cache, or build it. 1851 ;; find the directory, either in the cache, or build it.
2205 (or (cdr-safe (assoc directory speedbar-directory-contents-alist)) 1852 (or (cdr-safe (assoc directory speedbar-directory-contents-alist))
2206 (let ((default-directory directory) 1853 (let ((default-directory directory)
2207 (case-fold-search read-file-name-completion-ignore-case) 1854 (dir (directory-files directory nil))
2208 dirs files) 1855 (dirs nil)
2209 (dolist (file (directory-files directory nil)) 1856 (files nil))
2210 (or (string-match speedbar-file-unshown-regexp file) 1857 (while dir
2211 (string-match speedbar-directory-unshown-regexp file) 1858 (if (not
2212 (if (file-directory-p file) 1859 (or (string-match speedbar-file-unshown-regexp (car dir))
2213 (setq dirs (cons file dirs)) 1860 (string-match speedbar-directory-unshown-regexp (car dir))))
2214 (setq files (cons file files))))) 1861 (if (file-directory-p (car dir))
2215 (let ((nl `(,(nreverse dirs) ,(nreverse files)))) 1862 (setq dirs (cons (car dir) dirs))
1863 (setq files (cons (car dir) files))))
1864 (setq dir (cdr dir)))
1865 (let ((nl (cons (nreverse dirs) (list (nreverse files)))))
2216 (aput 'speedbar-directory-contents-alist directory nl) 1866 (aput 'speedbar-directory-contents-alist directory nl)
2217 nl)))) 1867 nl))
1868 ))
2218 1869
2219(defun speedbar-directory-buttons (directory index) 1870(defun speedbar-directory-buttons (directory index)
2220 "Insert a single button group at point for DIRECTORY. 1871 "Insert a single button group at point for DIRECTORY.
2221Each directory path part is a different button. If part of the path 1872Each directory directory part is a different button. If part of the directory
2222matches the user directory ~, then it is replaced with a ~. 1873matches the user directory ~, then it is replaced with a ~.
2223INDEX is not used, but is required by the caller." 1874INDEX is not used, but is required by the caller."
2224 (let* ((tilde (expand-file-name "~/")) 1875 (let* ((tilde (expand-file-name "~/"))
@@ -2294,8 +1945,9 @@ INDEX is not used, but is required by the caller."
2294This is the button that expands or contracts a node (if applicable), 1945This is the button that expands or contracts a node (if applicable),
2295and EXP-BUTTON-CHAR the character in it (+, -, ?, etc). EXP-BUTTON-FUNCTION 1946and EXP-BUTTON-CHAR the character in it (+, -, ?, etc). EXP-BUTTON-FUNCTION
2296is the function to call if it's clicked on. Button types are 1947is the function to call if it's clicked on. Button types are
2297'bracket, 'angle, 'curly, or nil. EXP-BUTTON-DATA is extra data 1948'bracket, 'angle, 'curly, 'expandtag, 'statictag, t, or nil.
2298attached to the text forming the expansion button. 1949EXP-BUTTON-DATA is extra data attached to the text forming the expansion
1950button.
2299 1951
2300Next, TAG-BUTTON is the text of the tag. TAG-BUTTON-FUNCTION is the 1952Next, TAG-BUTTON is the text of the tag. TAG-BUTTON-FUNCTION is the
2301function to call if clicked on, and TAG-BUTTON-DATA is the data to 1953function to call if clicked on, and TAG-BUTTON-DATA is the data to
@@ -2317,11 +1969,14 @@ position to insert a new item, and that the new item will end with a CR."
2317 (let* ((exp-button (cond ((eq exp-button-type 'bracket) "[%c]") 1969 (let* ((exp-button (cond ((eq exp-button-type 'bracket) "[%c]")
2318 ((eq exp-button-type 'angle) "<%c>") 1970 ((eq exp-button-type 'angle) "<%c>")
2319 ((eq exp-button-type 'curly) "{%c}") 1971 ((eq exp-button-type 'curly) "{%c}")
1972 ((eq exp-button-type 'expandtag) " %c>")
1973 ((eq exp-button-type 'statictag) " =>")
2320 (t ">"))) 1974 (t ">")))
2321 (buttxt (format exp-button exp-button-char)) 1975 (buttxt (format exp-button exp-button-char))
2322 (start (point)) 1976 (start (point))
2323 (end (progn (insert buttxt) (point))) 1977 (end (progn (insert buttxt) (point)))
2324 (bf (if exp-button-type 'speedbar-button-face nil)) 1978 (bf (if (and exp-button-type (not (eq exp-button-type 'statictag)))
1979 'speedbar-button-face nil))
2325 (mf (if exp-button-function 'speedbar-highlight-face nil)) 1980 (mf (if exp-button-function 'speedbar-highlight-face nil))
2326 ) 1981 )
2327 (speedbar-make-button start end bf mf exp-button-function exp-button-data) 1982 (speedbar-make-button start end bf mf exp-button-function exp-button-data)
@@ -2340,7 +1995,7 @@ position to insert a new item, and that the new item will end with a CR."
2340 (if tag-button-function 'speedbar-highlight-face nil) 1995 (if tag-button-function 'speedbar-highlight-face nil)
2341 tag-button-function tag-button-data)) 1996 tag-button-function tag-button-data))
2342 )) 1997 ))
2343 1998
2344(defun speedbar-change-expand-button-char (char) 1999(defun speedbar-change-expand-button-char (char)
2345 "Change the expansion button character to CHAR for the current line." 2000 "Change the expansion button character to CHAR for the current line."
2346 (save-excursion 2001 (save-excursion
@@ -2348,50 +2003,45 @@ position to insert a new item, and that the new item will end with a CR."
2348 (if (re-search-forward ":\\s-*.\\([-+?]\\)" (save-excursion (end-of-line) 2003 (if (re-search-forward ":\\s-*.\\([-+?]\\)" (save-excursion (end-of-line)
2349 (point)) t) 2004 (point)) t)
2350 (speedbar-with-writable 2005 (speedbar-with-writable
2351 (goto-char (match-beginning 1)) 2006 (goto-char (match-end 1))
2352 (delete-char 1)
2353 (insert-char char 1 t) 2007 (insert-char char 1 t)
2354 (put-text-property (point) (1- (point)) 'invisible nil) 2008 (forward-char -1)
2009 (delete-char -1)
2010 ;;(put-text-property (point) (1- (point)) 'invisible nil)
2355 ;; make sure we fix the image on the text here. 2011 ;; make sure we fix the image on the text here.
2356 (speedbar-insert-image-button-maybe (- (point) 2) 3))))) 2012 (speedbar-insert-image-button-maybe (- (point) 1) 3)))))
2357 2013
2358 2014
2359;;; Build button lists 2015;;; Build button lists
2360;; 2016;;
2361(defun speedbar-insert-files-at-point (files level directory) 2017(defun speedbar-insert-files-at-point (files level)
2362 "Insert list of FILES starting at point, and indenting all files to LEVEL. 2018 "Insert list of FILES starting at point, and indenting all files to LEVEL.
2363Tag expandable items with a +, otherwise a ?. Don't highlight ? as we 2019Tag expandable items with a +, otherwise a ?. Don't highlight ? as we
2364don't know how to manage them. The input parameter FILES is a cons 2020don't know how to manage them. The input parameter FILES is a cons
2365cell of the form ( 'DIRLIST . 'FILELIST )." 2021cell of the form ( 'DIRLIST . 'FILELIST )."
2366 ;; Start inserting all the directories 2022 ;; Start inserting all the directories
2367 (dolist (dir (car files)) 2023 (let ((dirs (car files)))
2368 (if (if speedbar-scan-subdirs 2024 (while dirs
2369 (condition-case nil 2025 (speedbar-make-tag-line 'angle ?+ 'speedbar-dired (car dirs)
2370 (let ((l (speedbar-file-lists (concat directory dir)))) 2026 (car dirs) 'speedbar-dir-follow nil
2371 (or (car l) (cadr l))) 2027 'speedbar-directory-face level)
2372 (file-error)) 2028 (setq dirs (cdr dirs))))
2373 (file-readable-p (concat directory dir))) 2029 (let ((lst (car (cdr files)))
2374 (speedbar-make-tag-line 'angle ?+ 'speedbar-dired dir 2030 (case-fold-search t))
2375 dir 'speedbar-dir-follow nil 2031 (while lst
2376 'speedbar-directory-face level) 2032 (let* ((known (string-match speedbar-file-regexp (car lst)))
2377 (speedbar-make-tag-line 'angle ? nil dir
2378 dir 'speedbar-dir-follow nil
2379 'speedbar-directory-face level)))
2380 (let ((case-fold-search read-file-name-completion-ignore-case))
2381 (dolist (file (cadr files))
2382 (let* ((known (and (file-readable-p (concat directory file))
2383 (string-match speedbar-file-regexp file)))
2384 (expchar (if known ?+ ??)) 2033 (expchar (if known ?+ ??))
2385 (fn (if known 'speedbar-tag-file nil))) 2034 (fn (if known 'speedbar-tag-file nil)))
2386 (if (or speedbar-show-unknown-files (/= expchar ??)) 2035 (if (or speedbar-show-unknown-files (/= expchar ??))
2387 (speedbar-make-tag-line 'bracket expchar fn file 2036 (speedbar-make-tag-line 'bracket expchar fn (car lst)
2388 file 'speedbar-find-file nil 2037 (car lst) 'speedbar-find-file nil
2389 'speedbar-file-face level)))))) 2038 'speedbar-file-face level)))
2039 (setq lst (cdr lst)))))
2390 2040
2391(defun speedbar-default-directory-list (directory index) 2041(defun speedbar-default-directory-list (directory index)
2392 "Insert files for DIRECTORY with level INDEX at point." 2042 "Insert files for DIRECTORY with level INDEX at point."
2393 (speedbar-insert-files-at-point 2043 (speedbar-insert-files-at-point
2394 (speedbar-file-lists directory) index directory) 2044 (speedbar-file-lists directory) index)
2395 (speedbar-reset-scanners) 2045 (speedbar-reset-scanners)
2396 (if (= index 0) 2046 (if (= index 0)
2397 ;; If the shown files variable has extra directories, then 2047 ;; If the shown files variable has extra directories, then
@@ -2412,12 +2062,63 @@ cell of the form ( 'DIRLIST . 'FILELIST )."
2412 (speedbar-do-function-pointer))))) 2062 (speedbar-do-function-pointer)))))
2413 (setq sf (cdr sf))) 2063 (setq sf (cdr sf)))
2414 ))) 2064 )))
2065;;; Generic List support
2066;;
2067;; Generic lists are hierarchies of tags which we may need to permute
2068;; in order to make it look nice.
2069;;
2070;; A generic list is of the form:
2071;; ( ("name" . marker-or-number) <-- one tag at this level
2072;; ("name" ("name" . mon) ("name" . mon) ) <-- one group of tags
2073;; ("name" mon ("name" . mon) ) <-- group w/ a position and tags
2074(defun speedbar-generic-list-group-p (sublst)
2075 "Non-nil if SUBLST is a group.
2076Groups may optionally contain a position."
2077 (and (stringp (car-safe sublst))
2078 (or (and (listp (cdr-safe sublst))
2079 (or (speedbar-generic-list-tag-p (car-safe (cdr-safe sublst)))
2080 (speedbar-generic-list-group-p (car-safe (cdr-safe sublst))
2081 )))
2082 (and (number-or-marker-p (car-safe (cdr-safe sublst)))
2083 (listp (cdr-safe (cdr-safe sublst)))
2084 (speedbar-generic-list-tag-p
2085 (car-safe (cdr-safe (cdr-safe sublst)))))
2086 )))
2087
2088(defun speedbar-generic-list-positioned-group-p (sublst)
2089 "Non-nil of SUBLST is a group with a position."
2090 (and (stringp (car-safe sublst))
2091 (number-or-marker-p (car-safe (cdr-safe sublst)))
2092 (listp (cdr-safe (cdr-safe sublst)))
2093 (let ((rest (car-safe (cdr-safe (cdr-safe sublst)))))
2094 (or (speedbar-generic-list-tag-p rest)
2095 (speedbar-generic-list-group-p rest)
2096 (speedbar-generic-list-positioned-group-p rest)
2097 ))))
2098
2099(defun speedbar-generic-list-tag-p (sublst)
2100 "Non nil if SUBLST is a tag."
2101 (and (stringp (car-safe sublst))
2102 (or (and (number-or-marker-p (cdr-safe sublst))
2103 (not (cdr-safe (cdr-safe sublst))))
2104 ;; For semantic/bovine items, this is needed
2105 (symbolp (car-safe (cdr-safe sublst))))
2106 ))
2415 2107
2416(defun speedbar-sort-tag-hierarchy (lst) 2108(defun speedbar-sort-tag-hierarchy (lst)
2417 "Sort all elements of tag hierarchy LST." 2109 "Sort all elements of tag hierarchy LST."
2418 (sort (copy-alist lst) 2110 (sort (copy-alist lst)
2419 (lambda (a b) (string< (car a) (car b))))) 2111 (lambda (a b) (string< (car a) (car b)))))
2420 2112
2113(defun speedbar-try-completion (string alist)
2114 "A wrapper for `try-completion'.
2115Passes STRING and ALIST to `try-completion' if ALIST
2116passes some tests."
2117 (if (and (listp alist) (not (null alist))
2118 (listp (car alist)) (stringp (car (car alist))))
2119 (try-completion string alist)
2120 nil))
2121
2421(defun speedbar-prefix-group-tag-hierarchy (lst) 2122(defun speedbar-prefix-group-tag-hierarchy (lst)
2422 "Prefix group names for tag hierarchy LST." 2123 "Prefix group names for tag hierarchy LST."
2423 (let ((newlst nil) 2124 (let ((newlst nil)
@@ -2430,133 +2131,134 @@ cell of the form ( 'DIRLIST . 'FILELIST )."
2430 (num-shorts-grouped 0) 2131 (num-shorts-grouped 0)
2431 (bins (make-vector 256 nil)) 2132 (bins (make-vector 256 nil))
2432 (diff-idx 0)) 2133 (diff-idx 0))
2433 ;; Break out sub-lists 2134 (if (<= (length lst) speedbar-tag-regroup-maximum-length)
2434 (while lst 2135 ;; Do nothing. Too short to bother with.
2435 (if (and (listp (cdr-safe (car-safe lst))) 2136 lst
2436 ;; This one is for bovine tokens 2137 ;; Break out sub-lists
2437 (not (symbolp (car-safe (cdr-safe (car-safe lst)))))) 2138 (while lst
2438 (setq newlst (cons (car lst) newlst)) 2139 (if (speedbar-generic-list-group-p (car-safe lst))
2439 (setq sublst (cons (car lst) sublst))) 2140 (setq newlst (cons (car lst) newlst))
2440 (setq lst (cdr lst))) 2141 (setq sublst (cons (car lst) sublst)))
2441 ;; Reverse newlst because it was made backwards. 2142 (setq lst (cdr lst)))
2442 ;; Sublist doesn't need reversing because the act 2143 ;; Reverse newlst because it was made backwards.
2443 ;; of binning things will reverse it for us. 2144 ;; Sublist doesn't need reversing because the act
2444 (setq newlst (nreverse newlst)) 2145 ;; of binning things will reverse it for us.
2445 ;; Now, first find out how long our list is. Never let a 2146 (setq newlst (nreverse newlst)
2446 ;; list get-shorter than our minimum. 2147 sublst sublst)
2447 (if (<= (length sublst) speedbar-tag-split-minimum-length) 2148 ;; Now, first find out how long our list is. Never let a
2448 (setq work-list (nreverse sublst)) 2149 ;; list get-shorter than our minimum.
2449 (setq diff-idx (length (try-completion "" sublst))) 2150 (if (<= (length sublst) speedbar-tag-split-minimum-length)
2450 ;; Sort the whole list into bins. 2151 (setq work-list sublst)
2451 (while sublst 2152 (setq diff-idx (length (speedbar-try-completion "" sublst)))
2452 (let ((e (car sublst)) 2153 ;; Sort the whole list into bins.
2453 (s (car (car sublst)))) 2154 (while sublst
2454 (cond ((<= (length s) diff-idx) 2155 (let ((e (car sublst))
2455 ;; 0 storage bin for shorty. 2156 (s (car (car sublst))))
2456 (aset bins 0 (cons e (aref bins 0)))) 2157 (cond ((<= (length s) diff-idx)
2457 (t 2158 ;; 0 storage bin for shorty.
2458 ;; stuff into a bin based on ascii value at diff 2159 (aset bins 0 (cons e (aref bins 0))))
2459 (aset bins (aref s diff-idx) 2160 (t
2460 (cons e (aref bins (aref s diff-idx))))))) 2161 ;; stuff into a bin based on ascii value at diff
2461 (setq sublst (cdr sublst))) 2162 (aset bins (aref s diff-idx)
2462 ;; Go through all our bins Stick singles into our 2163 (cons e (aref bins (aref s diff-idx)))))))
2463 ;; junk-list, everything else as sublsts in work-list. 2164 (setq sublst (cdr sublst)))
2464 ;; If two neighboring lists are both small, make a grouped 2165 ;; Go through all our bins Stick singles into our
2465 ;; group combinding those two sub-lists. 2166 ;; junk-list, everything else as sublsts in work-list.
2466 (setq diff-idx 0) 2167 ;; If two neighboring lists are both small, make a grouped
2467 (while (> 256 diff-idx) 2168 ;; group combinding those two sub-lists.
2468 (let ((l (nreverse;; Reverse the list since they are stuck in 2169 (setq diff-idx 0)
2469 ;; backwards. 2170 (while (> 256 diff-idx)
2470 (aref bins diff-idx)))) 2171 ;; The bins contents are currently in forward order.
2471 (if l 2172 (let ((l (aref bins diff-idx)))
2472 (let ((tmp (cons (try-completion "" l) l))) 2173 (if l
2473 (if (or (> (length l) speedbar-tag-regroup-maximum-length) 2174 (let ((tmp (cons (speedbar-try-completion "" l) l)))
2474 (> (+ (length l) (length short-group-list)) 2175 (if (or (> (length l) speedbar-tag-regroup-maximum-length)
2475 speedbar-tag-split-minimum-length)) 2176 (> (+ (length l) (length short-group-list))
2476 (progn 2177 speedbar-tag-split-minimum-length))
2477 ;; We have reached a longer list, so we 2178 (progn
2478 ;; must finish off a grouped group. 2179 ;; We have reached a longer list, so we
2479 (cond 2180 ;; must finish off a grouped group.
2480 ((and short-group-list 2181 (cond
2481 (= (length short-group-list) 2182 ((and short-group-list
2482 num-shorts-grouped)) 2183 (= (length short-group-list)
2483 ;; All singles? Junk list 2184 num-shorts-grouped))
2484 (setq junk-list (append short-group-list 2185 ;; All singles? Junk list
2485 junk-list))) 2186 (setq junk-list (append (nreverse short-group-list)
2486 ((= num-shorts-grouped 1) 2187 junk-list)))
2487 ;; Only one short group? Just stick it in 2188 ((= num-shorts-grouped 1)
2488 ;; there by itself. Make a group, and find 2189 ;; Only one short group? Just stick it in
2489 ;; a subexpression 2190 ;; there by itself. Make a group, and find
2490 (let ((subexpression (try-completion 2191 ;; a subexpression
2491 "" short-group-list))) 2192 (let ((subexpression (speedbar-try-completion
2492 (if (< (length subexpression) 2193 "" short-group-list)))
2493 speedbar-tag-group-name-minimum-length) 2194 (if (< (length subexpression)
2494 (setq subexpression 2195 speedbar-tag-group-name-minimum-length)
2495 (concat short-start-name 2196 (setq subexpression
2496 " (" 2197 (concat short-start-name
2497 (substring 2198 " ("
2498 (car (car short-group-list)) 2199 (substring
2499 (length short-start-name)) 2200 (car (car short-group-list))
2500 ")"))) 2201 (length short-start-name))
2202 ")")))
2203 (setq work-list
2204 (cons (cons subexpression
2205 short-group-list)
2206 work-list ))))
2207 (short-group-list
2208 ;; Multiple groups to be named in a special
2209 ;; way by displaying the range over which we
2210 ;; have grouped them.
2501 (setq work-list 2211 (setq work-list
2502 (cons (cons subexpression 2212 (cons (cons (concat short-start-name
2213 " to "
2214 short-end-name)
2503 short-group-list) 2215 short-group-list)
2504 work-list)))) 2216 work-list))))
2505 (short-group-list 2217 ;; Reset short group list information every time.
2506 ;; Multiple groups to be named in a special 2218 (setq short-group-list nil
2507 ;; way by displaying the range over which we 2219 short-start-name nil
2508 ;; have grouped them. 2220 short-end-name nil
2509 (setq work-list 2221 num-shorts-grouped 0)))
2510 (cons (cons (concat short-start-name 2222 ;; Ok, now that we cleaned up the short-group-list,
2511 " to " 2223 ;; we can deal with this new list, to decide if it
2512 short-end-name) 2224 ;; should go on one of these sub-lists or not.
2513 (nreverse short-group-list)) 2225 (if (< (length l) speedbar-tag-regroup-maximum-length)
2514 work-list)))) 2226 (setq short-group-list (append l short-group-list)
2515 ;; Reset short group list information every time. 2227 num-shorts-grouped (1+ num-shorts-grouped)
2516 (setq short-group-list nil 2228 short-end-name (car tmp)
2517 short-start-name nil 2229 short-start-name (if short-start-name
2518 short-end-name nil 2230 short-start-name
2519 num-shorts-grouped 0))) 2231 (car tmp)))
2520 ;; Ok, now that we cleaned up the short-group-list, 2232 (setq work-list (cons tmp work-list))))))
2521 ;; we can deal with this new list, to decide if it 2233 (setq diff-idx (1+ diff-idx))))
2522 ;; should go on one of these sub-lists or not. 2234 ;; Did we run out of things? Drop our new list onto the end.
2523 (if (< (length l) speedbar-tag-regroup-maximum-length) 2235 (cond
2524 (setq short-group-list (append short-group-list l) 2236 ((and short-group-list (= (length short-group-list) num-shorts-grouped))
2525 num-shorts-grouped (1+ num-shorts-grouped) 2237 ;; All singles? Junk list
2526 short-end-name (car tmp) 2238 (setq junk-list (append short-group-list junk-list)))
2527 short-start-name (if short-start-name 2239 ((= num-shorts-grouped 1)
2528 short-start-name 2240 ;; Only one short group? Just stick it in
2529 (car tmp))) 2241 ;; there by itself.
2530 (setq work-list (cons tmp work-list)))))) 2242 (setq work-list
2531 (setq diff-idx (1+ diff-idx)))) 2243 (cons (cons (speedbar-try-completion "" short-group-list)
2532 ;; Did we run out of things? Drop our new list onto the end. 2244 short-group-list)
2533 (cond 2245 work-list)))
2534 ((and short-group-list (= (length short-group-list) num-shorts-grouped)) 2246 (short-group-list
2535 ;; All singles? Junk list 2247 ;; Multiple groups to be named in a special
2536 (setq junk-list (append short-group-list junk-list))) 2248 ;; way by displaying the range over which we
2537 ((= num-shorts-grouped 1) 2249 ;; have grouped them.
2538 ;; Only one short group? Just stick it in 2250 (setq work-list
2539 ;; there by itself. 2251 (cons (cons (concat short-start-name " to " short-end-name)
2540 (setq work-list 2252 short-group-list)
2541 (cons (cons (try-completion "" short-group-list) 2253 work-list))))
2542 short-group-list) 2254 ;; Reverse the work list nreversed when consing.
2543 work-list))) 2255 (setq work-list (nreverse work-list))
2544 (short-group-list 2256 ;; Now, stick our new list onto the end of
2545 ;; Multiple groups to be named in a special 2257 (if work-list
2546 ;; way by displaying the range over which we 2258 (if junk-list
2547 ;; have grouped them. 2259 (append newlst work-list junk-list)
2548 (setq work-list 2260 (append newlst work-list))
2549 (cons (cons (concat short-start-name " to " short-end-name) 2261 (append newlst junk-list)))))
2550 short-group-list)
2551 work-list))))
2552 ;; Reverse the work list nreversed when consing.
2553 (setq work-list (nreverse work-list))
2554 ;; Now, stick our new list onto the end of
2555 (if work-list
2556 (if junk-list
2557 (append newlst work-list junk-list)
2558 (append newlst work-list))
2559 (append newlst junk-list))))
2560 2262
2561(defun speedbar-trim-words-tag-hierarchy (lst) 2263(defun speedbar-trim-words-tag-hierarchy (lst)
2562 "Trim all words in a tag hierarchy. 2264 "Trim all words in a tag hierarchy.
@@ -2568,17 +2270,18 @@ Argument LST is the list of tags to trim."
2568 (trim-chars 0) 2270 (trim-chars 0)
2569 (trimlst nil)) 2271 (trimlst nil))
2570 (while lst 2272 (while lst
2571 (if (listp (cdr-safe (car-safe lst))) 2273 (if (speedbar-generic-list-group-p (car-safe lst))
2572 (setq newlst (cons (car lst) newlst)) 2274 (setq newlst (cons (car lst) newlst))
2573 (setq sublst (cons (car lst) sublst))) 2275 (setq sublst (cons (car lst) sublst)))
2574 (setq lst (cdr lst))) 2276 (setq lst (cdr lst)))
2575 ;; Get the prefix to trim by. Make sure that we don't trim 2277 ;; Get the prefix to trim by. Make sure that we don't trim
2576 ;; off silly pieces, only complete understandable words. 2278 ;; off silly pieces, only complete understandable words.
2577 (setq trim-prefix (try-completion "" sublst)) 2279 (setq trim-prefix (speedbar-try-completion "" sublst)
2280 newlst (nreverse newlst))
2578 (if (or (= (length sublst) 1) 2281 (if (or (= (length sublst) 1)
2579 (not trim-prefix) 2282 (not trim-prefix)
2580 (not (string-match "\\(\\w+\\W+\\)+" trim-prefix))) 2283 (not (string-match "\\(\\w+\\W+\\)+" trim-prefix)))
2581 (append (nreverse newlst) (nreverse sublst)) 2284 (append newlst (nreverse sublst))
2582 (setq trim-prefix (substring trim-prefix (match-beginning 0) 2285 (setq trim-prefix (substring trim-prefix (match-beginning 0)
2583 (match-end 0))) 2286 (match-end 0)))
2584 (setq trim-chars (length trim-prefix)) 2287 (setq trim-chars (length trim-prefix))
@@ -2589,7 +2292,7 @@ Argument LST is the list of tags to trim."
2589 trimlst) 2292 trimlst)
2590 sublst (cdr sublst))) 2293 sublst (cdr sublst)))
2591 ;; Put the lists together 2294 ;; Put the lists together
2592 (append (nreverse newlst) trimlst)))) 2295 (append newlst trimlst))))
2593 2296
2594(defun speedbar-simple-group-tag-hierarchy (lst) 2297(defun speedbar-simple-group-tag-hierarchy (lst)
2595 "Create a simple 'Tags' group with orphaned tags. 2298 "Create a simple 'Tags' group with orphaned tags.
@@ -2597,7 +2300,7 @@ Argument LST is the list of tags to sort into groups."
2597 (let ((newlst nil) 2300 (let ((newlst nil)
2598 (sublst nil)) 2301 (sublst nil))
2599 (while lst 2302 (while lst
2600 (if (listp (cdr-safe (car-safe lst))) 2303 (if (speedbar-generic-list-group-p (car-safe lst))
2601 (setq newlst (cons (car lst) newlst)) 2304 (setq newlst (cons (car lst) newlst))
2602 (setq sublst (cons (car lst) sublst))) 2305 (setq sublst (cons (car lst) sublst)))
2603 (setq lst (cdr lst))) 2306 (setq lst (cdr lst)))
@@ -2612,7 +2315,8 @@ This uses `speedbar-tag-hierarchy-method' to determine how to adjust
2612the list." 2315the list."
2613 (let* ((f (save-excursion 2316 (let* ((f (save-excursion
2614 (forward-line -1) 2317 (forward-line -1)
2615 (speedbar-line-path))) 2318 (or (speedbar-line-file)
2319 (speedbar-line-directory))))
2616 (methods (if (get-file-buffer f) 2320 (methods (if (get-file-buffer f)
2617 (save-excursion (set-buffer (get-file-buffer f)) 2321 (save-excursion (set-buffer (get-file-buffer f))
2618 speedbar-tag-hierarchy-method) 2322 speedbar-tag-hierarchy-method)
@@ -2625,6 +2329,16 @@ the list."
2625 methods (cdr methods))) 2329 methods (cdr methods)))
2626 lst)) 2330 lst))
2627 2331
2332(defvar speedbar-generic-list-group-expand-button-type 'curly
2333 "The type of button created for groups of tags.
2334Good values for this are `curly' and `expandtag'.
2335Make buffer local for your mode.")
2336
2337(defvar speedbar-generic-list-tag-button-type nil
2338 "The type of button created for tags in generic lists.
2339Good values for this are nil and `statictag'.
2340Make buffer local for your mode.")
2341
2628(defun speedbar-insert-generic-list (level lst expand-fun find-fun) 2342(defun speedbar-insert-generic-list (level lst expand-fun find-fun)
2629 "At LEVEL, insert a generic multi-level alist LST. 2343 "At LEVEL, insert a generic multi-level alist LST.
2630Associations with lists get {+} tags (to expand into more nodes) and 2344Associations with lists get {+} tags (to expand into more nodes) and
@@ -2634,33 +2348,53 @@ name will have the function FIND-FUN and not token."
2634 ;; Remove imenu rescan button 2348 ;; Remove imenu rescan button
2635 (if (string= (car (car lst)) "*Rescan*") 2349 (if (string= (car (car lst)) "*Rescan*")
2636 (setq lst (cdr lst))) 2350 (setq lst (cdr lst)))
2637 ;; Adjust the list. 2351 ;; Get, and set up variables that define how we treat these tags.
2638 (setq lst (speedbar-create-tag-hierarchy lst)) 2352 (let ((f (save-excursion (forward-line -1)
2639 ;; insert the parts 2353 (or (speedbar-line-file)
2640 (while lst 2354 (speedbar-line-directory))))
2641 (cond ((null (car-safe lst)) nil) ;this would be a separator 2355 expand-button tag-button)
2642 ((or (numberp (cdr-safe (car-safe lst))) 2356 (save-excursion
2643 (markerp (cdr-safe (car-safe lst)))) 2357 (if (get-file-buffer f)
2644 (speedbar-make-tag-line nil nil nil nil ;no expand button data 2358 (set-buffer (get-file-buffer f)))
2645 (car (car lst)) ;button name 2359 (setq expand-button speedbar-generic-list-group-expand-button-type
2646 find-fun ;function 2360 tag-button speedbar-generic-list-tag-button-type))
2647 (cdr (car lst)) ;token is position 2361 ;; Adjust the list.
2648 'speedbar-tag-face 2362 (setq lst (speedbar-create-tag-hierarchy lst))
2649 (1+ level))) 2363 ;; insert the parts
2650 ((listp (cdr-safe (car-safe lst))) 2364 (while lst
2651 (speedbar-make-tag-line 'curly ?+ expand-fun (cdr (car lst)) 2365 (cond ((null (car-safe lst)) nil) ;this would be a separator
2652 (car (car lst)) ;button name 2366 ((speedbar-generic-list-tag-p (car lst))
2653 nil nil 'speedbar-tag-face 2367 (speedbar-make-tag-line tag-button
2654 (1+ level))) 2368 nil nil nil ;no expand button data
2655 (t (speedbar-message "Ooops!"))) 2369 (car (car lst)) ;button name
2656 (setq lst (cdr lst)))) 2370 find-fun ;function
2371 (cdr (car lst)) ;token is position
2372 'speedbar-tag-face
2373 (1+ level)))
2374 ((speedbar-generic-list-positioned-group-p (car lst))
2375 (speedbar-make-tag-line expand-button
2376 ?+ expand-fun (cdr (cdr (car lst)))
2377 (car (car lst)) ;button name
2378 find-fun ;function
2379 (car (cdr (car lst))) ;token is posn
2380 'speedbar-tag-face
2381 (1+ level)))
2382 ((speedbar-generic-list-group-p (car lst))
2383 (speedbar-make-tag-line expand-button
2384 ?+ expand-fun (cdr (car lst))
2385 (car (car lst)) ;button name
2386 nil nil 'speedbar-tag-face
2387 (1+ level)))
2388 (t (speedbar-message "speedbar-insert-generic-list: malformed list!")
2389 ))
2390 (setq lst (cdr lst)))))
2657 2391
2658(defun speedbar-insert-imenu-list (indent lst) 2392(defun speedbar-insert-imenu-list (indent lst)
2659 "At level INDENT, insert the imenu generated LST." 2393 "At level INDENT, insert the imenu generated LST."
2660 (speedbar-insert-generic-list indent lst 2394 (speedbar-insert-generic-list indent lst
2661 'speedbar-tag-expand 2395 'speedbar-tag-expand
2662 'speedbar-tag-find)) 2396 'speedbar-tag-find))
2663 2397
2664(defun speedbar-insert-etags-list (indent lst) 2398(defun speedbar-insert-etags-list (indent lst)
2665 "At level INDENT, insert the etags generated LST." 2399 "At level INDENT, insert the etags generated LST."
2666 (speedbar-insert-generic-list indent lst 2400 (speedbar-insert-generic-list indent lst
@@ -2674,8 +2408,10 @@ name will have the function FIND-FUN and not token."
2674 (interactive) 2408 (interactive)
2675 ;; Set the current special buffer 2409 ;; Set the current special buffer
2676 (setq speedbar-desired-buffer nil) 2410 (setq speedbar-desired-buffer nil)
2411
2677 ;; Check for special modes 2412 ;; Check for special modes
2678 (speedbar-maybe-add-localized-support (current-buffer)) 2413 (speedbar-maybe-add-localized-support (current-buffer))
2414
2679 ;; Choose the correct method of doodling. 2415 ;; Choose the correct method of doodling.
2680 (if (and speedbar-mode-specific-contents-flag 2416 (if (and speedbar-mode-specific-contents-flag
2681 (listp speedbar-special-mode-expansion-list) 2417 (listp speedbar-special-mode-expansion-list)
@@ -2687,19 +2423,61 @@ name will have the function FIND-FUN and not token."
2687 (speedbar-update-special-contents) 2423 (speedbar-update-special-contents)
2688 (speedbar-update-directory-contents))) 2424 (speedbar-update-directory-contents)))
2689 2425
2426(defun speedbar-update-localized-contents ()
2427 "Update the contents of the speedbar buffer for the current situation."
2428 ;; Due to the historical growth of speedbar, we need to do something
2429 ;; special for "files" mode. Too bad.
2430 (let ((name speedbar-initial-expansion-list-name)
2431 (funclst (speedbar-initial-expansion-list))
2432 )
2433 (if (string= name "files")
2434 ;; Do all the files type work. It still goes through the
2435 ;; expansion list stuff. :(
2436 (if (or (member (expand-file-name default-directory)
2437 speedbar-shown-directories)
2438 (and speedbar-ignored-directory-regexp
2439 (string-match
2440 speedbar-ignored-directory-regexp
2441 (expand-file-name default-directory))))
2442 nil
2443 (if (<= 1 speedbar-verbosity-level)
2444 (speedbar-message "Updating speedbar to: %s..."
2445 default-directory))
2446 (speedbar-update-directory-contents)
2447 (if (<= 1 speedbar-verbosity-level)
2448 (progn
2449 (speedbar-message "Updating speedbar to: %s...done"
2450 default-directory)
2451 (speedbar-message nil))))
2452 ;; Else, we can do a short cut. No text cache.
2453 (let ((cbd (expand-file-name default-directory))
2454 )
2455 (set-buffer speedbar-buffer)
2456 (speedbar-with-writable
2457 (erase-buffer)
2458 (while funclst
2459 (setq default-directory cbd)
2460 (funcall (car funclst) cbd 0)
2461 (setq funclst (cdr funclst)))
2462 (speedbar-reconfigure-keymaps)
2463 (goto-char (point-min)))
2464 ))))
2465
2690(defun speedbar-update-directory-contents () 2466(defun speedbar-update-directory-contents ()
2691 "Update the contents of the speedbar buffer based on the current directory." 2467 "Update the contents of the speedbar buffer based on the current directory."
2692 (let ((cbd (expand-file-name default-directory)) 2468
2693 cbd-parent 2469 (save-excursion
2694 (funclst (speedbar-initial-expansion-list)) 2470
2695 (cache speedbar-full-text-cache) 2471 (let ((cbd (expand-file-name default-directory))
2696 ;; disable stealth during update 2472 cbd-parent
2697 (speedbar-stealthy-function-list nil) 2473 (funclst (speedbar-initial-expansion-list))
2698 (use-cache nil) 2474 (cache speedbar-full-text-cache)
2699 (expand-local nil) 2475 ;; disable stealth during update
2700 ;; Because there is a bug I can't find just yet 2476 (speedbar-stealthy-function-list nil)
2701 (inhibit-quit nil)) 2477 (use-cache nil)
2702 (save-excursion 2478 (expand-local nil)
2479 ;; Because there is a bug I can't find just yet
2480 (inhibit-quit nil))
2703 (set-buffer speedbar-buffer) 2481 (set-buffer speedbar-buffer)
2704 ;; If we are updating contents to where we are, then this is 2482 ;; If we are updating contents to where we are, then this is
2705 ;; really a request to update existing contents, so we must be 2483 ;; really a request to update existing contents, so we must be
@@ -2725,7 +2503,7 @@ name will have the function FIND-FUN and not token."
2725 (setq expand-local t) 2503 (setq expand-local t)
2726 2504
2727 ;; If this directory is NOT in the current list of available 2505 ;; If this directory is NOT in the current list of available
2728 ;; paths, then use the cache, and set the cache to our new 2506 ;; directorys, then use the cache, and set the cache to our new
2729 ;; value. Make sure to unhighlight the current file, or if we 2507 ;; value. Make sure to unhighlight the current file, or if we
2730 ;; come back to this directory, it might be a different file 2508 ;; come back to this directory, it might be a different file
2731 ;; and then we get a mess! 2509 ;; and then we get a mess!
@@ -2747,7 +2525,7 @@ name will have the function FIND-FUN and not token."
2747 (speedbar-with-writable 2525 (speedbar-with-writable
2748 (if (and expand-local 2526 (if (and expand-local
2749 ;; Find this directory as a speedbar node. 2527 ;; Find this directory as a speedbar node.
2750 (speedbar-path-line cbd)) 2528 (speedbar-directory-line cbd))
2751 ;; Open it. 2529 ;; Open it.
2752 (speedbar-expand-line) 2530 (speedbar-expand-line)
2753 (erase-buffer) 2531 (erase-buffer)
@@ -2788,24 +2566,40 @@ This should only be used by modes classified as special."
2788 ;; decide NOT to update themselves. 2566 ;; decide NOT to update themselves.
2789 (funcall (car funclst) specialbuff) 2567 (funcall (car funclst) specialbuff)
2790 (setq funclst (cdr funclst)))) 2568 (setq funclst (cdr funclst))))
2569
2791 (goto-char (point-min)))) 2570 (goto-char (point-min))))
2792 (speedbar-reconfigure-keymaps)) 2571 (speedbar-reconfigure-keymaps))
2793 2572
2573(defun speedbar-set-timer (timeout)
2574 "Set up the speedbar timer with TIMEOUT.
2575Uses `dframe-set-timer'.
2576Also resets scanner functions."
2577 (dframe-set-timer timeout 'speedbar-timer-fn 'speedbar-update-flag)
2578 ;; Apply a revert hook that will reset the scanners. We attach to revert
2579 ;; because most reverts occur during VC state change, and this lets our
2580 ;; VC scanner fix itself.
2581 (if timeout
2582 (add-hook 'after-revert-hook 'speedbar-reset-scanners)
2583 (remove-hook 'after-revert-hook 'speedbar-reset-scanners))
2584 ;; change this if it changed for some reason
2585 (speedbar-set-mode-line-format))
2586
2794(defun speedbar-timer-fn () 2587(defun speedbar-timer-fn ()
2795 "Run whenever Emacs is idle to update the speedbar item." 2588 "Run whenever Emacs is idle to update the speedbar item."
2796 (if (not (and (frame-live-p speedbar-frame) 2589 (if (or (not (speedbar-current-frame))
2797 (frame-live-p speedbar-attached-frame))) 2590 (not (frame-live-p (speedbar-current-frame))))
2798 (speedbar-set-timer nil) 2591 (speedbar-set-timer nil)
2799 ;; Save all the match data so that we don't mess up executing fns 2592 ;; Save all the match data so that we don't mess up executing fns
2800 (save-match-data 2593 (save-match-data
2801 ;; Only do stuff if the frame is visible, not an icon, and if 2594 ;; Only do stuff if the frame is visible, not an icon, and if
2802 ;; it is currently flagged to do something. 2595 ;; it is currently flagged to do something.
2803 (if (and speedbar-update-flag 2596 (if (and speedbar-update-flag
2804 (frame-visible-p speedbar-frame) 2597 (speedbar-current-frame)
2805 (not (eq (frame-visible-p speedbar-frame) 'icon))) 2598 (frame-visible-p (speedbar-current-frame))
2599 (not (eq (frame-visible-p (speedbar-current-frame)) 'icon)))
2806 (let ((af (selected-frame))) 2600 (let ((af (selected-frame)))
2807 (save-window-excursion 2601 (save-window-excursion
2808 (select-frame speedbar-attached-frame) 2602 (dframe-select-attached-frame speedbar-frame)
2809 ;; make sure we at least choose a window to 2603 ;; make sure we at least choose a window to
2810 ;; get a good directory from 2604 ;; get a good directory from
2811 (if (window-minibuffer-p (selected-window)) 2605 (if (window-minibuffer-p (selected-window))
@@ -2833,30 +2627,15 @@ This should only be used by modes classified as special."
2833 major-mode) 2627 major-mode)
2834 (speedbar-message nil)))) 2628 (speedbar-message nil))))
2835 ;; Update all the contents if directories change! 2629 ;; Update all the contents if directories change!
2836 (if (or (member (expand-file-name default-directory) 2630 (if (or (member major-mode speedbar-ignored-modes)
2837 speedbar-shown-directories) 2631 (eq af (speedbar-current-frame))
2838 (and speedbar-ignored-path-regexp
2839 (string-match
2840 speedbar-ignored-path-regexp
2841 (expand-file-name default-directory)))
2842 (member major-mode speedbar-ignored-modes)
2843 (eq af speedbar-frame)
2844 (not (buffer-file-name))) 2632 (not (buffer-file-name)))
2845 nil 2633 nil
2846 (if (<= 1 speedbar-verbosity-level) 2634 (speedbar-update-localized-contents)
2847 (speedbar-message "Updating speedbar to: %s..." 2635 ))
2848 default-directory))
2849 (speedbar-update-directory-contents)
2850 (if (<= 1 speedbar-verbosity-level)
2851 (progn
2852 (speedbar-message "Updating speedbar to: %s...done"
2853 default-directory)
2854 (speedbar-message nil)))))
2855 (select-frame af))) 2636 (select-frame af)))
2856 ;; Now run stealthy updates of time-consuming items 2637 ;; Now run stealthy updates of time-consuming items
2857 (speedbar-stealthy-updates))) 2638 (speedbar-stealthy-updates)))))
2858 ;; Now run the mouse tracking system
2859 (speedbar-show-info-under-mouse)))
2860 (run-hooks 'speedbar-timer-hook)) 2639 (run-hooks 'speedbar-timer-hook))
2861 2640
2862 2641
@@ -2884,12 +2663,16 @@ interrupted by the user."
2884 "Reset any variables used by functions in the stealthy list as state. 2663 "Reset any variables used by functions in the stealthy list as state.
2885If new functions are added, their state needs to be updated here." 2664If new functions are added, their state needs to be updated here."
2886 (setq speedbar-vc-to-do-point t 2665 (setq speedbar-vc-to-do-point t
2887 speedbar-obj-to-do-point t) 2666 speedbar-obj-to-do-point t
2667 speedbar-ro-to-do-point t)
2888 (run-hooks 'speedbar-scanner-reset-hook) 2668 (run-hooks 'speedbar-scanner-reset-hook)
2889 ) 2669 )
2890 2670
2891(defun speedbar-find-selected-file (file) 2671(defun speedbar-find-selected-file (file)
2892 "Go to the line where FILE is." 2672 "Go to the line where FILE is."
2673
2674 (set-buffer speedbar-buffer)
2675
2893 (goto-char (point-min)) 2676 (goto-char (point-min))
2894 (let ((m nil)) 2677 (let ((m nil))
2895 (while (and (setq m (re-search-forward 2678 (while (and (setq m (re-search-forward
@@ -2898,7 +2681,7 @@ If new functions are added, their state needs to be updated here."
2898 nil t)) 2681 nil t))
2899 (not (string= file 2682 (not (string= file
2900 (concat 2683 (concat
2901 (speedbar-line-path 2684 (speedbar-line-directory
2902 (save-excursion 2685 (save-excursion
2903 (goto-char (match-beginning 0)) 2686 (goto-char (match-beginning 0))
2904 (beginning-of-line) 2687 (beginning-of-line)
@@ -2914,7 +2697,7 @@ If new functions are added, their state needs to be updated here."
2914(defun speedbar-clear-current-file () 2697(defun speedbar-clear-current-file ()
2915 "Locate the file thought to be current, and remove its highlighting." 2698 "Locate the file thought to be current, and remove its highlighting."
2916 (save-excursion 2699 (save-excursion
2917 (set-buffer speedbar-buffer) 2700 ;;(set-buffer speedbar-buffer)
2918 (if speedbar-last-selected-file 2701 (if speedbar-last-selected-file
2919 (speedbar-with-writable 2702 (speedbar-with-writable
2920 (if (speedbar-find-selected-file speedbar-last-selected-file) 2703 (if (speedbar-find-selected-file speedbar-last-selected-file)
@@ -2930,7 +2713,7 @@ it should be in the list, then the directory cache needs to be
2930updated." 2713updated."
2931 (let* ((lastf (selected-frame)) 2714 (let* ((lastf (selected-frame))
2932 (newcfd (save-excursion 2715 (newcfd (save-excursion
2933 (select-frame speedbar-attached-frame) 2716 (dframe-select-attached-frame speedbar-frame)
2934 (let ((rf (if (buffer-file-name) 2717 (let ((rf (if (buffer-file-name)
2935 (buffer-file-name) 2718 (buffer-file-name)
2936 nil))) 2719 nil)))
@@ -2939,7 +2722,7 @@ updated."
2939 (newcf (if newcfd newcfd)) 2722 (newcf (if newcfd newcfd))
2940 (lastb (current-buffer)) 2723 (lastb (current-buffer))
2941 (sucf-recursive (boundp 'sucf-recursive)) 2724 (sucf-recursive (boundp 'sucf-recursive))
2942 (case-fold-search read-file-name-completion-ignore-case)) 2725 (case-fold-search t))
2943 (if (and newcf 2726 (if (and newcf
2944 ;; check here, that way we won't refresh to newcf until 2727 ;; check here, that way we won't refresh to newcf until
2945 ;; its been written, thus saving ourselves some time 2728 ;; its been written, thus saving ourselves some time
@@ -2949,11 +2732,11 @@ updated."
2949 ;; It is important to select the frame, otherwise the window 2732 ;; It is important to select the frame, otherwise the window
2950 ;; we want the cursor to move in will not be updated by the 2733 ;; we want the cursor to move in will not be updated by the
2951 ;; search-forward command. 2734 ;; search-forward command.
2952 (select-frame speedbar-frame) 2735 (select-frame (speedbar-current-frame))
2953 ;; Remove the old file... 2736 ;; Remove the old file...
2954 (speedbar-clear-current-file) 2737 (speedbar-clear-current-file)
2955 ;; now highlight the new one. 2738 ;; now highlight the new one.
2956 (set-buffer speedbar-buffer) 2739 ;; (set-buffer speedbar-buffer)
2957 (speedbar-with-writable 2740 (speedbar-with-writable
2958 (if (speedbar-find-selected-file newcf) 2741 (if (speedbar-find-selected-file newcf)
2959 ;; put the property on it 2742 ;; put the property on it
@@ -2979,7 +2762,13 @@ updated."
2979 (setq speedbar-last-selected-file newcf)) 2762 (setq speedbar-last-selected-file newcf))
2980 (if (not sucf-recursive) 2763 (if (not sucf-recursive)
2981 (progn 2764 (progn
2982 (speedbar-center-buffer-smartly) 2765
2766 ;;Sat Dec 15 2001 12:40 AM (burton@openprivacy.org): this
2767 ;;doesn't need to be in. We don't want to recenter when we are
2768 ;;updating files.
2769
2770 ;;(speedbar-center-buffer-smartly)
2771
2983 (speedbar-position-cursor-on-line) 2772 (speedbar-position-cursor-on-line)
2984 )) 2773 ))
2985 (set-buffer lastb) 2774 (set-buffer lastb)
@@ -2997,6 +2786,7 @@ indicator, then do not add a space."
2997 ;; The nature of the beast: Assume we are in "the right place" 2786 ;; The nature of the beast: Assume we are in "the right place"
2998 (end-of-line) 2787 (end-of-line)
2999 (skip-chars-backward (concat " " speedbar-vc-indicator 2788 (skip-chars-backward (concat " " speedbar-vc-indicator
2789 speedbar-object-read-only-indicator
3000 (car speedbar-obj-indicator) 2790 (car speedbar-obj-indicator)
3001 (cdr speedbar-obj-indicator))) 2791 (cdr speedbar-obj-indicator)))
3002 (if (and (not (looking-at speedbar-indicator-regex)) 2792 (if (and (not (looking-at speedbar-indicator-regex))
@@ -3011,7 +2801,43 @@ indicator, then do not add a space."
3011 (delete-region (match-beginning 0) (match-end 0)))) 2801 (delete-region (match-beginning 0) (match-end 0))))
3012 (end-of-line) 2802 (end-of-line)
3013 (if (not (string= " " indicator-string)) 2803 (if (not (string= " " indicator-string))
3014 (insert indicator-string)))) 2804 (let ((start (point)))
2805 (insert indicator-string)
2806 (speedbar-insert-image-button-maybe start (length indicator-string))
2807 ))))
2808
2809(defun speedbar-check-read-only ()
2810 "Scan all the files in a directory, and for each see if it is read only."
2811 ;; Check for to-do to be reset. If reset but no RCS is available
2812 ;; then set to nil (do nothing) otherwise, start at the beginning
2813 (save-excursion
2814 (if speedbar-buffer (set-buffer speedbar-buffer))
2815 (if (eq speedbar-ro-to-do-point t)
2816 (setq speedbar-ro-to-do-point 0))
2817 (if (numberp speedbar-ro-to-do-point)
2818 (progn
2819 (goto-char speedbar-ro-to-do-point)
2820 (while (and (not (input-pending-p))
2821 (re-search-forward "^\\([0-9]+\\):\\s-*[[<][+-\?][]>] "
2822 nil t))
2823 (setq speedbar-ro-to-do-point (point))
2824 (let ((f (speedbar-line-file)))
2825 (if f
2826 (if (not (file-writable-p f))
2827 (speedbar-add-indicator
2828 speedbar-object-read-only-indicator
2829 (regexp-quote speedbar-object-read-only-indicator))
2830 (speedbar-add-indicator
2831 " " (regexp-quote
2832 speedbar-object-read-only-indicator))))))
2833 (if (input-pending-p)
2834 ;; return that we are incomplete
2835 nil
2836 ;; we are done, set to-do to nil
2837 (setq speedbar-ro-to-do-point nil)
2838 ;; and return t
2839 t))
2840 t)))
3015 2841
3016;; Load efs/ange-ftp only if compiling to remove byte-compiler warnings. 2842;; Load efs/ange-ftp only if compiling to remove byte-compiler warnings.
3017;; Steven L Baur <steve@xemacs.org> said this was important: 2843;; Steven L Baur <steve@xemacs.org> said this was important:
@@ -3026,26 +2852,30 @@ to add more types of version control systems."
3026 ;; Check for to-do to be reset. If reset but no RCS is available 2852 ;; Check for to-do to be reset. If reset but no RCS is available
3027 ;; then set to nil (do nothing) otherwise, start at the beginning 2853 ;; then set to nil (do nothing) otherwise, start at the beginning
3028 (save-excursion 2854 (save-excursion
3029 (set-buffer speedbar-buffer) 2855 (if speedbar-buffer (set-buffer speedbar-buffer))
3030 (if (and speedbar-vc-do-check (eq speedbar-vc-to-do-point t) 2856 (if (and speedbar-vc-do-check (eq speedbar-vc-to-do-point t)
3031 (speedbar-vc-check-dir-p default-directory) 2857 (speedbar-vc-check-dir-p default-directory)
3032 (not (or (and (featurep 'ange-ftp) 2858 (not (or (and (featurep 'ange-ftp)
3033 (string-match 2859 (string-match
3034 (car (if speedbar-xemacsp 2860 (car (symbol-value
3035 ange-ftp-path-format 2861 (if dframe-xemacsp
3036 ange-ftp-name-format)) 2862 'ange-ftp-directory-format
2863 'ange-ftp-name-format)))
3037 (expand-file-name default-directory))) 2864 (expand-file-name default-directory)))
3038 ;; efs support: Bob Weiner 2865 ;; efs support: Bob Weiner
3039 (and (featurep 'efs) 2866 (and (featurep 'efs)
3040 (string-match 2867 (string-match
3041 (car efs-path-regexp) 2868 (let ((reg (symbol-value 'efs-directory-regexp)))
2869 (if (stringp reg)
2870 reg
2871 (car reg)))
3042 (expand-file-name default-directory)))))) 2872 (expand-file-name default-directory))))))
3043 (setq speedbar-vc-to-do-point 0)) 2873 (setq speedbar-vc-to-do-point 0))
3044 (if (numberp speedbar-vc-to-do-point) 2874 (if (numberp speedbar-vc-to-do-point)
3045 (progn 2875 (progn
3046 (goto-char speedbar-vc-to-do-point) 2876 (goto-char speedbar-vc-to-do-point)
3047 (while (and (not (input-pending-p)) 2877 (while (and (not (input-pending-p))
3048 (re-search-forward "^\\([0-9]+\\):\\s-*\\[[+-]\\] " 2878 (re-search-forward "^\\([0-9]+\\):\\s-*\\[[+-?]\\] "
3049 nil t)) 2879 nil t))
3050 (setq speedbar-vc-to-do-point (point)) 2880 (setq speedbar-vc-to-do-point (point))
3051 (if (speedbar-check-vc-this-line (match-string 1)) 2881 (if (speedbar-check-vc-this-line (match-string 1))
@@ -3066,8 +2896,8 @@ to add more types of version control systems."
3066 "Return t if the file on this line is check of of a version control system. 2896 "Return t if the file on this line is check of of a version control system.
3067Parameter DEPTH is a string with the current depth of indentation of 2897Parameter DEPTH is a string with the current depth of indentation of
3068the file being checked." 2898the file being checked."
3069 (let* ((d (string-to-int depth)) 2899 (let* ((d (string-to-number depth))
3070 (f (speedbar-line-path d)) 2900 (f (speedbar-line-directory d))
3071 (fn (buffer-substring-no-properties 2901 (fn (buffer-substring-no-properties
3072 ;; Skip-chars: thanks ptype@dra.hmg.gb 2902 ;; Skip-chars: thanks ptype@dra.hmg.gb
3073 (point) (progn 2903 (point) (progn
@@ -3081,41 +2911,54 @@ the file being checked."
3081 (and (file-writable-p fulln) 2911 (and (file-writable-p fulln)
3082 (speedbar-this-file-in-vc f fn)))) 2912 (speedbar-this-file-in-vc f fn))))
3083 2913
3084(defun speedbar-vc-check-dir-p (path) 2914(defun speedbar-vc-check-dir-p (directory)
3085 "Return t if we should bother checking PATH for version control files. 2915 "Return t if we should bother checking DIRECTORY for version control files.
3086This can be overloaded to add new types of version control systems." 2916This can be overloaded to add new types of version control systems."
3087 (or 2917 (or
2918 ;; Local CVS available in Emacs 21
2919 (and (fboundp 'vc-state)
2920 (file-exists-p (concat directory "CVS/")))
3088 ;; Local RCS 2921 ;; Local RCS
3089 (file-exists-p (concat path "RCS/")) 2922 (file-exists-p (concat directory "RCS/"))
3090 ;; Local SCCS 2923 ;; Local SCCS
3091 (file-exists-p (concat path "SCCS/")) 2924 (file-exists-p (concat directory "SCCS/"))
3092 ;; Remote SCCS project 2925 ;; Remote SCCS project
3093 (let ((proj-dir (getenv "PROJECTDIR"))) 2926 (let ((proj-dir (getenv "PROJECTDIR")))
3094 (if proj-dir 2927 (if proj-dir
3095 (file-exists-p (concat proj-dir "/SCCS")) 2928 (file-exists-p (concat proj-dir "/SCCS"))
3096 nil)) 2929 nil))
3097 ;; User extension 2930 ;; User extension
3098 (run-hook-with-args 'speedbar-vc-path-enable-hook path) 2931 (run-hook-with-args-until-success 'speedbar-vc-directory-enable-hook
2932 directory)
3099 )) 2933 ))
3100 2934
3101(defun speedbar-this-file-in-vc (path name) 2935(defun speedbar-this-file-in-vc (directory name)
3102 "Check to see if the file in PATH with NAME is in a version control system. 2936 "Check to see if the file in DIRECTORY with NAME is in a version control system.
3103You can add new VC systems by overriding this function. You can 2937You can add new VC systems by overriding this function. You can
3104optimize this function by overriding it and only doing those checks 2938optimize this function by overriding it and only doing those checks
3105that will occur on your system." 2939that will occur on your system."
3106 (or 2940 (or
3107 ;; RCS file name 2941 (if (fboundp 'vc-state)
3108 (file-exists-p (concat path "RCS/" name ",v")) 2942 ;; Emacs 21 handles VC state in a nice way.
3109 (file-exists-p (concat path "RCS/" name)) 2943 (condition-case nil
3110 ;; Local SCCS file name 2944 (let ((state (vc-state (concat directory name))))
3111 (file-exists-p (concat path "SCCS/s." name)) 2945 (not (or (eq 'up-to-date state)
3112 ;; Remote SCCS file name 2946 (null state))))
3113 (let ((proj-dir (getenv "PROJECTDIR"))) 2947 ;; An error means not in a VC system
3114 (if proj-dir 2948 (error nil))
3115 (file-exists-p (concat proj-dir "/SCCS/s." name)) 2949 (or
3116 nil)) 2950 ;; RCS file name
2951 (file-exists-p (concat directory "RCS/" name ",v"))
2952 (file-exists-p (concat directory "RCS/" name))
2953 ;; Local SCCS file name
2954 (file-exists-p (concat directory "SCCS/s." name))
2955 ;; Remote SCCS file name
2956 (let ((proj-dir (getenv "PROJECTDIR")))
2957 (if proj-dir
2958 (file-exists-p (concat proj-dir "/SCCS/s." name))
2959 nil))))
3117 ;; User extension 2960 ;; User extension
3118 (run-hook-with-args 'speedbar-vc-in-control-hook path name) 2961 (run-hook-with-args 'speedbar-vc-in-control-hook directory name)
3119 )) 2962 ))
3120 2963
3121;; Objet File scanning 2964;; Objet File scanning
@@ -3126,7 +2969,7 @@ to add more object types."
3126 ;; Check for to-do to be reset. If reset but no RCS is available 2969 ;; Check for to-do to be reset. If reset but no RCS is available
3127 ;; then set to nil (do nothing) otherwise, start at the beginning 2970 ;; then set to nil (do nothing) otherwise, start at the beginning
3128 (save-excursion 2971 (save-excursion
3129 (set-buffer speedbar-buffer) 2972 (if speedbar-buffer (set-buffer speedbar-buffer))
3130 (if (and speedbar-obj-do-check (eq speedbar-obj-to-do-point t)) 2973 (if (and speedbar-obj-do-check (eq speedbar-obj-to-do-point t))
3131 (setq speedbar-obj-to-do-point 0)) 2974 (setq speedbar-obj-to-do-point 0))
3132 (if (numberp speedbar-obj-to-do-point) 2975 (if (numberp speedbar-obj-to-do-point)
@@ -3155,8 +2998,8 @@ to add more object types."
3155 "Return t if the file on this line has an associated object. 2998 "Return t if the file on this line has an associated object.
3156Parameter DEPTH is a string with the current depth of indentation of 2999Parameter DEPTH is a string with the current depth of indentation of
3157the file being checked." 3000the file being checked."
3158 (let* ((d (string-to-int depth)) 3001 (let* ((d (string-to-number depth))
3159 (f (speedbar-line-path d)) 3002 (f (speedbar-line-directory d))
3160 (fn (buffer-substring-no-properties 3003 (fn (buffer-substring-no-properties
3161 ;; Skip-chars: thanks ptype@dra.hmg.gb 3004 ;; Skip-chars: thanks ptype@dra.hmg.gb
3162 (point) (progn 3005 (point) (progn
@@ -3186,28 +3029,6 @@ the file being checked."
3186 3029
3187;;; Clicking Activity 3030;;; Clicking Activity
3188;; 3031;;
3189(defun speedbar-mouse-set-point (e)
3190 "Set POINT based on event E.
3191Handle clicking on images in XEmacs."
3192 (if (and (fboundp 'event-over-glyph-p) (event-over-glyph-p e))
3193 ;; We are in XEmacs, and clicked on a picture
3194 (let ((ext (event-glyph-extent e)))
3195 ;; This position is back inside the extent where the
3196 ;; junk we pushed into the property list lives.
3197 (if (extent-end-position ext)
3198 (goto-char (1- (extent-end-position ext)))
3199 (mouse-set-point e)))
3200 ;; We are not in XEmacs, OR we didn't click on a picture.
3201 (mouse-set-point e)))
3202
3203(defun speedbar-quick-mouse (e)
3204 "Since mouse events are strange, this will keep the mouse nicely positioned.
3205This should be bound to mouse event E."
3206 (interactive "e")
3207 (speedbar-mouse-set-point e)
3208 (speedbar-position-cursor-on-line)
3209 )
3210
3211(defun speedbar-position-cursor-on-line () 3032(defun speedbar-position-cursor-on-line ()
3212 "Position the cursor on a line." 3033 "Position the cursor on a line."
3213 (let ((oldpos (point))) 3034 (let ((oldpos (point)))
@@ -3216,47 +3037,22 @@ This should be bound to mouse event E."
3216 (goto-char (1- (match-end 0))) 3037 (goto-char (1- (match-end 0)))
3217 (goto-char oldpos)))) 3038 (goto-char oldpos))))
3218 3039
3219(defun speedbar-power-click (e)
3220 "Activate any speedbar button as a power click.
3221A power click will dispose of cached data (if available) or bring a buffer
3222up into a different window.
3223This should be bound to mouse event E."
3224 (interactive "e")
3225 (let ((speedbar-power-click t))
3226 (speedbar-click e)))
3227
3228(defun speedbar-click (e) 3040(defun speedbar-click (e)
3229 "Activate any speedbar buttons where the mouse is clicked. 3041 "Activate any speedbar buttons where the mouse is clicked.
3230This must be bound to a mouse event. A button is any location of text 3042This must be bound to a mouse event. A button is any location of text
3231with a mouse face that has a text property called `speedbar-function'. 3043with a mouse face that has a text property called `speedbar-function'.
3232This should be bound to mouse event E." 3044Argument E is the click event."
3233 (interactive "e") 3045 ;; Backward compatibility let statement.
3234 (speedbar-mouse-set-point e) 3046 (let ((speedbar-power-click dframe-power-click))
3235 (speedbar-do-function-pointer) 3047 (speedbar-do-function-pointer))
3236 (speedbar-quick-mouse e)) 3048 (dframe-quick-mouse e))
3237
3238(defun speedbar-double-click (e)
3239 "Activate any speedbar buttons where the mouse is clicked.
3240This must be bound to a mouse event. A button is any location of text
3241with a mouse face that has a text property called `speedbar-function'.
3242This should be bound to mouse event E."
3243 (interactive "e")
3244 ;; Emacs only. XEmacs handles this via `mouse-track-click-hook'.
3245 (cond ((eq (car e) 'down-mouse-1)
3246 (speedbar-mouse-set-point e))
3247 ((eq (car e) 'mouse-1)
3248 (speedbar-quick-mouse e))
3249 ((or (eq (car e) 'double-down-mouse-1)
3250 (eq (car e) 'triple-down-mouse-1))
3251 (speedbar-mouse-set-point e)
3252 (speedbar-do-function-pointer)
3253 (speedbar-quick-mouse e))))
3254 3049
3255(defun speedbar-do-function-pointer () 3050(defun speedbar-do-function-pointer ()
3256 "Look under the cursor and examine the text properties. 3051 "Look under the cursor and examine the text properties.
3257From this extract the file/tag name, token, indentation level and call 3052From this extract the file/tag name, token, indentation level and call
3258a function if appropriate." 3053a function if appropriate."
3259 (let* ((fn (get-text-property (point) 'speedbar-function)) 3054 (let* ((speedbar-frame (speedbar-current-frame))
3055 (fn (get-text-property (point) 'speedbar-function))
3260 (tok (get-text-property (point) 'speedbar-token)) 3056 (tok (get-text-property (point) 'speedbar-token))
3261 ;; The 1-,+ is safe because scaning starts AFTER the point 3057 ;; The 1-,+ is safe because scaning starts AFTER the point
3262 ;; specified. This lets the search include the character the 3058 ;; specified. This lets the search include the character the
@@ -3286,9 +3082,8 @@ Optional argument P is where to start the search from."
3286 (if p (goto-char p)) 3082 (if p (goto-char p))
3287 (beginning-of-line) 3083 (beginning-of-line)
3288 (if (looking-at (concat 3084 (if (looking-at (concat
3289 "\\([0-9]+\\): *[[<{][-+?][]>}] \\([^ \n]+\\)\\(" 3085 "\\([0-9]+\\): *[[<{]?[-+?= ][]>}@()|] \\([^ \n]+\\)"))
3290 speedbar-indicator-regex "\\)?")) 3086 (get-text-property (match-beginning 2) 'speedbar-text)
3291 (match-string 2)
3292 nil))) 3087 nil)))
3293 3088
3294(defun speedbar-line-token (&optional p) 3089(defun speedbar-line-token (&optional p)
@@ -3298,7 +3093,7 @@ Optional argument P is where to start the search from."
3298 (if p (goto-char p)) 3093 (if p (goto-char p))
3299 (beginning-of-line) 3094 (beginning-of-line)
3300 (if (looking-at (concat 3095 (if (looking-at (concat
3301 "\\([0-9]+\\): *[[<{]?[-+?=][]>}@()|] \\([^ \n]+\\)\\(" 3096 "\\([0-9]+\\): *[[<{]?[-+?= ][]>}@()|] \\([^ \n]+\\)\\("
3302 speedbar-indicator-regex "\\)?")) 3097 speedbar-indicator-regex "\\)?"))
3303 (progn 3098 (progn
3304 (goto-char (match-beginning 2)) 3099 (goto-char (match-beginning 2))
@@ -3310,37 +3105,39 @@ Optional argument P is where to start the search from."
3310The return value is a string representing the file. If it is a 3105The return value is a string representing the file. If it is a
3311directory, then it is the directory name." 3106directory, then it is the directory name."
3312 (save-match-data 3107 (save-match-data
3313 (let ((f (speedbar-line-text p))) 3108 (save-restriction
3314 (if f 3109 (widen)
3315 (let* ((depth (string-to-int (match-string 1))) 3110 (let ((f (speedbar-line-text p)))
3316 (path (speedbar-line-path depth))) 3111 (if f
3317 (if (file-exists-p (concat path f)) 3112 (let* ((depth (string-to-number (match-string 1)))
3318 (concat path f) 3113 (directory (speedbar-line-directory depth)))
3319 nil)) 3114 (if (file-exists-p (concat directory f))
3320 nil)))) 3115 (concat directory f)
3116 nil))
3117 nil)))))
3321 3118
3322(defun speedbar-goto-this-file (file) 3119(defun speedbar-goto-this-file (file)
3323 "If FILE is displayed, go to this line and return t. 3120 "If FILE is displayed, go to this line and return t.
3324Otherwise do not move and return nil." 3121Otherwise do not move and return nil."
3325 (let ((path (substring (file-name-directory (expand-file-name file)) 3122 (let ((directory (substring (file-name-directory (expand-file-name file))
3326 (length (expand-file-name default-directory)))) 3123 (length (expand-file-name default-directory))))
3327 (dest (point))) 3124 (dest (point)))
3328 (save-match-data 3125 (save-match-data
3329 (goto-char (point-min)) 3126 (goto-char (point-min))
3330 ;; scan all the directories 3127 ;; scan all the directories
3331 (while (and path (not (eq path t))) 3128 (while (and directory (not (eq directory t)))
3332 (if (string-match "^[/\\]?\\([^/\\]+\\)" path) 3129 (if (string-match "^[/\\]?\\([^/\\]+\\)" directory)
3333 (let ((pp (match-string 1 path))) 3130 (let ((pp (match-string 1 directory)))
3334 (if (save-match-data 3131 (if (save-match-data
3335 (re-search-forward (concat "> " (regexp-quote pp) "$") 3132 (re-search-forward (concat "> " (regexp-quote pp) "$")
3336 nil t)) 3133 nil t))
3337 (setq path (substring path (match-end 1))) 3134 (setq directory (substring directory (match-end 1)))
3338 (setq path nil))) 3135 (setq directory nil)))
3339 (setq path t))) 3136 (setq directory t)))
3340 ;; find the file part 3137 ;; find the file part
3341 (if (or (not path) (string= (file-name-nondirectory file) "")) 3138 (if (or (not directory) (string= (file-name-nondirectory file) ""))
3342 ;; only had a dir part 3139 ;; only had a dir part
3343 (if path 3140 (if directory
3344 (progn 3141 (progn
3345 (speedbar-position-cursor-on-line) 3142 (speedbar-position-cursor-on-line)
3346 t) 3143 t)
@@ -3357,16 +3154,18 @@ Otherwise do not move and return nil."
3357 (goto-char dest) 3154 (goto-char dest)
3358 nil)))))) 3155 nil))))))
3359 3156
3360(defun speedbar-line-path (&optional depth) 3157(defun speedbar-line-directory (&optional depth)
3361 "Retrieve the pathname associated with the current line. 3158 "Retrieve the directory name associated with the current line.
3362This may require traversing backwards from DEPTH and combining the default 3159This may require traversing backwards from DEPTH and combining the default
3363directory with these items. This function is replaceable in 3160directory with these items. This function is replaceable in
3364`speedbar-mode-functions-list' as `speedbar-line-path'." 3161`speedbar-mode-functions-list' as `speedbar-line-directory'."
3365 (let ((rf (speedbar-fetch-replacement-function 'speedbar-line-path))) 3162 (save-restriction
3366 (if rf (funcall rf depth) default-directory))) 3163 (widen)
3367 3164 (let ((rf (speedbar-fetch-replacement-function 'speedbar-line-directory)))
3368(defun speedbar-files-line-path (&optional depth) 3165 (if rf (funcall rf depth) default-directory))))
3369 "Retrieve the pathname associated with the current line. 3166
3167(defun speedbar-files-line-directory (&optional depth)
3168 "Retrieve the directoryname associated with the current line.
3370This may require traversing backwards from DEPTH and combining the default 3169This may require traversing backwards from DEPTH and combining the default
3371directory with these items." 3170directory with these items."
3372 (save-excursion 3171 (save-excursion
@@ -3375,38 +3174,36 @@ directory with these items."
3375 (progn 3174 (progn
3376 (beginning-of-line) 3175 (beginning-of-line)
3377 (looking-at "^\\([0-9]+\\):") 3176 (looking-at "^\\([0-9]+\\):")
3378 (setq depth (string-to-int (match-string 1))))) 3177 (setq depth (string-to-number (match-string 1)))))
3379 (let ((path nil)) 3178 (let ((directory nil))
3380 (setq depth (1- depth)) 3179 (setq depth (1- depth))
3381 (while (/= depth -1) 3180 (while (/= depth -1)
3382 (if (not (re-search-backward (format "^%d:" depth) nil t)) 3181 (if (not (re-search-backward (format "^%d:" depth) nil t))
3383 (error "Error building path of tag") 3182 (error "Error building filename of tag")
3384 (cond ((looking-at "[0-9]+:\\s-*<->\\s-+\\([^\n]+\\)$") 3183 (cond ((looking-at "[0-9]+:\\s-*<->\\s-+\\([^\n]+\\)")
3385 (setq path (concat (buffer-substring-no-properties 3184 (setq directory (concat (speedbar-line-text)
3386 (match-beginning 1) (match-end 1))
3387 "/" 3185 "/"
3388 path))) 3186 directory)))
3389 ((looking-at "[0-9]+:\\s-*[-]\\s-+\\([^\n]+\\)$") 3187 ((looking-at "[0-9]+:\\s-*[-]\\s-+\\([^\n]+\\)")
3390 ;; This is the start of our path. 3188 ;; This is the start of our directory.
3391 (setq path (buffer-substring-no-properties 3189 (setq directory (speedbar-line-text)))))
3392 (match-beginning 1) (match-end 1))))))
3393 (setq depth (1- depth))) 3190 (setq depth (1- depth)))
3394 (if (and path 3191 (if (and directory
3395 (string-match (concat speedbar-indicator-regex "$") 3192 (string-match (concat speedbar-indicator-regex "$")
3396 path)) 3193 directory))
3397 (setq path (substring path 0 (match-beginning 0)))) 3194 (setq directory (substring directory 0 (match-beginning 0))))
3398 (concat default-directory path))))) 3195 (concat default-directory directory)))))
3399 3196
3400(defun speedbar-path-line (path) 3197(defun speedbar-directory-line (directory)
3401 "Position the cursor on the line specified by PATH." 3198 "Position the cursor on the line specified by DIRECTORY."
3402 (save-match-data 3199 (save-match-data
3403 (if (string-match "[/\\]$" path) 3200 (if (string-match "[/\\]$" directory)
3404 (setq path (substring path 0 (match-beginning 0)))) 3201 (setq directory (substring directory 0 (match-beginning 0))))
3405 (let ((nomatch t) (depth 0) 3202 (let ((nomatch t) (depth 0)
3406 (fname (file-name-nondirectory path)) 3203 (fname (file-name-nondirectory directory))
3407 (pname (file-name-directory path))) 3204 (pname (file-name-directory directory)))
3408 (if (not (member pname speedbar-shown-directories)) 3205 (if (not (member pname speedbar-shown-directories))
3409 (error "Internal Error: File %s not shown in speedbar" path)) 3206 (error "Internal Error: File %s not shown in speedbar" directory))
3410 (goto-char (point-min)) 3207 (goto-char (point-min))
3411 (while (and nomatch 3208 (while (and nomatch
3412 (re-search-forward 3209 (re-search-forward
@@ -3415,8 +3212,8 @@ directory with these items."
3415 nil t)) 3212 nil t))
3416 (beginning-of-line) 3213 (beginning-of-line)
3417 (looking-at "\\([0-9]+\\):") 3214 (looking-at "\\([0-9]+\\):")
3418 (setq depth (string-to-int (match-string 0)) 3215 (setq depth (string-to-number (match-string 0))
3419 nomatch (not (string= pname (speedbar-line-path depth)))) 3216 nomatch (not (string= pname (speedbar-line-directory depth))))
3420 (end-of-line)) 3217 (end-of-line))
3421 (beginning-of-line) 3218 (beginning-of-line)
3422 (not nomatch)))) 3219 (not nomatch))))
@@ -3442,7 +3239,8 @@ directory with these items."
3442With universal argument ARG, flush cached data." 3239With universal argument ARG, flush cached data."
3443 (interactive "P") 3240 (interactive "P")
3444 (beginning-of-line) 3241 (beginning-of-line)
3445 (let ((speedbar-power-click arg)) 3242 (let* ((dframe-power-click arg)
3243 (speedbar-power-click arg))
3446 (condition-case nil 3244 (condition-case nil
3447 (progn 3245 (progn
3448 (re-search-forward ":\\s-*.\\+. " 3246 (re-search-forward ":\\s-*.\\+. "
@@ -3450,12 +3248,12 @@ With universal argument ARG, flush cached data."
3450 (forward-char -2) 3248 (forward-char -2)
3451 (speedbar-do-function-pointer)) 3249 (speedbar-do-function-pointer))
3452 (error (speedbar-position-cursor-on-line))))) 3250 (error (speedbar-position-cursor-on-line)))))
3453 3251
3454(defun speedbar-flush-expand-line () 3252(defun speedbar-flush-expand-line ()
3455 "Expand the line under the cursor and flush any cached information." 3253 "Expand the line under the cursor and flush any cached information."
3456 (interactive) 3254 (interactive)
3457 (speedbar-expand-line 1)) 3255 (speedbar-expand-line 1))
3458 3256
3459(defun speedbar-contract-line () 3257(defun speedbar-contract-line ()
3460 "Contract the line under the cursor." 3258 "Contract the line under the cursor."
3461 (interactive) 3259 (interactive)
@@ -3468,39 +3266,63 @@ With universal argument ARG, flush cached data."
3468 (speedbar-do-function-pointer)) 3266 (speedbar-do-function-pointer))
3469 (error (speedbar-position-cursor-on-line)))) 3267 (error (speedbar-position-cursor-on-line))))
3470 3268
3471(if speedbar-xemacsp 3269(defun speedbar-toggle-line-expansion ()
3472 (defalias 'speedbar-mouse-event-p 'button-press-event-p) 3270 "Contract or expand the line under the cursor."
3473 (defun speedbar-mouse-event-p (event) 3271 (interactive)
3474 "Return t if the event is a mouse related event." 3272 (beginning-of-line)
3475 ;; And Emacs does it this way 3273 (condition-case nil
3476 (if (and (listp event)
3477 (member (event-basic-type event)
3478 '(mouse-1 mouse-2 mouse-3)))
3479 t
3480 nil)))
3481
3482(defun speedbar-maybee-jump-to-attached-frame ()
3483 "Jump to the attached frame ONLY if this was not a mouse event."
3484 (if (or (not (speedbar-mouse-event-p last-input-event))
3485 speedbar-activity-change-focus-flag)
3486 (progn 3274 (progn
3487 (select-frame speedbar-attached-frame) 3275 (re-search-forward ":\\s-*.[-+]. "
3488 (other-frame 0)))) 3276 (save-excursion (end-of-line) (point)))
3277 (forward-char -2)
3278 (speedbar-do-function-pointer))
3279 (error (speedbar-position-cursor-on-line))))
3280
3281(defun speedbar-expand-line-descendants (&optional arg)
3282 "Expand the line under the cursor and all descendants.
3283Optional argument ARG indicates that any cache should be flushed."
3284 (interactive "P")
3285 (speedbar-expand-line arg)
3286 ;; Now, inside the area expaded here, expand all subnodes of
3287 ;; the same descendant type.
3288 (save-excursion
3289 (speedbar-next 1) ;; Move into the list.
3290 (let ((err nil))
3291 (while (not err)
3292 (condition-case nil
3293 (progn
3294 (speedbar-expand-line-descendants arg)
3295 (speedbar-restricted-next 1))
3296 (error (setq err t))))))
3297 )
3298
3299(defun speedbar-contract-line-descendants ()
3300 "Expand the line under the cursor and all descendants."
3301 (interactive)
3302 (speedbar-contract-line)
3303 ;; Don't need to do anything else since all descendants are
3304 ;; hidden by default anyway. Yay! It's easy.
3305 )
3489 3306
3490(defun speedbar-find-file (text token indent) 3307(defun speedbar-find-file (text token indent)
3491 "Speedbar click handler for filenames. 3308 "Speedbar click handler for filenames.
3492TEXT, the file will be displayed in the attached frame. 3309TEXT, the file will be displayed in the attached frame.
3493TOKEN is unused, but required by the click handler. INDENT is the 3310TOKEN is unused, but required by the click handler. INDENT is the
3494current indentation level." 3311current indentation level."
3495 (let ((cdd (speedbar-line-path indent))) 3312 (let ((cdd (speedbar-line-directory indent)))
3313 ;; Run before visiting file hook here.
3314 (let ((f (selected-frame)))
3315 (dframe-select-attached-frame speedbar-frame)
3316 (run-hooks 'speedbar-before-visiting-file-hook)
3317 (select-frame f))
3496 (speedbar-find-file-in-frame (concat cdd text)) 3318 (speedbar-find-file-in-frame (concat cdd text))
3497 (speedbar-stealthy-updates) 3319 (speedbar-stealthy-updates)
3498 (run-hooks 'speedbar-visiting-file-hook) 3320 (run-hooks 'speedbar-visiting-file-hook)
3499 ;; Reset the timer with a new timeout when cliking a file 3321 ;; Reset the timer with a new timeout when cliking a file
3500 ;; in case the user was navigating directories, we can cancel 3322 ;; in case the user was navigating directories, we can cancel
3501 ;; that other timer. 3323 ;; that other timer.
3502 (speedbar-set-timer speedbar-update-speed)) 3324 (speedbar-set-timer dframe-update-speed))
3503 (speedbar-maybee-jump-to-attached-frame)) 3325 (dframe-maybee-jump-to-attached-frame))
3504 3326
3505(defun speedbar-dir-follow (text token indent) 3327(defun speedbar-dir-follow (text token indent)
3506 "Speedbar click handler for directory names. 3328 "Speedbar click handler for directory names.
@@ -3508,7 +3330,7 @@ Clicking a directory will cause the speedbar to list files in
3508the subdirectory TEXT. TOKEN is an unused requirement. The 3330the subdirectory TEXT. TOKEN is an unused requirement. The
3509subdirectory chosen will be at INDENT level." 3331subdirectory chosen will be at INDENT level."
3510 (setq default-directory 3332 (setq default-directory
3511 (concat (expand-file-name (concat (speedbar-line-path indent) text)) 3333 (concat (expand-file-name (concat (speedbar-line-directory indent) text))
3512 "/")) 3334 "/"))
3513 ;; Because we leave speedbar as the current buffer, 3335 ;; Because we leave speedbar as the current buffer,
3514 ;; update contents will change directory without 3336 ;; update contents will change directory without
@@ -3528,7 +3350,7 @@ Handles end-of-sublist smartly."
3528 (end-of-line) (forward-char 1) 3350 (end-of-line) (forward-char 1)
3529 (let ((start (point))) 3351 (let ((start (point)))
3530 (while (and (looking-at "^\\([0-9]+\\):") 3352 (while (and (looking-at "^\\([0-9]+\\):")
3531 (> (string-to-int (match-string 1)) indent) 3353 (> (string-to-number (match-string 1)) indent)
3532 (not (eobp))) 3354 (not (eobp)))
3533 (forward-line 1) 3355 (forward-line 1)
3534 (beginning-of-line)) 3356 (beginning-of-line))
@@ -3542,7 +3364,7 @@ expanded. INDENT is the current indentation level."
3542 (cond ((string-match "+" text) ;we have to expand this dir 3364 (cond ((string-match "+" text) ;we have to expand this dir
3543 (setq speedbar-shown-directories 3365 (setq speedbar-shown-directories
3544 (cons (expand-file-name 3366 (cons (expand-file-name
3545 (concat (speedbar-line-path indent) token "/")) 3367 (concat (speedbar-line-directory indent) token "/"))
3546 speedbar-shown-directories)) 3368 speedbar-shown-directories))
3547 (speedbar-change-expand-button-char ?-) 3369 (speedbar-change-expand-button-char ?-)
3548 (speedbar-reset-scanners) 3370 (speedbar-reset-scanners)
@@ -3550,14 +3372,14 @@ expanded. INDENT is the current indentation level."
3550 (end-of-line) (forward-char 1) 3372 (end-of-line) (forward-char 1)
3551 (speedbar-with-writable 3373 (speedbar-with-writable
3552 (speedbar-default-directory-list 3374 (speedbar-default-directory-list
3553 (concat (speedbar-line-path indent) token "/") 3375 (concat (speedbar-line-directory indent) token "/")
3554 (1+ indent))))) 3376 (1+ indent)))))
3555 ((string-match "-" text) ;we have to contract this node 3377 ((string-match "-" text) ;we have to contract this node
3556 (speedbar-reset-scanners) 3378 (speedbar-reset-scanners)
3557 (let ((oldl speedbar-shown-directories) 3379 (let ((oldl speedbar-shown-directories)
3558 (newl nil) 3380 (newl nil)
3559 (td (expand-file-name 3381 (td (expand-file-name
3560 (concat (speedbar-line-path indent) token)))) 3382 (concat (speedbar-line-directory indent) token))))
3561 (while oldl 3383 (while oldl
3562 (if (not (string-match (concat "^" (regexp-quote td)) (car oldl))) 3384 (if (not (string-match (concat "^" (regexp-quote td)) (car oldl)))
3563 (setq newl (cons (car oldl) newl))) 3385 (setq newl (cons (car oldl) newl)))
@@ -3568,7 +3390,6 @@ expanded. INDENT is the current indentation level."
3568 ) 3390 )
3569 (t (error "Ooops... not sure what to do"))) 3391 (t (error "Ooops... not sure what to do")))
3570 (speedbar-center-buffer-smartly) 3392 (speedbar-center-buffer-smartly)
3571 (setq speedbar-last-selected-file nil)
3572 (save-excursion (speedbar-stealthy-updates))) 3393 (save-excursion (speedbar-stealthy-updates)))
3573 3394
3574(defun speedbar-directory-buttons-follow (text token indent) 3395(defun speedbar-directory-buttons-follow (text token indent)
@@ -3590,7 +3411,7 @@ The parameter TEXT and TOKEN are required, where TEXT is the button
3590clicked, and TOKEN is the file to expand. INDENT is the current 3411clicked, and TOKEN is the file to expand. INDENT is the current
3591indentation level." 3412indentation level."
3592 (cond ((string-match "+" text) ;we have to expand this file 3413 (cond ((string-match "+" text) ;we have to expand this file
3593 (let* ((fn (expand-file-name (concat (speedbar-line-path indent) 3414 (let* ((fn (expand-file-name (concat (speedbar-line-directory indent)
3594 token))) 3415 token)))
3595 (mode nil) 3416 (mode nil)
3596 (lst (speedbar-fetch-dynamic-tags fn))) 3417 (lst (speedbar-fetch-dynamic-tags fn)))
@@ -3611,17 +3432,20 @@ indentation level."
3611(defun speedbar-tag-find (text token indent) 3432(defun speedbar-tag-find (text token indent)
3612 "For the tag TEXT in a file TOKEN, go to that position. 3433 "For the tag TEXT in a file TOKEN, go to that position.
3613INDENT is the current indentation level." 3434INDENT is the current indentation level."
3614 (let ((file (speedbar-line-path indent))) 3435 (let ((file (speedbar-line-directory indent)))
3436 (let ((f (selected-frame)))
3437 (dframe-select-attached-frame speedbar-frame)
3438 (run-hooks 'speedbar-before-visiting-tag-hook)
3439 (select-frame f))
3615 (speedbar-find-file-in-frame file) 3440 (speedbar-find-file-in-frame file)
3616 (save-excursion (speedbar-stealthy-updates)) 3441 (save-excursion (speedbar-stealthy-updates))
3617 ;; Reset the timer with a new timeout when cliking a file 3442 ;; Reset the timer with a new timeout when cliking a file
3618 ;; in case the user was navigating directories, we can cancel 3443 ;; in case the user was navigating directories, we can cancel
3619 ;; that other timer. 3444 ;; that other timer.
3620 (speedbar-set-timer speedbar-update-speed) 3445 (speedbar-set-timer dframe-update-speed)
3621 (goto-char token) 3446 (goto-char token)
3622 (run-hooks 'speedbar-visiting-tag-hook) 3447 (run-hooks 'speedbar-visiting-tag-hook)
3623 ;;(recenter) 3448 (dframe-maybee-jump-to-attached-frame)
3624 (speedbar-maybee-jump-to-attached-frame)
3625 )) 3449 ))
3626 3450
3627(defun speedbar-tag-expand (text token indent) 3451(defun speedbar-tag-expand (text token indent)
@@ -3644,6 +3468,14 @@ level."
3644 3468
3645;;; Loading files into the attached frame. 3469;;; Loading files into the attached frame.
3646;; 3470;;
3471(defcustom speedbar-select-frame-method 'attached
3472 "*Specify how to select a frame for displaying a file.
3473A value of 'attached means to use the attached frame (the frame
3474that speedbar was started from.) A number such as 1 or -1 means to
3475pass that number to `other-frame' while selecting a frame from speedbar."
3476 :group 'speedbar
3477 :type 'sexp)
3478
3647(defun speedbar-find-file-in-frame (file) 3479(defun speedbar-find-file-in-frame (file)
3648 "This will load FILE into the speedbar attached frame. 3480 "This will load FILE into the speedbar attached frame.
3649If the file is being displayed in a different frame already, then raise that 3481If the file is being displayed in a different frame already, then raise that
@@ -3654,9 +3486,11 @@ frame instead."
3654 (progn 3486 (progn
3655 (select-window bwin) 3487 (select-window bwin)
3656 (raise-frame (window-frame bwin))) 3488 (raise-frame (window-frame bwin)))
3657 (if speedbar-power-click 3489 (if dframe-power-click
3658 (let ((pop-up-frames t)) (select-window (display-buffer buff))) 3490 (let ((pop-up-frames t)) (select-window (display-buffer buff)))
3659 (select-frame speedbar-attached-frame) 3491 (if (numberp speedbar-select-frame-method)
3492 (other-frame speedbar-select-frame-method)
3493 (dframe-select-attached-frame speedbar-frame))
3660 (switch-to-buffer buff)))) 3494 (switch-to-buffer buff))))
3661 ) 3495 )
3662 3496
@@ -3666,61 +3500,69 @@ frame instead."
3666 "Recenter a speedbar buffer so the current indentation level is all visible. 3500 "Recenter a speedbar buffer so the current indentation level is all visible.
3667This assumes that the cursor is on a file, or tag of a file which the user is 3501This assumes that the cursor is on a file, or tag of a file which the user is
3668interested in." 3502interested in."
3669 (if (<= (count-lines (point-min) (point-max))
3670 (1- (window-height (selected-window))))
3671 ;; whole buffer fits
3672 (let ((cp (point)))
3673 (goto-char (point-min))
3674 (recenter 0)
3675 (goto-char cp))
3676 ;; too big
3677 (let (depth start end exp p)
3678 (save-excursion
3679 (beginning-of-line)
3680 (setq depth (if (looking-at "[0-9]+")
3681 (string-to-int (buffer-substring-no-properties
3682 (match-beginning 0) (match-end 0)))
3683 0))
3684 (setq exp (format "^%d:\\s-*[[{<]\\([?+-]\\)[]>}]" depth)))
3685 (save-excursion
3686 (end-of-line)
3687 (if (re-search-backward exp nil t)
3688 (setq start (point))
3689 (setq start (point-min)))
3690 (save-excursion ;Not sure about this part.
3691 (end-of-line)
3692 (setq p (point))
3693 (while (and (not (re-search-forward exp nil t))
3694 (>= depth 0))
3695 (setq depth (1- depth))
3696 (setq exp (format "^%d:\\s-*[[{<]\\([?+-]\\)[]>}]" depth)))
3697 (if (/= (point) p)
3698 (setq end (point))
3699 (setq end (point-max)))))
3700 ;; Now work out the details of centering
3701 (let ((nl (count-lines start end))
3702 (cp (point)))
3703 (if (> nl (window-height (selected-window)))
3704 ;; We can't fit it all, so just center on cursor
3705 (progn (goto-char start)
3706 (recenter 1))
3707 ;; we can fit everything on the screen, but...
3708 (if (and (pos-visible-in-window-p start (selected-window))
3709 (pos-visible-in-window-p end (selected-window)))
3710 ;; we are all set!
3711 nil
3712 ;; we need to do something...
3713 (goto-char start)
3714 (let ((newcent (/ (- (window-height (selected-window)) nl) 2))
3715 (lte (count-lines start (point-max))))
3716 (if (and (< (+ newcent lte) (window-height (selected-window)))
3717 (> (- (window-height (selected-window)) lte 1)
3718 newcent))
3719 (setq newcent (- (window-height (selected-window))
3720 lte 1)))
3721 (recenter newcent))))
3722 (goto-char cp)))))
3723 3503
3504 (save-selected-window
3505
3506 (select-window (get-buffer-window speedbar-buffer t))
3507
3508 (set-buffer speedbar-buffer)
3509
3510 (if (<= (count-lines (point-min) (point-max))
3511 (1- (window-height (selected-window))))
3512 ;; whole buffer fits
3513 (let ((cp (point)))
3514
3515 (goto-char (point-min))
3516 (recenter 0)
3517 (goto-char cp))
3518 ;; too big
3519 (let (depth start end exp p)
3520 (save-excursion
3521 (beginning-of-line)
3522 (setq depth (if (looking-at "[0-9]+")
3523 (string-to-number (buffer-substring-no-properties
3524 (match-beginning 0) (match-end 0)))
3525 0))
3526 (setq exp (format "^%d:" depth)))
3527 (save-excursion
3528 (end-of-line)
3529 (if (re-search-backward exp nil t)
3530 (setq start (point))
3531 (setq start (point-min)))
3532 (save-excursion ;Not sure about this part.
3533 (end-of-line)
3534 (setq p (point))
3535 (while (and (not (re-search-forward exp nil t))
3536 (>= depth 0))
3537 (setq depth (1- depth))
3538 (setq exp (format "^%d:" depth)))
3539 (if (/= (point) p)
3540 (setq end (point))
3541 (setq end (point-max)))))
3542 ;; Now work out the details of centering
3543 (let ((nl (count-lines start end))
3544 (wl (1- (window-height (selected-window))))
3545 (cp (point)))
3546 (if (> nl wl)
3547 ;; We can't fit it all, so just center on cursor
3548 (progn (goto-char start)
3549 (recenter 1))
3550 ;; we can fit everything on the screen, but...
3551 (if (and (pos-visible-in-window-p start (selected-window))
3552 (pos-visible-in-window-p end (selected-window)))
3553 ;; we are all set!
3554 nil
3555 ;; we need to do something...
3556 (goto-char start)
3557 (let ((newcent (/ (- (window-height (selected-window)) nl) 2))
3558 (lte (count-lines start (point-max))))
3559 (if (and (< (+ newcent lte) (window-height (selected-window)))
3560 (> (- (window-height (selected-window)) lte 1)
3561 newcent))
3562 (setq newcent (- (window-height (selected-window))
3563 lte 1)))
3564 (recenter newcent))))
3565 (goto-char cp))))))
3724 3566
3725;;; Tag Management -- List of expanders: 3567;;; Tag Management -- List of expanders:
3726;; 3568;;
@@ -3730,7 +3572,12 @@ This uses the entries in `speedbar-dynamic-tags-function-list'
3730to find the proper tags. It is up to each of those individual 3572to find the proper tags. It is up to each of those individual
3731functions to do caching and flushing if appropriate." 3573functions to do caching and flushing if appropriate."
3732 (save-excursion 3574 (save-excursion
3733 (set-buffer (find-file-noselect file)) 3575 ;; If a file is in memory, switch to that buffer. This allows
3576 ;; us to use the local variable. If the file is on disk, we
3577 ;; can try a few of the defaults that can get tags without
3578 ;; opening the file.
3579 (if (get-file-buffer file)
3580 (set-buffer (get-file-buffer file)))
3734 ;; If there is a buffer-local value of 3581 ;; If there is a buffer-local value of
3735 ;; speedbar-dynamic-tags-function-list, it will now be available. 3582 ;; speedbar-dynamic-tags-function-list, it will now be available.
3736 (let ((dtf speedbar-dynamic-tags-function-list) 3583 (let ((dtf speedbar-dynamic-tags-function-list)
@@ -3738,7 +3585,7 @@ functions to do caching and flushing if appropriate."
3738 (while (and (eq ret t) dtf) 3585 (while (and (eq ret t) dtf)
3739 (setq ret 3586 (setq ret
3740 (if (fboundp (car (car dtf))) 3587 (if (fboundp (car (car dtf)))
3741 (funcall (car (car dtf)) (buffer-file-name)) 3588 (funcall (car (car dtf)) file)
3742 t)) 3589 t))
3743 (if (eq ret t) 3590 (if (eq ret t)
3744 (setq dtf (cdr dtf)))) 3591 (setq dtf (cdr dtf))))
@@ -3762,7 +3609,8 @@ functions to do caching and flushing if appropriate."
3762Returns the tag list, or t for an error." 3609Returns the tag list, or t for an error."
3763 ;; Load this AND compile it in 3610 ;; Load this AND compile it in
3764 (require 'imenu) 3611 (require 'imenu)
3765 (if speedbar-power-click (setq imenu--index-alist nil)) 3612 (set-buffer (find-file-noselect file))
3613 (if dframe-power-click (setq imenu--index-alist nil))
3766 (condition-case nil 3614 (condition-case nil
3767 (let ((index-alist (imenu--make-index-alist t))) 3615 (let ((index-alist (imenu--make-index-alist t)))
3768 (if speedbar-sort-tags 3616 (if speedbar-sort-tags
@@ -3776,7 +3624,7 @@ Returns the tag list, or t for an error."
3776;; 3624;;
3777(defvar speedbar-fetch-etags-parse-list 3625(defvar speedbar-fetch-etags-parse-list
3778 '(;; Note that java has the same parse-group as c 3626 '(;; Note that java has the same parse-group as c
3779 ("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\)\\'" . 3627 ("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\|cxx\\|hxx\\)\\'" .
3780 speedbar-parse-c-or-c++tag) 3628 speedbar-parse-c-or-c++tag)
3781 ("^\\.emacs$\\|.\\(el\\|l\\|lsp\\)\\'" . 3629 ("^\\.emacs$\\|.\\(el\\|l\\|lsp\\)\\'" .
3782 "def[^i]+\\s-+\\(\\(\\w\\|[-_]\\)+\\)\\s-*\C-?") 3630 "def[^i]+\\s-+\\(\\(\\w\\|[-_]\\)+\\)\\s-*\C-?")
@@ -3906,7 +3754,7 @@ regular expression EXPR."
3906 (point)) 3754 (point))
3907 t))) 3755 t)))
3908 (if (and j sym) 3756 (if (and j sym)
3909 (1+ (string-to-int (buffer-substring-no-properties 3757 (1+ (string-to-number (buffer-substring-no-properties
3910 (match-beginning 2) 3758 (match-beginning 2)
3911 (match-end 2)))) 3759 (match-end 2))))
3912 0)))) 3760 0))))
@@ -3955,6 +3803,7 @@ regular expression EXPR."
3955 (define-key speedbar-buffers-key-map "+" 'speedbar-expand-line) 3803 (define-key speedbar-buffers-key-map "+" 'speedbar-expand-line)
3956 (define-key speedbar-buffers-key-map "=" 'speedbar-expand-line) 3804 (define-key speedbar-buffers-key-map "=" 'speedbar-expand-line)
3957 (define-key speedbar-buffers-key-map "-" 'speedbar-contract-line) 3805 (define-key speedbar-buffers-key-map "-" 'speedbar-contract-line)
3806 (define-key speedbar-buffers-key-map " " 'speedbar-toggle-line-expansion)
3958 3807
3959 ;; Buffer specific keybindings 3808 ;; Buffer specific keybindings
3960 (define-key speedbar-buffers-key-map "k" 'speedbar-buffer-kill-buffer) 3809 (define-key speedbar-buffers-key-map "k" 'speedbar-buffer-kill-buffer)
@@ -3975,28 +3824,29 @@ regular expression EXPR."
3975 (looking-at "[0-9]+: *.-. "))] 3824 (looking-at "[0-9]+: *.-. "))]
3976 ["Kill Buffer" speedbar-buffer-kill-buffer 3825 ["Kill Buffer" speedbar-buffer-kill-buffer
3977 (save-excursion (beginning-of-line) 3826 (save-excursion (beginning-of-line)
3978 (looking-at "[0-9]+: *.-. "))] 3827 (looking-at "[0-9]+: *.[-+?]. "))]
3979 ["Revert Buffer" speedbar-buffer-revert-buffer 3828 ["Revert Buffer" speedbar-buffer-revert-buffer
3980 (save-excursion (beginning-of-line) 3829 (save-excursion (beginning-of-line)
3981 (looking-at "[0-9]+: *.-. "))] 3830 (looking-at "[0-9]+: *.[-+?]. "))]
3982 ) 3831 )
3983 "Menu item elements shown when displaying a buffer list.") 3832 "Menu item elements shown when displaying a buffer list.")
3984 3833
3985(defun speedbar-buffer-buttons (directory zero) 3834(defun speedbar-buffer-buttons (directory zero)
3986 "Create speedbar buttons based on the buffers currently loaded. 3835 "Create speedbar buttons based on the buffers currently loaded.
3987DIRECTORY is the path to the currently active buffer, and ZERO is 0." 3836DIRECTORY is the directory to the currently active buffer, and ZERO is 0."
3988 (speedbar-buffer-buttons-engine nil)) 3837 (speedbar-buffer-buttons-engine nil))
3989 3838
3990(defun speedbar-buffer-buttons-temp (directory zero) 3839(defun speedbar-buffer-buttons-temp (directory zero)
3991 "Create speedbar buttons based on the buffers currently loaded. 3840 "Create speedbar buttons based on the buffers currently loaded.
3992DIRECTORY is the path to the currently active buffer, and ZERO is 0." 3841DIRECTORY is the directory to the currently active buffer, and ZERO is 0."
3993 (speedbar-buffer-buttons-engine t)) 3842 (speedbar-buffer-buttons-engine t))
3994 3843
3995(defun speedbar-buffer-buttons-engine (temp) 3844(defun speedbar-buffer-buttons-engine (temp)
3996 "Create speedbar buffer buttons. 3845 "Create speedbar buffer buttons.
3997If TEMP is non-nil, then clicking on a buffer restores the previous display." 3846If TEMP is non-nil, then clicking on a buffer restores the previous display."
3998 (insert "Active Buffers:\n") 3847 (speedbar-insert-separator "Active Buffers:")
3999 (let ((bl (buffer-list))) 3848 (let ((bl (buffer-list))
3849 (case-fold-search t))
4000 (while bl 3850 (while bl
4001 (if (string-match "^[ *]" (buffer-name (car bl))) 3851 (if (string-match "^[ *]" (buffer-name (car bl)))
4002 nil 3852 nil
@@ -4010,10 +3860,11 @@ If TEMP is non-nil, then clicking on a buffer restores the previous display."
4010 (if fname (file-name-nondirectory fname)) 3860 (if fname (file-name-nondirectory fname))
4011 (buffer-name (car bl)) 3861 (buffer-name (car bl))
4012 'speedbar-buffer-click temp 3862 'speedbar-buffer-click temp
4013 'speedbar-file-face 0))) 3863 'speedbar-file-face 0)
3864 (speedbar-buffers-tail-notes (car bl))))
4014 (setq bl (cdr bl))) 3865 (setq bl (cdr bl)))
4015 (setq bl (buffer-list)) 3866 (setq bl (buffer-list))
4016 (insert "Scratch Buffers:\n") 3867 (speedbar-insert-separator "Scratch Buffers:")
4017 (while bl 3868 (while bl
4018 (if (not (string-match "^\\*" (buffer-name (car bl)))) 3869 (if (not (string-match "^\\*" (buffer-name (car bl))))
4019 nil 3870 nil
@@ -4022,20 +3873,33 @@ If TEMP is non-nil, then clicking on a buffer restores the previous display."
4022 (speedbar-make-tag-line 'bracket ?? nil nil 3873 (speedbar-make-tag-line 'bracket ?? nil nil
4023 (buffer-name (car bl)) 3874 (buffer-name (car bl))
4024 'speedbar-buffer-click temp 3875 'speedbar-buffer-click temp
4025 'speedbar-file-face 0))) 3876 'speedbar-file-face 0)
3877 (speedbar-buffers-tail-notes (car bl))))
4026 (setq bl (cdr bl))) 3878 (setq bl (cdr bl)))
4027 (setq bl (buffer-list)) 3879 (setq bl (buffer-list))
4028 (insert "Hidden Buffers:\n") 3880 ;;(speedbar-insert-separator "Hidden Buffers:")
4029 (while bl 3881 ;;(while bl
4030 (if (not (string-match "^ " (buffer-name (car bl)))) 3882 ;; (if (not (string-match "^ " (buffer-name (car bl))))
4031 nil 3883 ;; nil
4032 (if (eq (car bl) speedbar-buffer) 3884 ;; (if (eq (car bl) speedbar-buffer)
4033 nil 3885 ;; nil
4034 (speedbar-make-tag-line 'bracket ?? nil nil 3886 ;; (speedbar-make-tag-line 'bracket ?? nil nil
4035 (buffer-name (car bl)) 3887 ;; (buffer-name (car bl))
4036 'speedbar-buffer-click temp 3888 ;; 'speedbar-buffer-click temp
4037 'speedbar-file-face 0))) 3889 ;; 'speedbar-file-face 0)
4038 (setq bl (cdr bl))))) 3890 ;; (speedbar-buffers-tail-notes (car bl))))
3891 ;; (setq bl (cdr bl)))
3892 ))
3893
3894(defun speedbar-buffers-tail-notes (buffer)
3895 "Add a note to the end of the last tag line.
3896Argument BUFFER is the buffer being tested."
3897 (let (mod ro)
3898 (save-excursion
3899 (set-buffer buffer)
3900 (setq mod (buffer-modified-p)
3901 ro buffer-read-only))
3902 (if ro (speedbar-insert-button "%" nil nil nil nil t))))
4039 3903
4040(defun speedbar-buffers-item-info () 3904(defun speedbar-buffers-item-info ()
4041 "Display information about the current buffer on the current line." 3905 "Display information about the current buffer on the current line."
@@ -4051,8 +3915,8 @@ If TEMP is non-nil, then clicking on a buffer restores the previous display."
4051 (buffer-size)) 3915 (buffer-size))
4052 (or (buffer-file-name buffer) "<No file>")))))) 3916 (or (buffer-file-name buffer) "<No file>"))))))
4053 3917
4054(defun speedbar-buffers-line-path (&optional depth) 3918(defun speedbar-buffers-line-directory (&optional depth)
4055 "Fetch the full path to the file (buffer) specified on the current line. 3919 "Fetch the full directory to the file (buffer) specified on the current line.
4056Optional argument DEPTH specifies the current depth of the back search." 3920Optional argument DEPTH specifies the current depth of the back search."
4057 (save-excursion 3921 (save-excursion
4058 (end-of-line) 3922 (end-of-line)
@@ -4066,15 +3930,17 @@ Optional argument DEPTH specifies the current depth of the back search."
4066 (if (save-excursion 3930 (if (save-excursion
4067 (end-of-line) 3931 (end-of-line)
4068 (eq start (point))) 3932 (eq start (point)))
4069 (file-name-directory (buffer-file-name buffer)) 3933 (or (save-excursion (set-buffer buffer)
3934 default-directory)
3935 "")
4070 (buffer-file-name buffer)))))))) 3936 (buffer-file-name buffer))))))))
4071 3937
4072(defun speedbar-buffer-click (text token indent) 3938(defun speedbar-buffer-click (text token indent)
4073 "When the users clicks on a buffer-button in speedbar. 3939 "When the users clicks on a buffer-button in speedbar.
4074TEXT is the buffer's name, TOKEN and INDENT are unused." 3940TEXT is the buffer's name, TOKEN and INDENT are unused."
4075 (if speedbar-power-click 3941 (if dframe-power-click
4076 (let ((pop-up-frames t)) (select-window (display-buffer text))) 3942 (let ((pop-up-frames t)) (select-window (display-buffer text)))
4077 (select-frame speedbar-attached-frame) 3943 (dframe-select-attached-frame speedbar-frame)
4078 (switch-to-buffer text) 3944 (switch-to-buffer text)
4079 (if token (speedbar-change-initial-expansion-list 3945 (if token (speedbar-change-initial-expansion-list
4080 speedbar-previously-used-expansion-list-name)))) 3946 speedbar-previously-used-expansion-list-name))))
@@ -4083,21 +3949,11 @@ TEXT is the buffer's name, TOKEN and INDENT are unused."
4083 "Kill the buffer the cursor is on in the speedbar buffer." 3949 "Kill the buffer the cursor is on in the speedbar buffer."
4084 (interactive) 3950 (interactive)
4085 (or (save-excursion 3951 (or (save-excursion
4086 (beginning-of-line) 3952 (let ((text (speedbar-line-text)))
4087 ;; If this fails, then it is a non-standard click, and as such, 3953 (if (and (get-buffer text)
4088 ;; perfectly allowed. 3954 (speedbar-y-or-n-p (format "Kill buffer %s? " text)))
4089 (if (re-search-forward "[]>?}] [^ ]" 3955 (kill-buffer text))
4090 (save-excursion (end-of-line) (point)) 3956 (speedbar-refresh)))))
4091 t)
4092 (let ((text (progn
4093 (forward-char -1)
4094 (buffer-substring (point) (save-excursion
4095 (end-of-line)
4096 (point))))))
4097 (if (and (get-buffer text)
4098 (speedbar-y-or-n-p (format "Kill buffer %s? " text)))
4099 (kill-buffer text))
4100 (speedbar-refresh))))))
4101 3957
4102(defun speedbar-buffer-revert-buffer () 3958(defun speedbar-buffer-revert-buffer ()
4103 "Revert the buffer the cursor is on in the speedbar buffer." 3959 "Revert the buffer the cursor is on in the speedbar buffer."
@@ -4168,7 +4024,7 @@ TEXT is the buffer's name, TOKEN and INDENT are unused."
4168 (:foreground "cyan4")) 4024 (:foreground "cyan4"))
4169 (((class color) (background dark)) 4025 (((class color) (background dark))
4170 (:foreground "cyan")) 4026 (:foreground "cyan"))
4171 (t (:weight bold))) 4027 (t (:bold t)))
4172 "Face used for file names." 4028 "Face used for file names."
4173 :group 'speedbar-faces) 4029 :group 'speedbar-faces)
4174 4030
@@ -4197,173 +4053,76 @@ TEXT is the buffer's name, TOKEN and INDENT are unused."
4197 (:background "green")) 4053 (:background "green"))
4198 (((class color) (background dark)) 4054 (((class color) (background dark))
4199 (:background "sea green")) 4055 (:background "sea green"))
4200 (((class grayscale mono) 4056 (((class grayscale monochrome)
4201 (background light)) 4057 (background light))
4202 (:background "black")) 4058 (:background "black"))
4203 (((class grayscale mono) 4059 (((class grayscale monochrome)
4204 (background dark)) 4060 (background dark))
4205 (:background "white"))) 4061 (:background "white")))
4206 "Face used for highlighting buttons with the mouse." 4062 "Face used for highlighting buttons with the mouse."
4207 :group 'speedbar-faces) 4063 :group 'speedbar-faces)
4208 4064
4209 4065(defface speedbar-separator-face '((((class color) (background light))
4210;;; Image loading and inlining 4066 (:background "blue"
4211;; 4067 :foreground "white"
4212 4068 :overline "gray"))
4213;;; Some images if defimage is available: 4069 (((class color) (background dark))
4214(eval-when-compile 4070 (:background "blue"
4215 4071 :foreground "white"
4216(if (fboundp 'defimage) 4072 :overline "gray"))
4217 (defalias 'defimage-speedbar 'defimage) 4073 (((class grayscale monochrome)
4218 4074 (background light))
4219 (if (not (fboundp 'make-glyph)) 4075 (:background "black"
4220 4076 :foreground "white"
4221(defmacro defimage-speedbar (variable imagespec docstring) 4077 :overline "white"))
4222 "Don't bother loading up an image... 4078 (((class grayscale monochrome)
4223Argument VARIABLE is the variable to define. 4079 (background dark))
4224Argument IMAGESPEC is the list defining the image to create. 4080 (:background "white"
4225Argument DOCSTRING is the documentation for VARIABLE." 4081 :foreground "black"
4226 `(defvar ,variable nil ,docstring)) 4082 :overline "black")))
4227 4083 "Face used for separator labes in a display."
4228;; ELSE 4084 :group 'speedbar-faces)
4229(defun speedbar-find-image-on-load-path (image)
4230 "Find the image file IMAGE on the load path."
4231 (let ((l load-path)
4232 (r nil))
4233 (while (and l (not r))
4234 (if (file-exists-p (concat (car l) "/" image))
4235 (setq r (concat (car l) "/" image)))
4236 (setq l (cdr l)))
4237 r))
4238
4239(defun speedbar-convert-emacs21-imagespec-to-xemacs (spec)
4240 "Convert the Emacs21 image SPEC into an XEmacs image spec."
4241 (let* ((sl (car spec))
4242 (itype (nth 1 sl))
4243 (ifile (nth 3 sl)))
4244 (vector itype ':file (speedbar-find-image-on-load-path ifile))))
4245
4246(defmacro defimage-speedbar (variable imagespec docstring)
4247 "Define VARIABLE as an image if `defimage' is not available.
4248IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
4249 `(defvar ,variable
4250 ;; The Emacs21 version of defimage looks just like the XEmacs image
4251 ;; specifier, except that it needs a :type keyword. If we line
4252 ;; stuff up right, we can use this cheat to support XEmacs specifiers.
4253 (condition-case nil
4254 (make-glyph
4255 (make-image-specifier
4256 (speedbar-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
4257 'buffer)
4258 (error nil))
4259 ,docstring)))))
4260
4261(defimage-speedbar speedbar-directory-plus
4262 ((:type xpm :file "sb-dir-plus.xpm" :ascent center))
4263 "Image used for closed directories with stuff in them.")
4264
4265(defimage-speedbar speedbar-directory-minus
4266 ((:type xpm :file "sb-dir-minus.xpm" :ascent center))
4267 "Image used for open directories with stuff in them.")
4268
4269(defimage-speedbar speedbar-directory
4270 ((:type xpm :file "sb-dir.xpm" :ascent center))
4271 "Image used for empty or unreadable directories.")
4272
4273(defimage-speedbar speedbar-page-plus
4274 ((:type xpm :file "sb-pg-plus.xpm" :ascent center))
4275 "Image used for closed files with stuff in them.")
4276
4277(defimage-speedbar speedbar-page-minus
4278 ((:type xpm :file "sb-pg-minus.xpm" :ascent center))
4279 "Image used for open files with stuff in them.")
4280
4281(defimage-speedbar speedbar-page
4282 ((:type xpm :file "sb-pg.xpm" :ascent center))
4283 "Image used for files that can't be opened.")
4284
4285(defimage-speedbar speedbar-tag
4286 ((:type xpm :file "sb-tag.xpm" :ascent center))
4287 "Image used for tags.")
4288
4289(defimage-speedbar speedbar-tag-plus
4290 ((:type xpm :file "sb-tag-plus.xpm" :ascent center))
4291 "Image used for closed tag groups.")
4292
4293(defimage-speedbar speedbar-tag-minus
4294 ((:type xpm :file "sb-tag-minus.xpm" :ascent center))
4295 "Image used for open tag groups.")
4296
4297(defimage-speedbar speedbar-tag-gt
4298 ((:type xpm :file "sb-tag-gt.xpm" :ascent center))
4299 "Image used for open tag groups.")
4300
4301(defimage-speedbar speedbar-tag-v
4302 ((:type xpm :file "sb-tag-v.xpm" :ascent center))
4303 "Image used for open tag groups.")
4304
4305(defimage-speedbar speedbar-tag-type
4306 ((:type xpm :file "sb-tag-type.xpm" :ascent center))
4307 "Image used for open tag groups.")
4308
4309(defimage-speedbar speedbar-mail
4310 ((:type xpm :file "sb-mail.xpm" :ascent center))
4311 "Image used for open tag groups.")
4312
4313(defvar speedbar-expand-image-button-alist
4314 '(("<+>" . speedbar-directory-plus)
4315 ("<->" . speedbar-directory-minus)
4316 ("< >" . speedbar-directory)
4317 ("[+]" . speedbar-page-plus)
4318 ("[-]" . speedbar-page-minus)
4319 ("[?]" . speedbar-page)
4320 ("{+}" . speedbar-tag-plus)
4321 ("{-}" . speedbar-tag-minus)
4322 ("<M>" . speedbar-mail)
4323 (" =>" . speedbar-tag)
4324 (" +>" . speedbar-tag-gt)
4325 (" ->" . speedbar-tag-v)
4326 (">" . speedbar-tag)
4327 ("@" . speedbar-tag-type)
4328 (" @" . speedbar-tag-type)
4329 )
4330 "List of text and image associations.")
4331
4332(defun speedbar-insert-image-button-maybe (start length)
4333 "Insert an image button based on text starting at START for LENGTH chars.
4334If buttontext is unknown, just insert that text.
4335If we have an image associated with it, use that image."
4336 (if speedbar-use-images
4337 (let* ((bt (buffer-substring start (+ length start)))
4338 (a (assoc bt speedbar-expand-image-button-alist)))
4339 ;; Regular images (created with `insert-image' are intangible
4340 ;; which (I suppose) make them more compatible with XEmacs 21.
4341 ;; Unfortunatly, there is a giant pile o code dependent on the
4342 ;; underlying text. This means if we leave it tangible, then I
4343 ;; don't have to change said giant piles o code.
4344 (if (and a (symbol-value (cdr a)))
4345 (if (featurep 'xemacs)
4346 (add-text-properties (+ start (length bt)) start
4347 (list 'end-glyph (symbol-value (cdr a))
4348 'rear-nonsticky (list 'display)
4349 'invisible t
4350 'detachable t))
4351 (add-text-properties start (+ start (length bt))
4352 (list 'display (symbol-value (cdr a))
4353 'rear-nonsticky (list 'display))))
4354 ;(message "Bad text [%s]" (buffer-substring start (+ start length)))
4355 ))))
4356
4357 4085
4358;; some edebug hooks 4086;; some edebug hooks
4359(add-hook 'edebug-setup-hook 4087(add-hook 'edebug-setup-hook
4360 (lambda () 4088 (lambda ()
4361 (def-edebug-spec speedbar-with-writable def-body))) 4089 (def-edebug-spec speedbar-with-writable def-body)))
4362 4090
4091;; Fix a font lock problem for some versions of Emacs
4092(if (boundp 'font-lock-global-modes)
4093 (if (listp font-lock-global-modes)
4094 (add-to-list 'font-lock-global-modes '(not speedbar-mode))
4095 )
4096 )
4097
4098
4099;;; Obsolete variables and functions
4100
4101(define-obsolete-variable-alias
4102 'speedbar-ignored-path-regexp 'speedbar-ignored-directory-regexp)
4103
4104(define-obsolete-variable-alias 'speedbar-ignored-path-expressions
4105 'speedbar-ignored-directory-expressions)
4106
4107(define-obsolete-function-alias 'speedbar-add-ignored-path-regexp
4108 'speedbar-add-ignored-directory-regexp)
4109
4110(define-obsolete-function-alias 'speedbar-line-path
4111 'speedbar-line-directory)
4112
4113(define-obsolete-function-alias 'speedbar-buffers-line-path
4114 'speedbar-buffers-line-directory)
4115
4116(define-obsolete-function-alias 'speedbar-path-line
4117 'speedbar-directory-line)
4118
4119(define-obsolete-function-alias 'speedbar-buffers-line-path
4120 'speedbar-buffers-line-directory)
4121
4363(provide 'speedbar) 4122(provide 'speedbar)
4364 4123
4365;; run load-time hooks 4124;; run load-time hooks
4366(run-hooks 'speedbar-load-hook) 4125(run-hooks 'speedbar-load-hook)
4367 4126
4368;; arch-tag: 4477e6d1-f78c-48b9-a503-387d3c9767d5 4127;; arch-tag: 4477e6d1-f78c-48b9-a503-387d3c9767d5
4369;;; speedbar.el ends here 4128;;; speedbar ends here
diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el
index 6ac270fea33..6f87f098f0b 100644
--- a/lisp/term/mac-win.el
+++ b/lisp/term/mac-win.el
@@ -1132,6 +1132,7 @@ correspoinding TextEncodingBase value."
1132(mac-add-charset-info "mac-symbol" 33) 1132(mac-add-charset-info "mac-symbol" 33)
1133(mac-add-charset-info "adobe-fontspecific" 33) ; for X-Symbol 1133(mac-add-charset-info "adobe-fontspecific" 33) ; for X-Symbol
1134(mac-add-charset-info "mac-dingbats" 34) 1134(mac-add-charset-info "mac-dingbats" 34)
1135(mac-add-charset-info "iso10646-1" 126) ; for ATSUI
1135 1136
1136 1137
1137;;;; Keyboard layout/language change events 1138;;;; Keyboard layout/language change events
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index c9fcd01d018..b13b080cf79 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -3379,7 +3379,7 @@ The POINT-LIST is expected to cover the first quadrant."
3379 ;; that look like: \ / instead we get: ( ) 3379 ;; that look like: \ / instead we get: ( )
3380 ;; \ / \ / 3380 ;; \ / \ /
3381 ;; --------- --------- 3381 ;; --------- ---------
3382 (let ((last-coord (last point-list))) 3382 (let ((last-coord (car (last point-list))))
3383 (if (= (artist-coord-get-new-char last-coord) ?/) 3383 (if (= (artist-coord-get-new-char last-coord) ?/)
3384 (artist-coord-set-new-char last-coord artist-ellipse-right-char))) 3384 (artist-coord-set-new-char last-coord artist-ellipse-right-char)))
3385 3385
@@ -3848,8 +3848,8 @@ Optional argument STATE can be used to set state (default is nil)."
3848 (x2 (artist-endpoint-get-x ep2)) 3848 (x2 (artist-endpoint-get-x ep2))
3849 (y2 (artist-endpoint-get-y ep2)) 3849 (y2 (artist-endpoint-get-y ep2))
3850 (dir1 (artist-find-direction x2 y2 x1 y1)) 3850 (dir1 (artist-find-direction x2 y2 x1 y1))
3851 (epn (last point-list)) 3851 (epn (car (last point-list)))
3852 (epn-1 (last point-list 2)) 3852 (epn-1 (car (last point-list 2)))
3853 (xn (artist-endpoint-get-x epn)) 3853 (xn (artist-endpoint-get-x epn))
3854 (yn (artist-endpoint-get-y epn)) 3854 (yn (artist-endpoint-get-y epn))
3855 (xn-1 (artist-endpoint-get-x epn-1)) 3855 (xn-1 (artist-endpoint-get-x epn-1))
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index b85299c27e5..2177f72fd0d 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -1120,7 +1120,7 @@ The CDRs of the elements are t for header keys and nil for crossref keys.")
1120 "Regexp matching the name of a valid BibTeX entry.") 1120 "Regexp matching the name of a valid BibTeX entry.")
1121 1121
1122(defvar bibtex-valid-entry-whitespace-re 1122(defvar bibtex-valid-entry-whitespace-re
1123 (concat "[ \t\n]*\\(" bibtex-valid-entry-re "\\)") 1123 (concat "[ \t]*\\(" bibtex-valid-entry-re "\\)")
1124 "Regexp matching the name of a valid BibTeX entry preceded by whitespace.") 1124 "Regexp matching the name of a valid BibTeX entry preceded by whitespace.")
1125 1125
1126(defvar bibtex-any-valid-entry-re 1126(defvar bibtex-any-valid-entry-re
@@ -2566,34 +2566,33 @@ Use `bibtex-summary-function' to generate summary."
2566 "Return summary of current BibTeX entry. 2566 "Return summary of current BibTeX entry.
2567Used as default value of `bibtex-summary-function'." 2567Used as default value of `bibtex-summary-function'."
2568 ;; It would be neat to customize this function. How? 2568 ;; It would be neat to customize this function. How?
2569 (save-excursion 2569 (if (looking-at bibtex-entry-maybe-empty-head)
2570 (if (looking-at bibtex-entry-maybe-empty-head) 2570 (let* ((bibtex-autokey-name-case-convert 'identity)
2571 (let* ((bibtex-autokey-name-case-convert 'identity) 2571 (bibtex-autokey-name-length 'infty)
2572 (bibtex-autokey-name-length 'infty) 2572 (bibtex-autokey-names 1)
2573 (bibtex-autokey-names 1) 2573 (bibtex-autokey-names-stretch 0)
2574 (bibtex-autokey-names-stretch 0) 2574 (bibtex-autokey-name-separator " ")
2575 (bibtex-autokey-name-separator " ") 2575 (bibtex-autokey-additional-names " etal")
2576 (bibtex-autokey-additional-names " etal") 2576 (names (bibtex-autokey-get-names))
2577 (names (bibtex-autokey-get-names)) 2577 (bibtex-autokey-year-length 4)
2578 (bibtex-autokey-year-length 4) 2578 (year (bibtex-autokey-get-year))
2579 (year (bibtex-autokey-get-year)) 2579 (bibtex-autokey-titlewords 5)
2580 (bibtex-autokey-titlewords 5) 2580 (bibtex-autokey-titlewords-stretch 2)
2581 (bibtex-autokey-titlewords-stretch 2) 2581 (bibtex-autokey-titleword-case-convert 'identity)
2582 (bibtex-autokey-titleword-case-convert 'identity) 2582 (bibtex-autokey-titleword-length 5)
2583 (bibtex-autokey-titleword-length 5) 2583 (bibtex-autokey-titleword-separator " ")
2584 (bibtex-autokey-titleword-separator " ") 2584 (title (bibtex-autokey-get-title))
2585 (title (bibtex-autokey-get-title)) 2585 (journal (bibtex-autokey-get-field
2586 (journal (bibtex-autokey-get-field 2586 "journal" bibtex-autokey-transcriptions))
2587 "journal" bibtex-autokey-transcriptions)) 2587 (volume (bibtex-autokey-get-field "volume"))
2588 (volume (bibtex-autokey-get-field "volume")) 2588 (pages (bibtex-autokey-get-field "pages" '(("-.*\\'" . "")))))
2589 (pages (bibtex-autokey-get-field "pages" '(("-.*\\'" . ""))))) 2589 (mapconcat (lambda (arg)
2590 (mapconcat (lambda (arg) 2590 (if (not (string= "" (cdr arg)))
2591 (if (not (string= "" (cdr arg))) 2591 (concat (car arg) (cdr arg))))
2592 (concat (car arg) (cdr arg)))) 2592 `((" " . ,names) (" " . ,year) (": " . ,title)
2593 `((" " . ,names) (" " . ,year) (": " . ,title) 2593 (", " . ,journal) (" " . ,volume) (":" . ,pages))
2594 (", " . ,journal) (" " . ,volume) (":" . ,pages)) 2594 ""))
2595 "")) 2595 (error "Entry not found")))
2596 (error "Entry not found"))))
2597 2596
2598(defun bibtex-pop (arg direction) 2597(defun bibtex-pop (arg direction)
2599 "Fill current field from the ARGth same field's text in DIRECTION. 2598 "Fill current field from the ARGth same field's text in DIRECTION.
@@ -3950,9 +3949,9 @@ If optional arg MOVE is non-nil move point to end of field."
3950 (insert " ") 3949 (insert " ")
3951 (indent-to-column bibtex-text-indentation))) 3950 (indent-to-column bibtex-text-indentation)))
3952 (re-search-forward "[ \t\n]*=[ \t\n]*" end-field)) 3951 (re-search-forward "[ \t\n]*=[ \t\n]*" end-field))
3953 (while (re-search-forward "[ \t\n]+" end-field 'move) 3952 ;; Paragraphs within fields are not preserved. Bother?
3954 (replace-match " ")) 3953 (fill-region-as-paragraph (line-beginning-position) end-field
3955 (do-auto-fill) 3954 default-justification nil (point))
3956 (if move (goto-char end-field)))) 3955 (if move (goto-char end-field))))
3957 3956
3958(defun bibtex-fill-field (&optional justify) 3957(defun bibtex-fill-field (&optional justify)
@@ -3992,13 +3991,14 @@ If `bibtex-align-at-equal-sign' is non-nil, align equal signs, too."
3992(defun bibtex-realign () 3991(defun bibtex-realign ()
3993 "Realign BibTeX entries such that they are separated by one blank line." 3992 "Realign BibTeX entries such that they are separated by one blank line."
3994 (goto-char (point-min)) 3993 (goto-char (point-min))
3995 (let ((case-fold-search t)) 3994 (let ((case-fold-search t)
3995 (valid-entry (concat "[ \t\n]*\\(" bibtex-valid-entry-re "\\)")))
3996 ;; No blank lines prior to the first valid entry if there no 3996 ;; No blank lines prior to the first valid entry if there no
3997 ;; non-white characters in front of it. 3997 ;; non-white characters in front of it.
3998 (when (looking-at bibtex-valid-entry-whitespace-re) 3998 (when (looking-at valid-entry)
3999 (replace-match "\\1")) 3999 (replace-match "\\1"))
4000 ;; Valid entries are separated by one blank line. 4000 ;; Valid entries are separated by one blank line.
4001 (while (re-search-forward bibtex-valid-entry-whitespace-re nil t) 4001 (while (re-search-forward valid-entry nil t)
4002 (replace-match "\n\n\\1")) 4002 (replace-match "\n\n\\1"))
4003 ;; One blank line past the last valid entry if it is followed by 4003 ;; One blank line past the last valid entry if it is followed by
4004 ;; non-white characters, no blank line otherwise. 4004 ;; non-white characters, no blank line otherwise.
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 151a32c60a9..bd91e2b9b3d 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -536,6 +536,7 @@ in your .emacs file.
536;*---------------------------------------------------------------------*/ 536;*---------------------------------------------------------------------*/
537(defun flyspell-mode-on () 537(defun flyspell-mode-on ()
538 "Turn Flyspell mode on. Do not use this; use `flyspell-mode' instead." 538 "Turn Flyspell mode on. Do not use this; use `flyspell-mode' instead."
539 (ispell-maybe-find-aspell-dictionaries)
539 (setq ispell-highlight-face 'flyspell-incorrect) 540 (setq ispell-highlight-face 'flyspell-incorrect)
540 ;; local dictionaries setup 541 ;; local dictionaries setup
541 (or ispell-local-dictionary ispell-dictionary 542 (or ispell-local-dictionary ispell-dictionary
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 8da812dd45a..aeb2e5f87da 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -892,7 +892,6 @@ and added as a submenu of the \"Edit\" menu.")
892 892
893(defun ispell-find-aspell-dictionaries () 893(defun ispell-find-aspell-dictionaries ()
894 "Find Aspell's dictionaries, and record in `ispell-dictionary-alist'." 894 "Find Aspell's dictionaries, and record in `ispell-dictionary-alist'."
895 (interactive)
896 (unless ispell-really-aspell 895 (unless ispell-really-aspell
897 (error "This function only works with aspell")) 896 (error "This function only works with aspell"))
898 (let ((dictionaries 897 (let ((dictionaries
@@ -1528,6 +1527,7 @@ quit spell session exited."
1528 (interactive (list ispell-following-word ispell-quietly current-prefix-arg)) 1527 (interactive (list ispell-following-word ispell-quietly current-prefix-arg))
1529 (if continue 1528 (if continue
1530 (ispell-continue) 1529 (ispell-continue)
1530 (ispell-maybe-find-aspell-dictionaries)
1531 (ispell-accept-buffer-local-defs) ; use the correct dictionary 1531 (ispell-accept-buffer-local-defs) ; use the correct dictionary
1532 (let ((cursor-location (point)) ; retain cursor location 1532 (let ((cursor-location (point)) ; retain cursor location
1533 (word (ispell-get-word following)) 1533 (word (ispell-get-word following))
@@ -2586,6 +2586,7 @@ a new one will be started when needed."
2586Return nil if spell session is quit, 2586Return nil if spell session is quit,
2587 otherwise returns shift offset amount for last line processed." 2587 otherwise returns shift offset amount for last line processed."
2588 (interactive "r") ; Don't flag errors on read-only bufs. 2588 (interactive "r") ; Don't flag errors on read-only bufs.
2589 (ispell-maybe-find-aspell-dictionaries)
2589 (if (not recheckp) 2590 (if (not recheckp)
2590 (ispell-accept-buffer-local-defs)) ; set up dictionary, local words, etc. 2591 (ispell-accept-buffer-local-defs)) ; set up dictionary, local words, etc.
2591 (let ((skip-region-start (make-marker)) 2592 (let ((skip-region-start (make-marker))
@@ -3547,7 +3548,6 @@ You can bind this to the key C-c i in GNUS or mail by adding to
3547 3548
3548(defun ispell-accept-buffer-local-defs () 3549(defun ispell-accept-buffer-local-defs ()
3549 "Load all buffer-local information, restarting Ispell when necessary." 3550 "Load all buffer-local information, restarting Ispell when necessary."
3550 (ispell-maybe-find-aspell-dictionaries)
3551 (ispell-buffer-local-dict) ; May kill ispell-process. 3551 (ispell-buffer-local-dict) ; May kill ispell-process.
3552 (ispell-buffer-local-words) ; Will initialize ispell-process. 3552 (ispell-buffer-local-words) ; Will initialize ispell-process.
3553 (ispell-buffer-local-parsing)) 3553 (ispell-buffer-local-parsing))
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 23885499828..24267b7b8f2 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -631,7 +631,10 @@ An alternative value is \" . \", if you use a font with a narrow period."
631 (,(concat "^\\(\\\\\\)end *{" verbs "}\\(.?\\)") (1 "|") (3 "<")) 631 (,(concat "^\\(\\\\\\)end *{" verbs "}\\(.?\\)") (1 "|") (3 "<"))
632 ;; ("^\\(\\\\\\)begin *{comment}" 1 "< b") 632 ;; ("^\\(\\\\\\)begin *{comment}" 1 "< b")
633 ;; ("^\\\\end *{comment}.*\\(\n\\)" 1 "> b") 633 ;; ("^\\\\end *{comment}.*\\(\n\\)" 1 "> b")
634 ("\\\\verb\\**\\([^a-z@*]\\)" 1 "\"")))) 634 ("\\\\verb\\**\\([^a-z@*]\\)"
635 ;; Do it last, because it uses syntax-ppss which needs the
636 ;; syntax-table properties of previous entries.
637 1 (tex-font-lock-verb (match-end 1))))))
635 638
636(defun tex-font-lock-unfontify-region (beg end) 639(defun tex-font-lock-unfontify-region (beg end)
637 (font-lock-default-unfontify-region beg end) 640 (font-lock-default-unfontify-region beg end)
@@ -670,22 +673,38 @@ An alternative value is \" . \", if you use a font with a narrow period."
670(put 'tex-verbatim-face 'face-alias 'tex-verbatim) 673(put 'tex-verbatim-face 'face-alias 'tex-verbatim)
671(defvar tex-verbatim-face 'tex-verbatim) 674(defvar tex-verbatim-face 'tex-verbatim)
672 675
676(defun tex-font-lock-verb (end)
677 "Place syntax-table properties on the \verb construct.
678END is the position of the first delimiter after \verb."
679 (unless (nth 8 (syntax-ppss end))
680 ;; Do nothing if the \verb construct is itself inside a comment or
681 ;; verbatim env.
682 (save-excursion
683 ;; Let's find the end and mark it.
684 ;; We used to do it inside tex-font-lock-syntactic-face-function, but
685 ;; this leads to funny effects when jumping to the end of the buffer,
686 ;; because font-lock applies font-lock-syntactic-keywords to the whole
687 ;; preceding text but font-lock-syntactic-face-function only to the
688 ;; actually displayed text.
689 (goto-char end)
690 (let ((char (char-before)))
691 (skip-chars-forward (string ?^ char)) ;; Use `end' ?
692 (when (eq (char-syntax (preceding-char)) ?/)
693 (put-text-property (1- (point)) (point) 'syntax-table '(1)))
694 (unless (eobp)
695 (put-text-property (point) (1+ (point)) 'syntax-table '(7))
696 ;; Cause the rest of the buffer to be re-fontified.
697 ;; (remove-text-properties (1+ (point)) (point-max) '(fontified))
698 )))
699 "\""))
700
673;; Use string syntax but math face for $...$. 701;; Use string syntax but math face for $...$.
674(defun tex-font-lock-syntactic-face-function (state) 702(defun tex-font-lock-syntactic-face-function (state)
675 (let ((char (nth 3 state))) 703 (let ((char (nth 3 state)))
676 (cond 704 (cond
677 ((not char) font-lock-comment-face) 705 ((not char) font-lock-comment-face)
678 ((eq char ?$) tex-math-face) 706 ((eq char ?$) tex-math-face)
679 (t 707 (t tex-verbatim-face))))
680 (when (characterp char)
681 ;; This is a \verb?...? construct. Let's find the end and mark it.
682 (save-excursion
683 (skip-chars-forward (string ?^ char)) ;; Use `end' ?
684 (when (eq (char-syntax (preceding-char)) ?/)
685 (put-text-property (1- (point)) (point) 'syntax-table '(1)))
686 (unless (eobp)
687 (put-text-property (point) (1+ (point)) 'syntax-table '(7)))))
688 tex-verbatim-face))))
689 708
690 709
691(defun tex-define-common-keys (keymap) 710(defun tex-define-common-keys (keymap)
diff --git a/lisp/toolbar/rescan.pbm b/lisp/toolbar/rescan.pbm
deleted file mode 100644
index a373ee8819c..00000000000
--- a/lisp/toolbar/rescan.pbm
+++ /dev/null
Binary files differ
diff --git a/lisp/toolbar/rescan.xpm b/lisp/toolbar/rescan.xpm
deleted file mode 100644
index 922b8f4a713..00000000000
--- a/lisp/toolbar/rescan.xpm
+++ /dev/null
@@ -1,35 +0,0 @@
1/* XPM */
2static char * mail_rescan_xpm[] = {
3/* columns rows colors chars-per-pixel */
4"24 24 6 1",
5" c None",
6". c black",
7"X c #a5d8a5d89550",
8"o c #d305d305bc3c",
9"O c #ea03ea03d271",
10"+ c #828282827474",
11/* pixels */
12" ",
13" ",
14" .............. ",
15" .XXXXXXXXXXXX.. ",
16" .XXXXXXXXXXXX.X. ",
17" .XXXXXXXXXXXX.oo. ",
18" ..............ooo. ",
19" .OOOOOOOOOOOO.ooo. ",
20" .O++++++++++O.ooo. ",
21" .O+XXXXXXXX+O.ooo. ",
22" .O+XXXXXXXX+O.ooo. ",
23" .O+XXXXXXXX+O.ooo. ",
24" .O+XXXXXXXX+O.ooo. ",
25" .O++++++++++O.ooo. ",
26" .OOOOOOOOOOOO.ooo. ",
27" .O++++++++++O.ooo. ",
28" .O+XXXXXXXX+O.ooo. ",
29" .O+XXXXXXXX+O.ooX. ",
30" .O+XXXXXXXX+O.oo.. ",
31" .O++++++++++O.o.. ",
32" ..OOOOOOOOOOOO... ",
33" ................ ",
34" ",
35" "};
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index be772251fd5..3eb850f85f3 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,8 @@
12005-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * url-http.el (url-http-create-request): Avoid incorrect implicit
4 unibyte->multibyte conversion.
5
12005-09-17 Richard M. Stallman <rms@gnu.org> 62005-09-17 Richard M. Stallman <rms@gnu.org>
2 7
3 * url-vars.el (url-mail-command): Don't test fboundp of `compose-mail'. 8 * url-vars.el (url-mail-command): Don't test fboundp of `compose-mail'.
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 14f5eab1b16..89b7be42c47 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -194,79 +194,92 @@ request.
194 (setq extra-headers (concat extra-headers "\r\n"))) 194 (setq extra-headers (concat extra-headers "\r\n")))
195 195
196 ;; This was done with a call to `format'. Concatting parts has 196 ;; This was done with a call to `format'. Concatting parts has
197 ;; the advantage of keeping the parts of each header togther and 197 ;; the advantage of keeping the parts of each header together and
198 ;; allows us to elide null lines directly, at the cost of making 198 ;; allows us to elide null lines directly, at the cost of making
199 ;; the layout less clear. 199 ;; the layout less clear.
200 (setq request 200 (setq request
201 (concat 201 ;; We used to concat directly, but if one of the strings happens
202 ;; The request 202 ;; to being multibyte (even if it only contains pure ASCII) then
203 (or url-request-method "GET") " " 203 ;; every string gets converted with `string-MAKE-multibyte' which
204 (if proxy-obj (url-recreate-url proxy-obj) real-fname) 204 ;; turns the 127-255 codes into things like latin-1 accented chars
205 " HTTP/" url-http-version "\r\n" 205 ;; (it would work right if it used `string-TO-multibyte' instead).
206 ;; Version of MIME we speak 206 ;; So to avoid the problem we force every string to be unibyte.
207 "MIME-Version: 1.0\r\n" 207 (mapconcat
208 ;; (maybe) Try to keep the connection open 208 ;; FIXME: Instead of `string-AS-unibyte' we'd want
209 "Connection: " (if (or proxy-obj 209 ;; `string-to-unibyte', so as to properly signal an error if one
210 (not url-http-attempt-keepalives)) 210 ;; of the strings contains a multibyte char.
211 "close" "keep-alive") "\r\n" 211 'string-as-unibyte
212 ;; HTTP extensions we support 212 (delq nil
213 (if url-extensions-header 213 (list
214 (format 214 ;; The request
215 "Extension: %s\r\n" url-extensions-header)) 215 (or url-request-method "GET") " "
216 ;; Who we want to talk to 216 (if proxy-obj (url-recreate-url proxy-obj) real-fname)
217 (if (/= (url-port (or proxy-obj url)) 217 " HTTP/" url-http-version "\r\n"
218 (url-scheme-get-property 218 ;; Version of MIME we speak
219 (url-type (or proxy-obj url)) 'default-port)) 219 "MIME-Version: 1.0\r\n"
220 (format 220 ;; (maybe) Try to keep the connection open
221 "Host: %s:%d\r\n" host (url-port (or proxy-obj url))) 221 "Connection: " (if (or proxy-obj
222 (format "Host: %s\r\n" host)) 222 (not url-http-attempt-keepalives))
223 ;; Who its from 223 "close" "keep-alive") "\r\n"
224 (if url-personal-mail-address 224 ;; HTTP extensions we support
225 (concat 225 (if url-extensions-header
226 "From: " url-personal-mail-address "\r\n")) 226 (format
227 ;; Encodings we understand 227 "Extension: %s\r\n" url-extensions-header))
228 (if url-mime-encoding-string 228 ;; Who we want to talk to
229 (concat 229 (if (/= (url-port (or proxy-obj url))
230 "Accept-encoding: " url-mime-encoding-string "\r\n")) 230 (url-scheme-get-property
231 (if url-mime-charset-string 231 (url-type (or proxy-obj url)) 'default-port))
232 (concat 232 (format
233 "Accept-charset: " url-mime-charset-string "\r\n")) 233 "Host: %s:%d\r\n" host (url-port (or proxy-obj url)))
234 ;; Languages we understand 234 (format "Host: %s\r\n" host))
235 (if url-mime-language-string 235 ;; Who its from
236 (concat 236 (if url-personal-mail-address
237 "Accept-language: " url-mime-language-string "\r\n")) 237 (concat
238 ;; Types we understand 238 "From: " url-personal-mail-address "\r\n"))
239 "Accept: " (or url-mime-accept-string "*/*") "\r\n" 239 ;; Encodings we understand
240 ;; User agent 240 (if url-mime-encoding-string
241 (url-http-user-agent-string) 241 (concat
242 ;; Proxy Authorization 242 "Accept-encoding: " url-mime-encoding-string "\r\n"))
243 proxy-auth 243 (if url-mime-charset-string
244 ;; Authorization 244 (concat
245 auth 245 "Accept-charset: " url-mime-charset-string "\r\n"))
246 ;; Cookies 246 ;; Languages we understand
247 (url-cookie-generate-header-lines host real-fname 247 (if url-mime-language-string
248 (equal "https" (url-type url))) 248 (concat
249 ;; If-modified-since 249 "Accept-language: " url-mime-language-string "\r\n"))
250 (if (and (not no-cache) 250 ;; Types we understand
251 (member url-request-method '("GET" nil))) 251 "Accept: " (or url-mime-accept-string "*/*") "\r\n"
252 (let ((tm (url-is-cached (or proxy-obj url)))) 252 ;; User agent
253 (if tm 253 (url-http-user-agent-string)
254 (concat "If-modified-since: " 254 ;; Proxy Authorization
255 (url-get-normalized-date tm) "\r\n")))) 255 proxy-auth
256 ;; Whence we came 256 ;; Authorization
257 (if ref-url (concat 257 auth
258 "Referer: " ref-url "\r\n")) 258 ;; Cookies
259 extra-headers 259 (url-cookie-generate-header-lines host real-fname
260 ;; Length of data 260 (equal "https" (url-type url)))
261 (if url-request-data 261 ;; If-modified-since
262 (concat 262 (if (and (not no-cache)
263 "Content-length: " (number-to-string 263 (member url-request-method '("GET" nil)))
264 (length url-request-data)) 264 (let ((tm (url-is-cached (or proxy-obj url))))
265 "\r\n")) 265 (if tm
266 ;; End request 266 (concat "If-modified-since: "
267 "\r\n" 267 (url-get-normalized-date tm) "\r\n"))))
268 ;; Any data 268 ;; Whence we came
269 url-request-data)) 269 (if ref-url (concat
270 "Referer: " ref-url "\r\n"))
271 extra-headers
272 ;; Length of data
273 (if url-request-data
274 (concat
275 "Content-length: " (number-to-string
276 (length url-request-data))
277 "\r\n"))
278 ;; End request
279 "\r\n"
280 ;; Any data
281 url-request-data))
282 ""))
270 (url-http-debug "Request is: \n%s" request) 283 (url-http-debug "Request is: \n%s" request)
271 request)) 284 request))
272 285
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index b6ce0aa0f67..c35a602e70c 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -58,6 +58,8 @@
58 58
59;;; Code: 59;;; Code:
60 60
61(defvar widget)
62
61;;; Compatibility. 63;;; Compatibility.
62 64
63(defun widget-event-point (event) 65(defun widget-event-point (event)
@@ -3028,12 +3030,12 @@ It will read a file name from the minibuffer when invoked."
3028 "Perform completion on file name preceding point." 3030 "Perform completion on file name preceding point."
3029 (interactive) 3031 (interactive)
3030 (let* ((end (point)) 3032 (let* ((end (point))
3031 (beg (save-excursion 3033 (beg (widget-field-start widget))
3032 (skip-chars-backward "^ ")
3033 (point)))
3034 (pattern (buffer-substring beg end)) 3034 (pattern (buffer-substring beg end))
3035 (name-part (file-name-nondirectory pattern)) 3035 (name-part (file-name-nondirectory pattern))
3036 (directory (file-name-directory pattern)) 3036 ;; I think defaulting to root is right
3037 ;; because these really should be absolute file names.
3038 (directory (or (file-name-directory pattern) "/"))
3037 (completion (file-name-completion name-part directory))) 3039 (completion (file-name-completion name-part directory)))
3038 (cond ((eq completion t)) 3040 (cond ((eq completion t))
3039 ((null completion) 3041 ((null completion)
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index 612e033c4cb..88a39ea679e 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -307,13 +307,17 @@ nil if not."
307 (action (aref state 5)) 307 (action (aref state 5))
308 (w (posn-window (event-start event)))) 308 (w (posn-window (event-start event))))
309 (when handler 309 (when handler
310 (if (and (windowp w) (window-live-p w)) 310 (if (and (windowp w) (window-live-p w)
311 ;; If dropping in a window, open files in that window rather 311 (not (window-minibuffer-p w))
312 ;; than in a new widow. 312 (not (window-dedicated-p w)))
313 (let ((dnd-open-file-other-window nil)) 313 ;; If dropping in an ordinary window which we could use,
314 ;; let dnd-open-file-other-window specify what to do.
315 (progn
314 (goto-char (posn-point (event-start event))) 316 (goto-char (posn-point (event-start event)))
315 (funcall handler window action data)) 317 (funcall handler window action data))
316 (let ((dnd-open-file-other-window t)) ;; Dropping on non-window. 318 ;; If we can't display the file here,
319 ;; make a new window for it.
320 (let ((dnd-open-file-other-window t))
317 (select-frame frame) 321 (select-frame frame)
318 (funcall handler window action data)))))) 322 (funcall handler window action data))))))
319 323
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 6e8f20024d2..c07a955b1c9 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,18 @@
12005-10-04 Kim F. Storm <storm@cua.dk>
2
3 * windows.texi (Window Split Tree): New section describing
4 new function window-split-tree function.
5
62005-10-03 Nick Roberts <nickrob@snap.net.nz>
7
8 * display.texi (Fringe Size/Pos): Simplify and add detail.
9
102005-09-30 Romain Francoise <romain@orebokech.com>
11
12 * minibuf.texi (High-Level Completion): Explain that the prompt
13 given to `read-buffer' should end with a colon and a space.
14 Update usage examples.
15
12005-09-29 Juri Linkov <juri@jurta.org> 162005-09-29 Juri Linkov <juri@jurta.org>
2 17
3 * display.texi (Displaying Messages): Rename argument name 18 * display.texi (Displaying Messages): Rename argument name
diff --git a/lispref/display.texi b/lispref/display.texi
index ae346986fa3..93a14f1a139 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -2730,23 +2730,25 @@ continuation, horizontal scrolling, and the overlay arrow.
2730@node Fringe Size/Pos 2730@node Fringe Size/Pos
2731@subsection Fringe Size and Position 2731@subsection Fringe Size and Position
2732 2732
2733 Here's how to control the position and width of the window fringes. 2733 The following buffer-local variables control the position and width
2734of the window fringes.
2734 2735
2735@defvar fringes-outside-margins 2736@defvar fringes-outside-margins
2736If the value is non-@code{nil}, the frames appear outside the display 2737The fringes normally appear between the display margins and the window
2737margins. The fringes normally appear between the display margins and 2738text. If the value is non-@code{nil}, they appear outside the display
2738the window text. It works to set @code{fringes-outside-margins} 2739margins. @xref{Display Margins}.
2739buffer-locally. @xref{Display Margins}.
2740@end defvar 2740@end defvar
2741 2741
2742@defvar left-fringe-width 2742@defvar left-fringe-width
2743This variable, if non-@code{nil}, specifies the width of the left 2743This variable, if non-@code{nil}, specifies the width of the left
2744fringe in pixels. 2744fringe in pixels. A value of @code{nil} means to use the left fringe
2745width from the window's frame.
2745@end defvar 2746@end defvar
2746 2747
2747@defvar right-fringe-width 2748@defvar right-fringe-width
2748This variable, if non-@code{nil}, specifies the width of the right 2749This variable, if non-@code{nil}, specifies the width of the right
2749fringe in pixels. 2750fringe in pixels. A value of @code{nil} means to use the right fringe
2751width from the window's frame.
2750@end defvar 2752@end defvar
2751 2753
2752 The values of these variables take effect when you display the 2754 The values of these variables take effect when you display the
diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi
index 04443c493f3..bc2342fc18e 100644
--- a/lispref/minibuf.texi
+++ b/lispref/minibuf.texi
@@ -1044,6 +1044,11 @@ return if the user exits with an empty minibuffer. If non-@code{nil},
1044it should be a string or a buffer. It is mentioned in the prompt, but 1044it should be a string or a buffer. It is mentioned in the prompt, but
1045is not inserted in the minibuffer as initial input. 1045is not inserted in the minibuffer as initial input.
1046 1046
1047The argument @var{prompt} should be a string ending with a colon and a
1048space. If @var{default} is non-@code{nil}, the function inserts it in
1049@var{prompt} before the colon to follow the convention for reading from
1050the minibuffer with a default value (@pxref{Programming Tips}).
1051
1047If @var{existing} is non-@code{nil}, then the name specified must be 1052If @var{existing} is non-@code{nil}, then the name specified must be
1048that of an existing buffer. The usual commands to exit the minibuffer 1053that of an existing buffer. The usual commands to exit the minibuffer
1049do not exit if the text is not valid, and @key{RET} does completion to 1054do not exit if the text is not valid, and @key{RET} does completion to
@@ -1058,7 +1063,7 @@ only buffer name starting with the given input is
1058@samp{minibuffer.texi}, so that name is the value. 1063@samp{minibuffer.texi}, so that name is the value.
1059 1064
1060@example 1065@example
1061(read-buffer "Buffer name? " "foo" t) 1066(read-buffer "Buffer name: " "foo" t)
1062@group 1067@group
1063;; @r{After evaluation of the preceding expression,} 1068;; @r{After evaluation of the preceding expression,}
1064;; @r{the following prompt appears,} 1069;; @r{the following prompt appears,}
@@ -1067,7 +1072,7 @@ only buffer name starting with the given input is
1067 1072
1068@group 1073@group
1069---------- Buffer: Minibuffer ---------- 1074---------- Buffer: Minibuffer ----------
1070Buffer name? (default foo) @point{} 1075Buffer name (default foo): @point{}
1071---------- Buffer: Minibuffer ---------- 1076---------- Buffer: Minibuffer ----------
1072@end group 1077@end group
1073 1078
diff --git a/lispref/windows.texi b/lispref/windows.texi
index 01e33f1c0d4..c806577c4b8 100644
--- a/lispref/windows.texi
+++ b/lispref/windows.texi
@@ -30,6 +30,7 @@ displayed in windows.
30* Size of Window:: Accessing the size of a window. 30* Size of Window:: Accessing the size of a window.
31* Resizing Windows:: Changing the size of a window. 31* Resizing Windows:: Changing the size of a window.
32* Coordinates and Windows:: Converting coordinates to windows. 32* Coordinates and Windows:: Converting coordinates to windows.
33* Window Split Tree:: The layout and sizes of all windows in a frame.
33* Window Configurations:: Saving and restoring the state of the screen. 34* Window Configurations:: Saving and restoring the state of the screen.
34* Window Hooks:: Hooks for scrolling, window size changes, 35* Window Hooks:: Hooks for scrolling, window size changes,
35 redisplay going past a certain point, 36 redisplay going past a certain point,
@@ -2167,6 +2168,32 @@ The function @code{coordinates-in-window-p} does not require a frame as
2167argument because it always uses the frame that @var{window} is on. 2168argument because it always uses the frame that @var{window} is on.
2168@end defun 2169@end defun
2169 2170
2171@node Window Split Tree
2172@section The Window Split Tree
2173@cindex window split tree
2174
2175 A @dfn{window split tree} specifies the layout, size, and relationship
2176between all windows in one frame.
2177
2178@defun split-window-tree &optional frame
2179This function returns the window split tree for frame @var{frame}.
2180If @var{frame} is omitted, the selected frame is used.
2181
2182The return value is a list of the form @code{(@var{root} @var{mini})},
2183where @var{root} represents the window split tree of the frame's
2184root window, and @var{mini} is the frame's minibuffer window.
2185
2186If the root window is not split, @var{root} is the root window itself.
2187Otherwise, @var{root} is a list @code{(@var{dir} @var{edges} @var{w1}
2188@var{w2} ...)} where @var{dir} is @code{nil} for a horisontal split,
2189and @code{t} for a vertical split, @var{edges} gives the combined size and
2190position of the subwindows in the split, and the rest of the elements
2191are the subwindows in the split. Each of the subwindows may again be
2192a window or a list representing a window split, and so on. The
2193@var{edges} element is a list @code{(@var{left}@var{ top}@var{ right}@var{ bottom})}
2194similar to the value returned by @code{window-edges}.
2195@end defun
2196
2170@node Window Configurations 2197@node Window Configurations
2171@section Window Configurations 2198@section Window Configurations
2172@cindex window configurations 2199@cindex window configurations
diff --git a/man/ChangeLog b/man/ChangeLog
index be1837d9cbf..c2dbbc22328 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,22 @@
12005-10-07 Nick Roberts <nickrob@snap.net.nz>
2
3 * building.texi (GDB Graphical Interface): Add variables and
4 functions to indices. Be more precise.
5
62005-10-05 Nick Roberts <nickrob@snap.net.nz>
7
8 * speedbar.texi (GDB): Describe use of watch expressions.
9
102005-10-03 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
11
12 * frames.texi (Drag and Drop): Remove the x- from
13 x-dnd-open-file-other-window and xdnd-protocol-alist.
14
152005-09-30 Romain Francoise <romain@orebokech.com>
16
17 * mini.texi (Minibuffer): The default value now appears before the
18 colon in minibuffer prompts.
19
12005-09-28 Simon Josefsson <jas@extundo.com> 202005-09-28 Simon Josefsson <jas@extundo.com>
2 21
3 * message.texi (IDNA): Fix. 22 * message.texi (IDNA): Fix.
diff --git a/man/building.texi b/man/building.texi
index 30daa8def26..a9a3cc049c7 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -749,6 +749,8 @@ ignores any numeric argument.
749@node GDB Graphical Interface 749@node GDB Graphical Interface
750@subsection GDB Graphical Interface 750@subsection GDB Graphical Interface
751 751
752@findex gdb-mouse-set-clear-breakpoint
753@findex gdb-mouse-toggle-breakpoint
752 By default, the command @code{gdb} starts GDB using a graphical 754 By default, the command @code{gdb} starts GDB using a graphical
753interface where you view and control the program's data using Emacs 755interface where you view and control the program's data using Emacs
754windows. You can still interact with GDB through the GUD buffer, but 756windows. You can still interact with GDB through the GUD buffer, but
@@ -854,7 +856,7 @@ relevant line. This is red when the breakpoint is enabled and grey
854when it is disabled. Text-only terminals correspondingly display 856when it is disabled. Text-only terminals correspondingly display
855a @samp{B} or @samp{b}. 857a @samp{B} or @samp{b}.
856 858
857@item @kbd{d} 859@item d
858@kindex d @r{(GDB breakpoints buffer)} 860@kindex d @r{(GDB breakpoints buffer)}
859@findex gdb-delete-breakpoint 861@findex gdb-delete-breakpoint
860Delete the breakpoint at the current line (@code{gdb-delete-breakpoint}). 862Delete the breakpoint at the current line (@code{gdb-delete-breakpoint}).
@@ -874,17 +876,19 @@ The stack buffer displays a @dfn{call stack}, with one line for each
874of the nested subroutine calls (@dfn{stack frames}) now active in the 876of the nested subroutine calls (@dfn{stack frames}) now active in the
875program. @xref{Backtrace,,info stack, gdb, The GNU debugger}. 877program. @xref{Backtrace,,info stack, gdb, The GNU debugger}.
876 878
877The selected frame is displayed in reverse contrast. Move point to 879@findex gdb-frames-select
878any frame in the stack and type @key{RET} to select it (@code{gdb-frames-select}) 880The selected frame number is displayed in reverse contrast. Move
879and display the associated source in the source buffer. Alternatively, 881point to any frame in the stack and type @key{RET} to select it
880click @kbd{Mouse-2} to make the selected frame become the current one. 882(@code{gdb-frames-select}) and display the associated source in the
881If the locals buffer is displayed then its contents update to display 883source buffer. Alternatively, click @kbd{Mouse-2} on a frame to
882the variables that are local to the new frame. 884select it. If the locals buffer is displayed then its contents update
885to display the variables that are local to the new frame.
883 886
884@node Watch Expressions 887@node Watch Expressions
885@subsubsection Watch Expressions 888@subsubsection Watch Expressions
886@cindex Watching expressions in GDB 889@cindex Watching expressions in GDB
887 890
891@findex gud-watch
888If you want to see how a variable changes each time your program stops 892If you want to see how a variable changes each time your program stops
889then place the cursor over the variable name and click on the watch 893then place the cursor over the variable name and click on the watch
890icon in the tool bar (@code{gud-watch}). 894icon in the tool bar (@code{gud-watch}).
@@ -894,34 +898,37 @@ types, such as arrays, structures and unions are represented in a tree
894format. To expand or contract a complex data type, click @kbd{Mouse-2} 898format. To expand or contract a complex data type, click @kbd{Mouse-2}
895on the tag to the left of the expression. 899on the tag to the left of the expression.
896 900
897@kindex RET @r{(GDB speedbar)}
898@findex gdb-var-delete 901@findex gdb-var-delete
899With the cursor over the root expression of a complex data type, type 902With the cursor over the root expression of a complex data type, type
900@kbd{D} to delete it from the speedbar 903@kbd{D} to delete it from the speedbar
901(@code{gdb-var-delete}). 904(@code{gdb-var-delete}).
902 905
906@kindex RET @r{(GDB speedbar)}
903@findex gdb-edit-value 907@findex gdb-edit-value
904With the cursor over a simple data type or an element of a complex 908With the cursor over a simple data type or an element of a complex
905data type which holds a value, type @key{RET} or click @kbd{Mouse-2} to edit 909data type which holds a value, type @key{RET} or click @kbd{Mouse-2} to edit
906its value. A prompt for a new value appears in the mini-buffer 910its value. A prompt for a new value appears in the mini-buffer
907(@code{gdb-edit-value}). 911(@code{gdb-edit-value}).
908 912
913@vindex gdb-show-changed-values
909If you set the variable @code{gdb-show-changed-values} to 914If you set the variable @code{gdb-show-changed-values} to
910non-@code{nil} (the default value), then Emacs will use 915non-@code{nil} (the default value), Emacs will use
911font-lock-warning-face to display values that have recently changed in 916font-lock-warning-face to display values that have recently changed in
912the speedbar. 917the speedbar.
913 918
919@vindex gdb-use-colon-colon-notation
914If you set the variable @code{gdb-use-colon-colon-notation} to a 920If you set the variable @code{gdb-use-colon-colon-notation} to a
915non-@code{nil} value, then, in C, Emacs will use the 921non-@code{nil} value then, in C, Emacs will use the
916FUNCTION::VARIABLE format to display variables in the speedbar. 922@var{function}::@var{variable} format to display variables in the
917Since this does not work for variables defined in compound statements, 923speedbar. Since this does not work for variables defined in compound
918the default value is @code{nil}. 924statements, the default value is @code{nil}.
919 925
920@node Other GDB User Interface Buffers 926@node Other GDB User Interface Buffers
921@subsubsection Other Buffers 927@subsubsection Other Buffers
922 928
923@table @asis 929@table @asis
924@item Input/Output Buffer 930@item Input/Output Buffer
931@vindex gdb-use-inferior-io-buffer
925If the variable @code{gdb-use-inferior-io-buffer} is non-@code{nil}, 932If the variable @code{gdb-use-inferior-io-buffer} is non-@code{nil},
926the executable program that is being debugged takes its input and 933the executable program that is being debugged takes its input and
927displays its output here. Some of the commands from shell mode are 934displays its output here. Some of the commands from shell mode are
@@ -936,9 +943,11 @@ Arrays and structures display their type only. You must display them
936separately to examine their values. @xref{Watch Expressions}. 943separately to examine their values. @xref{Watch Expressions}.
937 944
938@item Registers Buffer 945@item Registers Buffer
946@findex toggle-gdb-all-registers
939The registers buffer displays the values held by the registers 947The registers buffer displays the values held by the registers
940(@pxref{Registers,,, gdb, The GNU debugger}). Press @key{SPC} to 948(@pxref{Registers,,, gdb, The GNU debugger}). Press @key{SPC} to
941toggle the display of floating point registers. 949toggle the display of floating point registers
950(@code{toggle-gdb-all-registers}).
942 951
943@item Assembler Buffer 952@item Assembler Buffer
944The assembler buffer displays the current frame as machine code. An 953The assembler buffer displays the current frame as machine code. An
@@ -947,16 +956,16 @@ remove breakpoints as with the source buffer. Breakpoint icons also
947appear in the fringe or margin. 956appear in the fringe or margin.
948 957
949@item Threads Buffer 958@item Threads Buffer
950 959@findex gdb-threads-select
951The threads buffer displays a summary of all threads currently in your 960The threads buffer displays a summary of all threads currently in your
952program (@pxref{Threads,,, gdb, The GNU debugger}). Move point to 961program (@pxref{Threads,,, gdb, The GNU debugger}). Move point to any
953any thread in the list and press @key{RET} to make it become the 962thread in the list and press @key{RET} to select it
954current thread (@code{gdb-threads-select}) and display the associated 963(@code{gdb-threads-select}) and display the associated source in the
955source in the source buffer. Alternatively, click @kbd{Mouse-2} to 964source buffer. Alternatively, click @kbd{Mouse-2} on a thread to
956make the selected thread become the current one. 965select it. If the locals buffer is displayed then its contents update
966to display the variables that are local to the new thread.
957 967
958@item Memory Buffer 968@item Memory Buffer
959
960The memory buffer allows the user to examine sections of program 969The memory buffer allows the user to examine sections of program
961memory (@pxref{Memory,,, gdb, The GNU debugger}). Click @kbd{Mouse-1} 970memory (@pxref{Memory,,, gdb, The GNU debugger}). Click @kbd{Mouse-1}
962on the appropriate part of the header line to change the starting 971on the appropriate part of the header line to change the starting
diff --git a/man/ediff.texi b/man/ediff.texi
index a9a7e592af4..823219f4a63 100644
--- a/man/ediff.texi
+++ b/man/ediff.texi
@@ -2416,6 +2416,7 @@ Aaron Gross (aaron@@bfr.co.il),
2416Thorbjoern Hansen (thorbjoern.hansen@@mchp.siemens.de), 2416Thorbjoern Hansen (thorbjoern.hansen@@mchp.siemens.de),
2417Marcus Harnisch (marcus_harnisch@@mint-tech.com), 2417Marcus Harnisch (marcus_harnisch@@mint-tech.com),
2418Steven E. Harris (seh@@panix.com), 2418Steven E. Harris (seh@@panix.com),
2419Aaron S. Hawley (Aaron.Hawley@@uvm.edu),
2419Xiaoli Huang (hxl@@epic.com), 2420Xiaoli Huang (hxl@@epic.com),
2420Andreas Jaeger (aj@@suse.de), 2421Andreas Jaeger (aj@@suse.de),
2421Lars Magne Ingebrigtsen (larsi@@ifi.uio.no), 2422Lars Magne Ingebrigtsen (larsi@@ifi.uio.no),
diff --git a/man/frames.texi b/man/frames.texi
index 8e058867fcd..2928aa7a62a 100644
--- a/man/frames.texi
+++ b/man/frames.texi
@@ -857,10 +857,10 @@ case, dropping the file on a Dired buffer moves or copies the file
857(according to the conventions of the application it came from) into the 857(according to the conventions of the application it came from) into the
858directory displayed in that buffer. 858directory displayed in that buffer.
859 859
860@vindex x-dnd-open-file-other-window 860@vindex dnd-open-file-other-window
861 Dropping a file normally visits it in the window you drop it on. If 861 Dropping a file normally visits it in the window you drop it on. If
862you prefer to visit the file in a new window in such cases, customize 862you prefer to visit the file in a new window in such cases, customize
863the variable @code{x-dnd-open-file-other-window}. 863the variable @code{dnd-open-file-other-window}.
864 864
865@ignore 865@ignore
866@c ??? To Lisp manual 866@c ??? To Lisp manual
@@ -881,10 +881,10 @@ or add a new type, customize @code{x-dnd-types-alist}. This requires
881detailed knowledge of what types other applications use for drag and 881detailed knowledge of what types other applications use for drag and
882drop. 882drop.
883 883
884@vindex x-dnd-protocol-alist 884@vindex dnd-protocol-alist
885 When an URL is dropped on Emacs it may be a file, but it may also be 885 When an URL is dropped on Emacs it may be a file, but it may also be
886another URL type (ftp, http, etc.). Emacs first checks 886another URL type (ftp, http, etc.). Emacs first checks
887@code{x-dnd-protocol-alist} to determine what to do with the URL. If 887@code{dnd-protocol-alist} to determine what to do with the URL. If
888there is no match there and if @code{browse-url-browser-function} is 888there is no match there and if @code{browse-url-browser-function} is
889an alist, Emacs looks for a match there. If no match is found the 889an alist, Emacs looks for a match there. If no match is found the
890text for the URL is inserted. If you want to alter Emacs behavior, 890text for the URL is inserted. If you want to alter Emacs behavior,
diff --git a/man/mini.texi b/man/mini.texi
index 3797260f9cc..a76be23ba7d 100644
--- a/man/mini.texi
+++ b/man/mini.texi
@@ -22,7 +22,7 @@ derived from the name of the command that the argument is for. The
22prompt normally ends with a colon. 22prompt normally ends with a colon.
23 23
24@cindex default argument 24@cindex default argument
25 Sometimes a @dfn{default argument} appears in parentheses after the 25 Sometimes a @dfn{default argument} appears in parentheses before the
26colon; it too is part of the prompt. The default will be used as the 26colon; it too is part of the prompt. The default will be used as the
27argument value if you enter an empty argument (that is, just type 27argument value if you enter an empty argument (that is, just type
28@key{RET}). For example, commands that read buffer names always show a 28@key{RET}). For example, commands that read buffer names always show a
diff --git a/man/speedbar.texi b/man/speedbar.texi
index 55f33696401..469de905a24 100644
--- a/man/speedbar.texi
+++ b/man/speedbar.texi
@@ -591,9 +591,10 @@ will follow the general rules of their major counterparts in terms of
591key bindings and visuals, but will have specialized behaviors. 591key bindings and visuals, but will have specialized behaviors.
592 592
593@menu 593@menu
594* RMAIL:: Managing folders in speedbar 594* RMAIL:: Managing folders.
595* Info:: Browsing topics in speedbar 595* Info:: Browsing topics.
596* GDB:: Managing the current stack trace in speedbar 596* GDB:: Watching expressions or managing the current
597 stack trace.
597@end menu 598@end menu
598 599
599@node RMAIL, Info, Minor Modes, Minor Modes 600@node RMAIL, Info, Minor Modes, Minor Modes
@@ -639,7 +640,15 @@ a @samp{[+]}, indicating that there are no sub-topics.
639@cindex gdb 640@cindex gdb
640@cindex gud 641@cindex gud
641 642
642If you are debugging an application with GDB in Emacs, speedbar can show 643You can debug an application with GDB in Emacs using graphical mode or
644text command mode (@pxref{GDB Graphical Interface,,, emacs, The
645extensible self-documenting text editor}).
646
647If you are using graphical mode you can see how selected variables
648change each time your program stops (@pxref{Watch Expressions,,,
649emacs, The extensible self-documenting text editor}).
650
651If you are using text command mode, speedbar can show
643you the current stack when the current buffer is the @file{*gdb*} 652you the current stack when the current buffer is the @file{*gdb*}
644buffer. Usually, it will just report that there is no stack, but when 653buffer. Usually, it will just report that there is no stack, but when
645the application is stopped, the current stack will be shown. 654the application is stopped, the current stack will be shown.
diff --git a/src/ChangeLog b/src/ChangeLog
index cd25ba97e90..172700a810b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,107 @@
12005-10-04 Kim F. Storm <storm@cua.dk>
2
3 * window.c (window_split_tree): New function.
4 (Fwindow_split_tree): New defun.
5 (syms_of_window): Defsubr it.
6
72005-10-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8
9 * macterm.c (mac_invert_rectangle): New function.
10 (XTflash): Use it.
11
122005-10-04 Stefan Monnier <monnier@iro.umontreal.ca>
13
14 * regex.h (re_char): Don't expose it in the interface.
15 (re_set_whitespace_regexp): Adjust the arg's type to not use it.
16
17 * regex.c (re_char): Move it back here.
18 (re_set_whitespace_regexp): Change the arg's type to not use it.
19
20 * keyboard.c (make_lispy_event): If point has moved between down and up
21 event, make it a drag, not a click, to mirror what
22 mouse-drag-region expects.
23
242005-10-02 Dan Nicolaescu <dann@ics.uci.edu>
25
26 * lisp.h (fatal): Undo previous change.
27 * term.c (fatal): Undo previous change.
28
292005-10-01 Richard M. Stallman <rms@gnu.org>
30
31 * xfaces.c (face_color_gray_p): Colors close to black count as gray.
32
332005-10-01 Kim F. Storm <storm@cua.dk>
34
35 * xdisp.c (try_window): Skip scroll-margin check if ZV is visible.
36
372005-10-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
38
39 * keyboard.c (init_keyboard) [MAC_OSX]: Don't install SIGINT handler.
40
41 * macfns.c (start_hourglass): Apply 2005-05-07 change for xfns.c.
42 (x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debug code.
43 (Fx_create_frame, x_create_tip_frame) [USE_ATSUI]:
44 Try ATSUI-compatible 12pt Monaco font first.
45
46 * macgui.h (struct _XCharStruct): New member valid_p.
47 (STORE_XCHARSTRUCT): Set valid_p.
48 (struct MacFontStruct) [USE_ATSUI]: New member mac_style.
49
50 * macterm.c (mac_draw_string_common, x_per_char_metric)
51 (mac_compute_glyph_string_overhangs, init_font_name_table)
52 (XLoadQueryFont, mac_unload_font) [USE_ATSUI]: Add ATSUI support.
53 (atsu_get_text_layout_with_text_ptr) [USE_ATSUI]: New function.
54 (x_draw_glyph_string_background)
55 (x_draw_glyph_string_foreground) [MAC_OS8 && USE_ATSUI]: Don't use
56 XDrawImageString. Always draw background and foreground separately.
57 (x_draw_glyph_string_foreground) [USE_ATSUI]: Don't use 8-bit
58 functions for one-byte chars when using ATSUI-compatible fonts.
59 (atsu_font_id_hash) [USE_ATSUI]: New variable.
60 (syms_of_macterm) [USE_ATSUI]: Initialize and staticpro it.
61 (XLoadQueryFont): Set min_byte1, max_byte1, min_char_or_byte2, and
62 max_char_or_byte2 more in detail.
63 (quit_char_comp, mac_check_for_quit_char) [MAC_OSX]: Remove functions.
64
652005-09-30 Dan Nicolaescu <dann@ics.uci.edu>
66
67 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct type.
68 * xterm.c (handle_one_xevent, handle_one_xevent): Likewise.
69
70 * unexelf.c (fatal): Fix prototype.
71
72 * term.c (fatal): Implement using varargs.
73
74 * regex.c (re_char): Move typedef ...
75 * regex.h (re_char): ... here.
76 (re_iswctype, re_wctype, re_set_whitespace_regexp): New prototypes.
77
78 * emacs.c (malloc_set_state): Fix return type.
79 (endif): Fix type.
80
81 * lisp.h (fatal): Add argument types.
82
83 * dispextern.h (fatal): Delete prototype.
84
85 * systime.h: (make_time): Prototype moved from ...
86 * editfns.c (make_time): ... here.
87
88 * editfns.c: Move systime.h include after lisp.h.
89 * dired.c:
90 * xsmfns.c:
91 * process.c: Likewise.
92
93 * alloc.c (old_malloc_hook, old_realloc_hook, old_realloc_hook):
94 Add parameter types.
95 (__malloc_hook, __realloc_hook, __free_hook): Fix prototypes.
96 (emacs_blocked_free): Change definition to match __free_hook.
97 (emacs_blocked_malloc): Change definition to match __malloc_hook.
98 (emacs_blocked_realloc): Change definition to match __realloc_hook.
99
1002005-09-30 Romain Francoise <romain@orebokech.com>
101
102 * minibuf.c (Fread_buffer): Follow convention for reading from the
103 minibuffer with a default value. Doc fix.
104
12005-09-29 Juri Linkov <juri@jurta.org> 1052005-09-29 Juri Linkov <juri@jurta.org>
2 106
3 * editfns.c (Fmessage, Fmessage_box, Fmessage_or_box): 107 * editfns.c (Fmessage, Fmessage_box, Fmessage_or_box):
@@ -48,8 +152,8 @@
48 152
492005-09-23 Dan Nicolaescu <dann@ics.uci.edu> 1532005-09-23 Dan Nicolaescu <dann@ics.uci.edu>
50 154
51 * s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define 155 * s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME):
52 BROKEN_GET_CURRENT_DIR_NAME. 156 Define BROKEN_GET_CURRENT_DIR_NAME.
53 157
54 * sysdep.c (get_current_dir_name): Also define if 158 * sysdep.c (get_current_dir_name): Also define if
55 BROKEN_GET_CURRENT_DIR_NAME. 159 BROKEN_GET_CURRENT_DIR_NAME.
diff --git a/src/alloc.c b/src/alloc.c
index 35bdfc8a93a..5d8b1c1a359 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -547,6 +547,21 @@ DEFUN ("memory-full-p", Fmemory_full_p, Smemory_full_p, 0, 0, 0,
547 return (spare_memory ? Qnil : Qt); 547 return (spare_memory ? Qnil : Qt);
548} 548}
549 549
550/* If we released our reserve (due to running out of memory),
551 and we have a fair amount free once again,
552 try to set aside another reserve in case we run out once more.
553
554 This is called when a relocatable block is freed in ralloc.c. */
555
556void
557refill_memory_reserve ()
558{
559#ifndef SYSTEM_MALLOC
560 if (spare_memory == 0)
561 spare_memory = (char *) malloc ((size_t) SPARE_MEMORY);
562#endif
563}
564
550/* Called if we can't allocate relocatable space for a buffer. */ 565/* Called if we can't allocate relocatable space for a buffer. */
551 566
552void 567void
@@ -1134,20 +1149,6 @@ allocate_buffer ()
1134 1149
1135#ifndef SYSTEM_MALLOC 1150#ifndef SYSTEM_MALLOC
1136 1151
1137/* If we released our reserve (due to running out of memory),
1138 and we have a fair amount free once again,
1139 try to set aside another reserve in case we run out once more.
1140
1141 This is called when a relocatable block is freed in ralloc.c. */
1142
1143void
1144refill_memory_reserve ()
1145{
1146 if (spare_memory == 0)
1147 spare_memory = (char *) malloc ((size_t) SPARE_MEMORY);
1148}
1149
1150
1151/* Arranging to disable input signals while we're in malloc. 1152/* Arranging to disable input signals while we're in malloc.
1152 1153
1153 This only works with GNU malloc. To help out systems which can't 1154 This only works with GNU malloc. To help out systems which can't
@@ -1161,20 +1162,21 @@ refill_memory_reserve ()
1161#ifndef SYNC_INPUT 1162#ifndef SYNC_INPUT
1162 1163
1163#ifndef DOUG_LEA_MALLOC 1164#ifndef DOUG_LEA_MALLOC
1164extern void * (*__malloc_hook) P_ ((size_t)); 1165extern void * (*__malloc_hook) P_ ((size_t, const void *));
1165extern void * (*__realloc_hook) P_ ((void *, size_t)); 1166extern void * (*__realloc_hook) P_ ((void *, size_t, const void *));
1166extern void (*__free_hook) P_ ((void *)); 1167extern void (*__free_hook) P_ ((void *, const void *));
1167/* Else declared in malloc.h, perhaps with an extra arg. */ 1168/* Else declared in malloc.h, perhaps with an extra arg. */
1168#endif /* DOUG_LEA_MALLOC */ 1169#endif /* DOUG_LEA_MALLOC */
1169static void * (*old_malloc_hook) (); 1170static void * (*old_malloc_hook) P_ ((size_t, const void *));
1170static void * (*old_realloc_hook) (); 1171static void * (*old_realloc_hook) P_ ((void *, size_t, const void*));
1171static void (*old_free_hook) (); 1172static void (*old_free_hook) P_ ((void*, const void*));
1172 1173
1173/* This function is used as the hook for free to call. */ 1174/* This function is used as the hook for free to call. */
1174 1175
1175static void 1176static void
1176emacs_blocked_free (ptr) 1177emacs_blocked_free (ptr, ptr2)
1177 void *ptr; 1178 void *ptr;
1179 const void *ptr2;
1178{ 1180{
1179 BLOCK_INPUT_ALLOC; 1181 BLOCK_INPUT_ALLOC;
1180 1182
@@ -1221,8 +1223,9 @@ emacs_blocked_free (ptr)
1221/* This function is the malloc hook that Emacs uses. */ 1223/* This function is the malloc hook that Emacs uses. */
1222 1224
1223static void * 1225static void *
1224emacs_blocked_malloc (size) 1226emacs_blocked_malloc (size, ptr)
1225 size_t size; 1227 size_t size;
1228 const void *ptr;
1226{ 1229{
1227 void *value; 1230 void *value;
1228 1231
@@ -1268,9 +1271,10 @@ emacs_blocked_malloc (size)
1268/* This function is the realloc hook that Emacs uses. */ 1271/* This function is the realloc hook that Emacs uses. */
1269 1272
1270static void * 1273static void *
1271emacs_blocked_realloc (ptr, size) 1274emacs_blocked_realloc (ptr, size, ptr2)
1272 void *ptr; 1275 void *ptr;
1273 size_t size; 1276 size_t size;
1277 const void *ptr2;
1274{ 1278{
1275 void *value; 1279 void *value;
1276 1280
diff --git a/src/dired.c b/src/dired.c
index 4725644ee33..eca05cde0db 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -33,7 +33,6 @@ Boston, MA 02110-1301, USA. */
33#include <grp.h> 33#include <grp.h>
34#endif 34#endif
35 35
36#include "systime.h"
37#include <errno.h> 36#include <errno.h>
38 37
39#ifdef VMS 38#ifdef VMS
@@ -93,6 +92,7 @@ extern struct direct *readdir ();
93#endif 92#endif
94 93
95#include "lisp.h" 94#include "lisp.h"
95#include "systime.h"
96#include "buffer.h" 96#include "buffer.h"
97#include "commands.h" 97#include "commands.h"
98#include "character.h" 98#include "character.h"
diff --git a/src/dispextern.h b/src/dispextern.h
index e6e61ac45fb..db9cd53d042 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -2940,7 +2940,6 @@ extern void calculate_costs P_ ((struct frame *));
2940extern void set_tty_color_mode P_ ((struct frame *, Lisp_Object)); 2940extern void set_tty_color_mode P_ ((struct frame *, Lisp_Object));
2941extern void tty_setup_colors P_ ((int)); 2941extern void tty_setup_colors P_ ((int));
2942extern void term_init P_ ((char *)); 2942extern void term_init P_ ((char *));
2943extern void fatal P_ ((/* char *, ... */));
2944void cursor_to P_ ((int, int)); 2943void cursor_to P_ ((int, int));
2945extern int tty_capable_p P_ ((struct frame *, unsigned, unsigned long, unsigned long)); 2944extern int tty_capable_p P_ ((struct frame *, unsigned, unsigned long, unsigned long));
2946 2945
diff --git a/src/editfns.c b/src/editfns.c
index 2fa6ffcca5c..dad41b3d05d 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -37,6 +37,8 @@ Boston, MA 02110-1301, USA. */
37#include <sys/utsname.h> 37#include <sys/utsname.h>
38#endif 38#endif
39 39
40#include "lisp.h"
41
40/* systime.h includes <sys/time.h> which, on some systems, is required 42/* systime.h includes <sys/time.h> which, on some systems, is required
41 for <sys/resource.h>; thus systime.h must be included before 43 for <sys/resource.h>; thus systime.h must be included before
42 <sys/resource.h> */ 44 <sys/resource.h> */
@@ -48,7 +50,6 @@ Boston, MA 02110-1301, USA. */
48 50
49#include <ctype.h> 51#include <ctype.h>
50 52
51#include "lisp.h"
52#include "intervals.h" 53#include "intervals.h"
53#include "buffer.h" 54#include "buffer.h"
54#include "character.h" 55#include "character.h"
@@ -71,7 +72,6 @@ Boston, MA 02110-1301, USA. */
71extern char **environ; 72extern char **environ;
72#endif 73#endif
73 74
74extern Lisp_Object make_time P_ ((time_t));
75extern size_t emacs_strftimeu P_ ((char *, size_t, const char *, 75extern size_t emacs_strftimeu P_ ((char *, size_t, const char *,
76 const struct tm *, int)); 76 const struct tm *, int));
77static int tm_diff P_ ((struct tm *, struct tm *)); 77static int tm_diff P_ ((struct tm *, struct tm *));
diff --git a/src/emacs.c b/src/emacs.c
index c74e729bf6a..a4416354c12 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -148,7 +148,7 @@ void *malloc_state_ptr;
148/* From glibc, a routine that returns a copy of the malloc internal state. */ 148/* From glibc, a routine that returns a copy of the malloc internal state. */
149extern void *malloc_get_state (); 149extern void *malloc_get_state ();
150/* From glibc, a routine that overwrites the malloc internal state. */ 150/* From glibc, a routine that overwrites the malloc internal state. */
151extern void malloc_set_state (); 151extern int malloc_set_state ();
152/* Non-zero if the MALLOC_CHECK_ enviroment variable was set while 152/* Non-zero if the MALLOC_CHECK_ enviroment variable was set while
153 dumping. Used to work around a bug in glibc's malloc. */ 153 dumping. Used to work around a bug in glibc's malloc. */
154int malloc_using_checking; 154int malloc_using_checking;
@@ -1001,7 +1001,7 @@ main (argc, argv
1001 && !getrlimit (RLIMIT_STACK, &rlim)) 1001 && !getrlimit (RLIMIT_STACK, &rlim))
1002 { 1002 {
1003 long newlim; 1003 long newlim;
1004 extern int re_max_failures; 1004 extern size_t re_max_failures;
1005 /* Approximate the amount regex.c needs per unit of re_max_failures. */ 1005 /* Approximate the amount regex.c needs per unit of re_max_failures. */
1006 int ratio = 20 * sizeof (char *); 1006 int ratio = 20 * sizeof (char *);
1007 /* Then add 33% to cover the size of the smaller stacks that regex.c 1007 /* Then add 33% to cover the size of the smaller stacks that regex.c
diff --git a/src/image.c b/src/image.c
index bdc78c2d718..3b6969b0c28 100644
--- a/src/image.c
+++ b/src/image.c
@@ -2178,7 +2178,7 @@ slurp_file (file, size)
2178 2178
2179 if (stat (file, &st) == 0 2179 if (stat (file, &st) == 0
2180 && (fp = fopen (file, "rb")) != NULL 2180 && (fp = fopen (file, "rb")) != NULL
2181 && (buf = (char *) xmalloc (st.st_size), 2181 && (buf = (unsigned char *) xmalloc (st.st_size),
2182 fread (buf, 1, st.st_size, fp) == st.st_size)) 2182 fread (buf, 1, st.st_size, fp) == st.st_size))
2183 { 2183 {
2184 *size = st.st_size; 2184 *size = st.st_size;
@@ -3029,7 +3029,7 @@ xbm_read_bitmap_data (contents, end, width, height, data)
3029 3029
3030 bytes_per_line = (*width + 7) / 8 + padding_p; 3030 bytes_per_line = (*width + 7) / 8 + padding_p;
3031 nbytes = bytes_per_line * *height; 3031 nbytes = bytes_per_line * *height;
3032 p = *data = (char *) xmalloc (nbytes); 3032 p = *data = (unsigned char *) xmalloc (nbytes);
3033 3033
3034 if (v10) 3034 if (v10)
3035 { 3035 {
diff --git a/src/keyboard.c b/src/keyboard.c
index 3eabf6a5a8a..97d4509eeb6 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -5506,13 +5506,23 @@ make_lispy_event (event)
5506 if (CONSP (down) 5506 if (CONSP (down)
5507 && INTEGERP (XCAR (down)) && INTEGERP (XCDR (down))) 5507 && INTEGERP (XCAR (down)) && INTEGERP (XCDR (down)))
5508 { 5508 {
5509 xdiff = XFASTINT (event->x) - XFASTINT (XCAR (down)); 5509 xdiff = XINT (event->x) - XINT (XCAR (down));
5510 ydiff = XFASTINT (event->y) - XFASTINT (XCDR (down)); 5510 ydiff = XINT (event->y) - XINT (XCDR (down));
5511 } 5511 }
5512 5512
5513 if (xdiff < double_click_fuzz && xdiff > - double_click_fuzz 5513 if (xdiff < double_click_fuzz && xdiff > - double_click_fuzz
5514 && ydiff < double_click_fuzz 5514 && ydiff < double_click_fuzz && ydiff > - double_click_fuzz
5515 && ydiff > - double_click_fuzz) 5515 /* Maybe the mouse has moved a lot, caused scrolling, and
5516 eventually ended up at the same screen position (but
5517 not buffer position) in which case it is a drag, not
5518 a click. */
5519 /* FIXME: OTOH if the buffer position has changed
5520 because of a timer or process filter rather than
5521 because of mouse movement, it should be considered as
5522 a click. But mouse-drag-region completely ignores
5523 this case and it hasn't caused any real problem, so
5524 it's probably OK to ignore it as well. */
5525 && EQ (Fcar (Fcdr (start_pos)), Fcar (Fcdr (position))))
5516 /* Mouse hasn't moved (much). */ 5526 /* Mouse hasn't moved (much). */
5517 event->modifiers |= click_modifier; 5527 event->modifiers |= click_modifier;
5518 else 5528 else
@@ -10741,11 +10751,6 @@ init_keyboard ()
10741 poll_suppress_count = 1; 10751 poll_suppress_count = 1;
10742 start_polling (); 10752 start_polling ();
10743#endif 10753#endif
10744
10745#ifdef MAC_OSX
10746 /* At least provide an escape route since C-g doesn't work. */
10747 signal (SIGINT, interrupt_signal);
10748#endif
10749} 10754}
10750 10755
10751/* This type's only use is in syms_of_keyboard, to initialize the 10756/* This type's only use is in syms_of_keyboard, to initialize the
diff --git a/src/macfns.c b/src/macfns.c
index 9d07dc49049..ecee09189f5 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -2532,6 +2532,10 @@ This function is an internal primitive--use `make-frame' instead. */)
2532 } 2532 }
2533 2533
2534 /* Try out a font which we hope has bold and italic variations. */ 2534 /* Try out a font which we hope has bold and italic variations. */
2535#if USE_ATSUI
2536 if (! STRINGP (font))
2537 font = x_new_font (f, "-*-monaco-medium-r-normal--12-*-*-*-*-*-iso10646-1");
2538#endif
2535 if (! STRINGP (font)) 2539 if (! STRINGP (font))
2536 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1"); 2540 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
2537 /* If those didn't work, look for something which will at least work. */ 2541 /* If those didn't work, look for something which will at least work. */
@@ -3340,6 +3344,10 @@ start_hourglass ()
3340 EMACS_TIME delay; 3344 EMACS_TIME delay;
3341 int secs, usecs = 0; 3345 int secs, usecs = 0;
3342 3346
3347 /* Don't bother for ttys. */
3348 if (NILP (Vwindow_system))
3349 return;
3350
3343 cancel_hourglass (); 3351 cancel_hourglass ();
3344 3352
3345 if (INTEGERP (Vhourglass_delay) 3353 if (INTEGERP (Vhourglass_delay)
@@ -3586,7 +3594,7 @@ x_create_tip_frame (dpyinfo, parms, text)
3586 FRAME_FONTSET (f) = -1; 3594 FRAME_FONTSET (f) = -1;
3587 f->icon_name = Qnil; 3595 f->icon_name = Qnil;
3588 3596
3589#if 0 /* GLYPH_DEBUG TODO: image support. */ 3597#if GLYPH_DEBUG
3590 image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount; 3598 image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
3591 dpyinfo_refcount = dpyinfo->reference_count; 3599 dpyinfo_refcount = dpyinfo->reference_count;
3592#endif /* GLYPH_DEBUG */ 3600#endif /* GLYPH_DEBUG */
@@ -3630,6 +3638,10 @@ x_create_tip_frame (dpyinfo, parms, text)
3630 } 3638 }
3631 3639
3632 /* Try out a font which we hope has bold and italic variations. */ 3640 /* Try out a font which we hope has bold and italic variations. */
3641#if USE_ATSUI
3642 if (! STRINGP (font))
3643 font = x_new_font (f, "-*-monaco-medium-r-normal--12-*-*-*-*-*-iso10646-1");
3644#endif
3633 if (! STRINGP (font)) 3645 if (! STRINGP (font))
3634 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1"); 3646 font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
3635 /* If those didn't work, look for something which will at least work. */ 3647 /* If those didn't work, look for something which will at least work. */
diff --git a/src/macgui.h b/src/macgui.h
index fc777de03ba..378dbcd9e5c 100644
--- a/src/macgui.h
+++ b/src/macgui.h
@@ -103,6 +103,7 @@ typedef struct _XCharStruct
103#if 0 103#if 0
104 unsigned short attributes; /* per char flags (not predefined) */ 104 unsigned short attributes; /* per char flags (not predefined) */
105#endif 105#endif
106 unsigned valid_p : 1;
106} XCharStruct; 107} XCharStruct;
107 108
108#define STORE_XCHARSTRUCT(xcs, w, bds) \ 109#define STORE_XCHARSTRUCT(xcs, w, bds) \
@@ -110,7 +111,8 @@ typedef struct _XCharStruct
110 (xcs).lbearing = (bds).left, \ 111 (xcs).lbearing = (bds).left, \
111 (xcs).rbearing = (bds).right, \ 112 (xcs).rbearing = (bds).right, \
112 (xcs).ascent = -(bds).top, \ 113 (xcs).ascent = -(bds).top, \
113 (xcs).descent = (bds).bottom) 114 (xcs).descent = (bds).bottom, \
115 (xcs).valid_p = 1)
114 116
115struct MacFontStruct { 117struct MacFontStruct {
116 char *full_name; 118 char *full_name;
@@ -123,19 +125,9 @@ struct MacFontStruct {
123#else 125#else
124 short mac_scriptcode; /* Mac OS script code for font used */ 126 short mac_scriptcode; /* Mac OS script code for font used */
125#endif 127#endif
126 128#if USE_ATSUI
127#if 0 129 ATSUStyle mac_style; /* NULL if QuickDraw Text is used */
128 SInt16 mFontNum; /* font number of font used in this window */ 130#endif
129 short mScriptCode; /* Mac OS script code for font used */
130 int mFontSize; /* size of font */
131 Style mFontFace; /* plain, bold, italics, etc. */
132 int mHeight; /* height of one line of text in pixels */
133 int mWidth; /* width of one character in pixels */
134 int mAscent;
135 int mDescent;
136 int mLeading;
137 char mTwoByte; /* true for two-byte font */
138#endif /* 0 */
139 131
140/* from Xlib.h */ 132/* from Xlib.h */
141#if 0 133#if 0
diff --git a/src/macterm.c b/src/macterm.c
index 90d6a886db6..8001678ab92 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -660,6 +660,79 @@ mac_draw_rectangle_to_pixmap (display, p, gc, x, y, width, height)
660#endif 660#endif
661 661
662 662
663#if USE_ATSUI
664static OSStatus
665atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
666 ConstUniCharArrayPtr text;
667 UniCharCount text_length;
668 ATSUStyle style;
669 ATSUTextLayout *text_layout;
670{
671 OSStatus err;
672 static ATSUTextLayout saved_text_layout = NULL; /* not reentrant */
673
674 if (saved_text_layout == NULL)
675 {
676 UniCharCount lengths[] = {kATSUToTextEnd};
677 ATSUAttributeTag tags[] = {kATSULineLayoutOptionsTag};
678 ByteCount sizes[] = {sizeof (ATSLineLayoutOptions)};
679 static ATSLineLayoutOptions line_layout =
680#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
681 kATSLineDisableAllLayoutOperations | kATSLineUseDeviceMetrics
682#else
683 kATSLineIsDisplayOnly
684#endif
685 ;
686 ATSUAttributeValuePtr values[] = {&line_layout};
687
688 err = ATSUCreateTextLayoutWithTextPtr (text,
689 kATSUFromTextBeginning,
690 kATSUToTextEnd,
691 text_length,
692 1, lengths, &style,
693 &saved_text_layout);
694 if (err == noErr)
695 err = ATSUSetLayoutControls (saved_text_layout,
696 sizeof (tags) / sizeof (tags[0]),
697 tags, sizes, values);
698 /* XXX: Should we do this? */
699 if (err == noErr)
700 err = ATSUSetTransientFontMatching (saved_text_layout, true);
701 }
702 else
703 {
704 err = ATSUSetRunStyle (saved_text_layout, style,
705 kATSUFromTextBeginning, kATSUToTextEnd);
706 if (err == noErr)
707 err = ATSUSetTextPointerLocation (saved_text_layout, text,
708 kATSUFromTextBeginning,
709 kATSUToTextEnd,
710 text_length);
711 }
712
713 if (err == noErr)
714 *text_layout = saved_text_layout;
715 return err;
716}
717#endif
718
719static void
720mac_invert_rectangle (display, w, x, y, width, height)
721 Display *display;
722 WindowPtr w;
723 int x, y;
724 unsigned int width, height;
725{
726 Rect r;
727
728 SetPortWindowPort (w);
729
730 SetRect (&r, x, y, x + width, y + height);
731
732 InvertRect (&r);
733}
734
735
663static void 736static void
664mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode, 737mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
665 bytes_per_char) 738 bytes_per_char)
@@ -684,6 +757,89 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
684 if (mode != srcOr) 757 if (mode != srcOr)
685 RGBBackColor (GC_BACK_COLOR (gc)); 758 RGBBackColor (GC_BACK_COLOR (gc));
686 759
760#if USE_ATSUI
761 if (GC_FONT (gc)->mac_style)
762 {
763 OSErr err;
764 ATSUTextLayout text_layout;
765
766 xassert (bytes_per_char == 2);
767
768#ifndef WORDS_BIG_ENDIAN
769 {
770 int i;
771 Unichar *text = (Unichar *)buf;
772
773 for (i = 0; i < nchars; i++)
774 text[i] = buf[2*i] << 8 | buf[2*i+1];
775 }
776#endif
777 err = atsu_get_text_layout_with_text_ptr ((ConstUniCharArrayPtr)buf,
778 nchars,
779 GC_FONT (gc)->mac_style,
780 &text_layout);
781 if (err == noErr)
782 {
783#ifdef MAC_OSX
784 if (NILP (Vmac_use_core_graphics))
785 {
786#endif
787 MoveTo (x, y);
788 ATSUDrawText (text_layout,
789 kATSUFromTextBeginning, kATSUToTextEnd,
790 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
791#ifdef MAC_OSX
792 }
793 else
794 {
795 CGrafPtr port;
796 CGContextRef context;
797 Rect rect;
798 RgnHandle region = NewRgn ();
799 float port_height;
800 ATSUAttributeTag tags[] = {kATSUCGContextTag};
801 ByteCount sizes[] = {sizeof (CGContextRef)};
802 ATSUAttributeValuePtr values[] = {&context};
803
804 GetPort (&port);
805 QDBeginCGContext (port, &context);
806 GetPortBounds (port, &rect);
807 port_height = rect.bottom - rect.top;
808 GetClip (region);
809 GetRegionBounds (region, &rect);
810 /* XXX: This is not correct if the clip region is not a
811 simple rectangle. */
812 CGContextClipToRect (context,
813 CGRectMake (rect.left,
814 port_height - rect.bottom,
815 rect.right - rect.left,
816 rect.bottom - rect.top));
817 DisposeRgn (region);
818 CGContextSetRGBFillColor
819 (context,
820 RED_FROM_ULONG (gc->xgcv.foreground) / 255.0,
821 GREEN_FROM_ULONG (gc->xgcv.foreground) / 255.0,
822 BLUE_FROM_ULONG (gc->xgcv.foreground) / 255.0,
823 1.0);
824 err = ATSUSetLayoutControls (text_layout,
825 sizeof (tags) / sizeof (tags[0]),
826 tags, sizes, values);
827 if (err == noErr)
828 ATSUDrawText (text_layout,
829 kATSUFromTextBeginning, kATSUToTextEnd,
830 Long2Fix (x), Long2Fix (port_height - y));
831 ATSUClearLayoutControls (text_layout,
832 sizeof (tags) / sizeof (tags[0]),
833 tags);
834 CGContextSynchronize (context);
835 QDEndCGContext (port, &context);
836 }
837#endif
838 }
839 }
840 else
841 {
842#endif
687 TextFont (GC_FONT (gc)->mac_fontnum); 843 TextFont (GC_FONT (gc)->mac_fontnum);
688 TextSize (GC_FONT (gc)->mac_fontsize); 844 TextSize (GC_FONT (gc)->mac_fontsize);
689 TextFace (GC_FONT (gc)->mac_fontface); 845 TextFace (GC_FONT (gc)->mac_fontface);
@@ -691,6 +847,9 @@ mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
691 847
692 MoveTo (x, y); 848 MoveTo (x, y);
693 DrawText (buf, 0, nchars * bytes_per_char); 849 DrawText (buf, 0, nchars * bytes_per_char);
850#if USE_ATSUI
851 }
852#endif
694 853
695 if (mode != srcOr) 854 if (mode != srcOr)
696 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w))); 855 RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
@@ -1552,6 +1711,61 @@ x_per_char_metric (font, char2b)
1552 1711
1553 xassert (font && char2b); 1712 xassert (font && char2b);
1554 1713
1714#if USE_ATSUI
1715 if (font->mac_style)
1716 {
1717 if (char2b->byte1 >= font->min_byte1
1718 && char2b->byte1 <= font->max_byte1
1719 && char2b->byte2 >= font->min_char_or_byte2
1720 && char2b->byte2 <= font->max_char_or_byte2)
1721 {
1722 pcm = (font->per_char
1723 + ((font->max_char_or_byte2 - font->min_char_or_byte2 + 1)
1724 * (char2b->byte1 - font->min_byte1))
1725 + (char2b->byte2 - font->min_char_or_byte2));
1726 }
1727
1728 if (pcm && !pcm->valid_p)
1729 {
1730 OSErr err;
1731 ATSUTextLayout text_layout;
1732 UniChar c;
1733 int char_width;
1734 ATSTrapezoid glyph_bounds;
1735 Rect char_bounds;
1736
1737 c = (char2b->byte1 << 8) + char2b->byte2;
1738 BLOCK_INPUT;
1739 err = atsu_get_text_layout_with_text_ptr (&c, 1,
1740 font->mac_style,
1741 &text_layout);
1742 if (err == noErr)
1743 err = ATSUMeasureTextImage (text_layout,
1744 kATSUFromTextBeginning, kATSUToTextEnd,
1745 0, 0, &char_bounds);
1746
1747 if (err == noErr)
1748 err = ATSUGetGlyphBounds (text_layout, 0, 0,
1749 kATSUFromTextBeginning, kATSUToTextEnd,
1750 kATSUseFractionalOrigins, 1,
1751 &glyph_bounds, NULL);
1752 UNBLOCK_INPUT;
1753 if (err != noErr)
1754 pcm = NULL;
1755 else
1756 {
1757 xassert (glyph_bounds.lowerRight.x - glyph_bounds.lowerLeft.x
1758 == glyph_bounds.upperRight.x - glyph_bounds.upperLeft.x);
1759
1760 char_width = Fix2Long (glyph_bounds.upperRight.x
1761 - glyph_bounds.upperLeft.x);
1762 STORE_XCHARSTRUCT (*pcm, char_width, char_bounds);
1763 }
1764 }
1765 }
1766 else
1767 {
1768#endif
1555 if (font->per_char != NULL) 1769 if (font->per_char != NULL)
1556 { 1770 {
1557 if (font->min_byte1 == 0 && font->max_byte1 == 0) 1771 if (font->min_byte1 == 0 && font->max_byte1 == 0)
@@ -1603,6 +1817,9 @@ x_per_char_metric (font, char2b)
1603 && char2b->byte2 <= font->max_char_or_byte2) 1817 && char2b->byte2 <= font->max_char_or_byte2)
1604 pcm = &font->max_bounds; 1818 pcm = &font->max_bounds;
1605 } 1819 }
1820#if USE_ATSUI
1821 }
1822#endif
1606 1823
1607 return ((pcm == NULL 1824 return ((pcm == NULL
1608 || (pcm->width == 0 && (pcm->rbearing - pcm->lbearing) == 0)) 1825 || (pcm->width == 0 && (pcm->rbearing - pcm->lbearing) == 0))
@@ -1930,6 +2147,35 @@ mac_compute_glyph_string_overhangs (s)
1930 Rect r; 2147 Rect r;
1931 MacFontStruct *font = s->font; 2148 MacFontStruct *font = s->font;
1932 2149
2150#if USE_ATSUI
2151 if (font->mac_style)
2152 {
2153 OSErr err;
2154 ATSUTextLayout text_layout;
2155 UniChar *buf;
2156 int i;
2157
2158 SetRect (&r, 0, 0, 0, 0);
2159 buf = xmalloc (sizeof (UniChar) * s->nchars);
2160 if (buf)
2161 {
2162 for (i = 0; i < s->nchars; i++)
2163 buf[i] = (s->char2b[i].byte1 << 8) + s->char2b[i].byte2;
2164
2165 err = atsu_get_text_layout_with_text_ptr (buf, s->nchars,
2166 font->mac_style,
2167 &text_layout);
2168 if (err == noErr)
2169 err = ATSUMeasureTextImage (text_layout,
2170 kATSUFromTextBeginning,
2171 kATSUToTextEnd,
2172 0, 0, &r);
2173 xfree (buf);
2174 }
2175 }
2176 else
2177 {
2178#endif
1933 TextFont (font->mac_fontnum); 2179 TextFont (font->mac_fontnum);
1934 TextSize (font->mac_fontsize); 2180 TextSize (font->mac_fontsize);
1935 TextFace (font->mac_fontface); 2181 TextFace (font->mac_fontface);
@@ -1951,6 +2197,9 @@ mac_compute_glyph_string_overhangs (s)
1951 xfree (buf); 2197 xfree (buf);
1952 } 2198 }
1953 } 2199 }
2200#if USE_ATSUI
2201 }
2202#endif
1954 2203
1955 s->right_overhang = r.right > s->width ? r.right - s->width : 0; 2204 s->right_overhang = r.right > s->width ? r.right - s->width : 0;
1956 s->left_overhang = r.left < 0 ? -r.left : 0; 2205 s->left_overhang = r.left < 0 ? -r.left : 0;
@@ -2008,7 +2257,7 @@ x_draw_glyph_string_background (s, force_p)
2008 } 2257 }
2009 else 2258 else
2010#endif 2259#endif
2011#ifdef MAC_OS8 2260#if defined (MAC_OS8) && !USE_ATSUI
2012 if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width 2261 if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width
2013 || s->font_not_found_p 2262 || s->font_not_found_p
2014 || s->extends_to_end_of_line_p 2263 || s->extends_to_end_of_line_p
@@ -2062,11 +2311,15 @@ x_draw_glyph_string_foreground (s)
2062 boff = VCENTER_BASELINE_OFFSET (s->font, s->f) - boff; 2311 boff = VCENTER_BASELINE_OFFSET (s->font, s->f) - boff;
2063 2312
2064 /* If we can use 8-bit functions, condense S->char2b. */ 2313 /* If we can use 8-bit functions, condense S->char2b. */
2065 if (!s->two_byte_p) 2314 if (!s->two_byte_p
2315#if USE_ATSUI
2316 && GC_FONT (s->gc)->mac_style == NULL
2317#endif
2318 )
2066 for (i = 0; i < s->nchars; ++i) 2319 for (i = 0; i < s->nchars; ++i)
2067 char1b[i] = s->char2b[i].byte2; 2320 char1b[i] = s->char2b[i].byte2;
2068 2321
2069#ifdef MAC_OS8 2322#if defined (MAC_OS8) && !USE_ATSUI
2070 /* Draw text with XDrawString if background has already been 2323 /* Draw text with XDrawString if background has already been
2071 filled. Otherwise, use XDrawImageString. (Note that 2324 filled. Otherwise, use XDrawImageString. (Note that
2072 XDrawImageString is usually faster than XDrawString.) Always 2325 XDrawImageString is usually faster than XDrawString.) Always
@@ -2077,14 +2330,18 @@ x_draw_glyph_string_foreground (s)
2077#endif 2330#endif
2078 { 2331 {
2079 /* Draw characters with 16-bit or 8-bit functions. */ 2332 /* Draw characters with 16-bit or 8-bit functions. */
2080 if (s->two_byte_p) 2333 if (s->two_byte_p
2334#if USE_ATSUI
2335 || GC_FONT (s->gc)->mac_style
2336#endif
2337 )
2081 XDrawString16 (s->display, s->window, s->gc, x, 2338 XDrawString16 (s->display, s->window, s->gc, x,
2082 s->ybase - boff, s->char2b, s->nchars); 2339 s->ybase - boff, s->char2b, s->nchars);
2083 else 2340 else
2084 XDrawString (s->display, s->window, s->gc, x, 2341 XDrawString (s->display, s->window, s->gc, x,
2085 s->ybase - boff, char1b, s->nchars); 2342 s->ybase - boff, char1b, s->nchars);
2086 } 2343 }
2087#ifdef MAC_OS8 2344#if defined (MAC_OS8) && !USE_ATSUI
2088 else 2345 else
2089 { 2346 {
2090 if (s->two_byte_p) 2347 if (s->two_byte_p)
@@ -3251,9 +3508,57 @@ void
3251XTflash (f) 3508XTflash (f)
3252 struct frame *f; 3509 struct frame *f;
3253{ 3510{
3511 /* Get the height not including a menu bar widget. */
3512 int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f));
3513 /* Height of each line to flash. */
3514 int flash_height = FRAME_LINE_HEIGHT (f);
3515 /* These will be the left and right margins of the rectangles. */
3516 int flash_left = FRAME_INTERNAL_BORDER_WIDTH (f);
3517 int flash_right = FRAME_PIXEL_WIDTH (f) - FRAME_INTERNAL_BORDER_WIDTH (f);
3518
3519 int width;
3520
3521 /* Don't flash the area between a scroll bar and the frame
3522 edge it is next to. */
3523 switch (FRAME_VERTICAL_SCROLL_BAR_TYPE (f))
3524 {
3525 case vertical_scroll_bar_left:
3526 flash_left += VERTICAL_SCROLL_BAR_WIDTH_TRIM;
3527 break;
3528
3529 case vertical_scroll_bar_right:
3530 flash_right -= VERTICAL_SCROLL_BAR_WIDTH_TRIM;
3531 break;
3532
3533 default:
3534 break;
3535 }
3536
3537 width = flash_right - flash_left;
3538
3254 BLOCK_INPUT; 3539 BLOCK_INPUT;
3255 3540
3256 FlashMenuBar (0); 3541 /* If window is tall, flash top and bottom line. */
3542 if (height > 3 * FRAME_LINE_HEIGHT (f))
3543 {
3544 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
3545 flash_left,
3546 (FRAME_INTERNAL_BORDER_WIDTH (f)
3547 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
3548 width, flash_height);
3549 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
3550 flash_left,
3551 (height - flash_height
3552 - FRAME_INTERNAL_BORDER_WIDTH (f)),
3553 width, flash_height);
3554 }
3555 else
3556 /* If it is short, flash it all. */
3557 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
3558 flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
3559 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
3560
3561 x_flush (f);
3257 3562
3258 { 3563 {
3259 struct timeval wakeup; 3564 struct timeval wakeup;
@@ -3265,24 +3570,49 @@ XTflash (f)
3265 wakeup.tv_sec += (wakeup.tv_usec / 1000000); 3570 wakeup.tv_sec += (wakeup.tv_usec / 1000000);
3266 wakeup.tv_usec %= 1000000; 3571 wakeup.tv_usec %= 1000000;
3267 3572
3268 /* Keep waiting until past the time wakeup. */ 3573 /* Keep waiting until past the time wakeup or any input gets
3269 while (1) 3574 available. */
3575 while (! detect_input_pending ())
3270 { 3576 {
3271 struct timeval timeout; 3577 struct timeval current;
3578 struct timeval timeout;
3272 3579
3273 EMACS_GET_TIME (timeout); 3580 EMACS_GET_TIME (current);
3274 3581
3275 /* In effect, timeout = wakeup - timeout. 3582 /* Break if result would be negative. */
3276 Break if result would be negative. */ 3583 if (timeval_subtract (&current, wakeup, current))
3277 if (timeval_subtract (&timeout, wakeup, timeout)) 3584 break;
3278 break;
3279 3585
3280 /* Try to wait that long--but we might wake up sooner. */ 3586 /* How long `select' should wait. */
3281 select (0, NULL, NULL, NULL, &timeout); 3587 timeout.tv_sec = 0;
3588 timeout.tv_usec = 10000;
3589
3590 /* Try to wait that long--but we might wake up sooner. */
3591 select (0, NULL, NULL, NULL, &timeout);
3282 } 3592 }
3283 } 3593 }
3284 3594
3285 FlashMenuBar (0); 3595 /* If window is tall, flash top and bottom line. */
3596 if (height > 3 * FRAME_LINE_HEIGHT (f))
3597 {
3598 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
3599 flash_left,
3600 (FRAME_INTERNAL_BORDER_WIDTH (f)
3601 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
3602 width, flash_height);
3603 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
3604 flash_left,
3605 (height - flash_height
3606 - FRAME_INTERNAL_BORDER_WIDTH (f)),
3607 width, flash_height);
3608 }
3609 else
3610 /* If it is short, flash it all. */
3611 mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
3612 flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
3613 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
3614
3615 x_flush (f);
3286 3616
3287 UNBLOCK_INPUT; 3617 UNBLOCK_INPUT;
3288} 3618}
@@ -6447,6 +6777,10 @@ static char **font_name_table = NULL;
6447static int font_name_table_size = 0; 6777static int font_name_table_size = 0;
6448static int font_name_count = 0; 6778static int font_name_count = 0;
6449 6779
6780#if USE_ATSUI
6781static Lisp_Object atsu_font_id_hash;
6782#endif
6783
6450/* Alist linking character set strings to Mac text encoding and Emacs 6784/* Alist linking character set strings to Mac text encoding and Emacs
6451 coding system. */ 6785 coding system. */
6452static Lisp_Object Vmac_charset_info_alist; 6786static Lisp_Object Vmac_charset_info_alist;
@@ -6653,6 +6987,74 @@ init_font_name_table ()
6653 Lisp_Object text_encoding_info_alist; 6987 Lisp_Object text_encoding_info_alist;
6654 struct gcpro gcpro1; 6988 struct gcpro gcpro1;
6655 6989
6990 text_encoding_info_alist = create_text_encoding_info_alist ();
6991
6992#if USE_ATSUI
6993 if (!NILP (assq_no_quit (make_number (kTextEncodingMacUnicode),
6994 text_encoding_info_alist)))
6995 {
6996 OSErr err;
6997 ItemCount nfonts, i;
6998 ATSUFontID *font_ids = NULL;
6999 Ptr name, prev_name = NULL;
7000 ByteCount name_len;
7001
7002 atsu_font_id_hash =
7003 make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE),
7004 make_float (DEFAULT_REHASH_SIZE),
7005 make_float (DEFAULT_REHASH_THRESHOLD),
7006 Qnil, Qnil, Qnil);;
7007 err = ATSUFontCount (&nfonts);
7008 if (err == noErr)
7009 font_ids = xmalloc (sizeof (ATSUFontID) * nfonts);
7010 if (font_ids)
7011 err = ATSUGetFontIDs (font_ids, nfonts, NULL);
7012 if (err == noErr)
7013 for (i = 0; i < nfonts; i++)
7014 {
7015 err = ATSUFindFontName (font_ids[i], kFontFamilyName,
7016 kFontMacintoshPlatform, kFontNoScript,
7017 kFontNoLanguage, 0, NULL, &name_len, NULL);
7018 if (err != noErr)
7019 continue;
7020 name = xmalloc (name_len + 1);
7021 if (name == NULL)
7022 continue;
7023 name[name_len] = '\0';
7024 err = ATSUFindFontName (font_ids[i], kFontFamilyName,
7025 kFontMacintoshPlatform, kFontNoScript,
7026 kFontNoLanguage, name_len, name,
7027 NULL, NULL);
7028 if (err == noErr
7029 && *name != '.'
7030 && (prev_name == NULL
7031 || strcmp (name, prev_name) != 0))
7032 {
7033 static char *cs = "iso10646-1";
7034
7035 add_font_name_table_entry (mac_to_x_fontname (name, 0,
7036 normal, cs));
7037 add_font_name_table_entry (mac_to_x_fontname (name, 0,
7038 italic, cs));
7039 add_font_name_table_entry (mac_to_x_fontname (name, 0,
7040 bold, cs));
7041 add_font_name_table_entry (mac_to_x_fontname (name, 0,
7042 italic | bold, cs));
7043 Fputhash (Fdowncase (make_unibyte_string (name, name_len)),
7044 long_to_cons (font_ids[i]), atsu_font_id_hash);
7045 xfree (prev_name);
7046 prev_name = name;
7047 }
7048 else
7049 xfree (name);
7050 }
7051 if (prev_name)
7052 xfree (prev_name);
7053 if (font_ids)
7054 xfree (font_ids);
7055 }
7056#endif
7057
6656 /* Create a dummy instance iterator here to avoid creating and 7058 /* Create a dummy instance iterator here to avoid creating and
6657 destroying it in the loop. */ 7059 destroying it in the loop. */
6658 if (FMCreateFontFamilyInstanceIterator (0, &ffii) != noErr) 7060 if (FMCreateFontFamilyInstanceIterator (0, &ffii) != noErr)
@@ -6665,8 +7067,6 @@ init_font_name_table ()
6665 return; 7067 return;
6666 } 7068 }
6667 7069
6668 text_encoding_info_alist = create_text_encoding_info_alist ();
6669
6670 GCPRO1 (text_encoding_info_alist); 7070 GCPRO1 (text_encoding_info_alist);
6671 7071
6672 while (FMGetNextFontFamily (&ffi, &ff) == noErr) 7072 while (FMGetNextFontFamily (&ffi, &ff) == noErr)
@@ -7163,6 +7563,9 @@ XLoadQueryFont (Display *dpy, char *fontname)
7163 Str255 mfontname, mfontname_decoded; 7563 Str255 mfontname, mfontname_decoded;
7164 Str31 charset; 7564 Str31 charset;
7165 SInt16 fontnum; 7565 SInt16 fontnum;
7566#if USE_ATSUI
7567 ATSUStyle mac_style = NULL;
7568#endif
7166 Style fontface; 7569 Style fontface;
7167#if TARGET_API_MAC_CARBON 7570#if TARGET_API_MAC_CARBON
7168 TextEncoding encoding; 7571 TextEncoding encoding;
@@ -7214,6 +7617,48 @@ XLoadQueryFont (Display *dpy, char *fontname)
7214 7617
7215 x_font_name_to_mac_font_name (name, mfontname, mfontname_decoded, 7618 x_font_name_to_mac_font_name (name, mfontname, mfontname_decoded,
7216 &fontface, charset); 7619 &fontface, charset);
7620#if USE_ATSUI
7621 if (strcmp (charset, "iso10646-1") == 0) /* XXX */
7622 {
7623 OSErr err;
7624 ATSUAttributeTag tags[] = {kATSUFontTag, kATSUSizeTag,
7625 kATSUQDBoldfaceTag, kATSUQDItalicTag};
7626 ByteCount sizes[] = {sizeof (ATSUFontID), sizeof (Fixed),
7627 sizeof (Boolean), sizeof (Boolean)};
7628 static ATSUFontID font_id;
7629 static Fixed size_fixed;
7630 static Boolean bold_p, italic_p;
7631 ATSUAttributeValuePtr values[] = {&font_id, &size_fixed,
7632 &bold_p, &italic_p};
7633 ATSUFontFeatureType types[] = {kAllTypographicFeaturesType};
7634 ATSUFontFeatureSelector selectors[] = {kAllTypeFeaturesOffSelector};
7635 Lisp_Object font_id_cons;
7636
7637 font_id_cons = Fgethash (Fdowncase
7638 (make_unibyte_string (mfontname,
7639 strlen (mfontname))),
7640 atsu_font_id_hash, Qnil);
7641 if (NILP (font_id_cons))
7642 return NULL;
7643 font_id = cons_to_long (font_id_cons);
7644 size_fixed = Long2Fix (size);
7645 bold_p = (fontface & bold) != 0;
7646 italic_p = (fontface & italic) != 0;
7647 err = ATSUCreateStyle (&mac_style);
7648 if (err != noErr)
7649 return NULL;
7650 err = ATSUSetFontFeatures (mac_style, sizeof (types) / sizeof (types[0]),
7651 types, selectors);
7652 if (err != noErr)
7653 return NULL;
7654 err = ATSUSetAttributes (mac_style, sizeof (tags) / sizeof (tags[0]),
7655 tags, sizes, values);
7656 fontnum = -1;
7657 scriptcode = kTextEncodingMacUnicode;
7658 }
7659 else
7660 {
7661#endif
7217 c2pstr (mfontname); 7662 c2pstr (mfontname);
7218#if TARGET_API_MAC_CARBON 7663#if TARGET_API_MAC_CARBON
7219 fontnum = FMGetFontFamilyFromName (mfontname); 7664 fontnum = FMGetFontFamilyFromName (mfontname);
@@ -7227,6 +7672,9 @@ XLoadQueryFont (Display *dpy, char *fontname)
7227 return NULL; 7672 return NULL;
7228 scriptcode = FontToScript (fontnum); 7673 scriptcode = FontToScript (fontnum);
7229#endif 7674#endif
7675#if USE_ATSUI
7676 }
7677#endif
7230 7678
7231 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct)); 7679 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
7232 7680
@@ -7234,6 +7682,9 @@ XLoadQueryFont (Display *dpy, char *fontname)
7234 font->mac_fontsize = size; 7682 font->mac_fontsize = size;
7235 font->mac_fontface = fontface; 7683 font->mac_fontface = fontface;
7236 font->mac_scriptcode = scriptcode; 7684 font->mac_scriptcode = scriptcode;
7685#if USE_ATSUI
7686 font->mac_style = mac_style;
7687#endif
7237 7688
7238 /* Apple Japanese (SJIS) font is listed as both 7689 /* Apple Japanese (SJIS) font is listed as both
7239 "*-jisx0208.1983-sjis" (Japanese script) and "*-jisx0201.1976-0" 7690 "*-jisx0208.1983-sjis" (Japanese script) and "*-jisx0201.1976-0"
@@ -7244,6 +7695,91 @@ XLoadQueryFont (Display *dpy, char *fontname)
7244 7695
7245 font->full_name = mac_to_x_fontname (mfontname_decoded, size, fontface, charset); 7696 font->full_name = mac_to_x_fontname (mfontname_decoded, size, fontface, charset);
7246 7697
7698#if USE_ATSUI
7699 if (font->mac_style)
7700 {
7701 OSErr err;
7702 ATSUTextLayout text_layout;
7703 UniChar c = 0x20;
7704 Rect char_bounds, min_bounds, max_bounds;
7705 int min_width, max_width;
7706 ATSTrapezoid glyph_bounds;
7707
7708 font->per_char = xmalloc (sizeof (XCharStruct) * 0x10000);
7709 if (font->per_char == NULL)
7710 {
7711 mac_unload_font (&one_mac_display_info, font);
7712 return NULL;
7713 }
7714 bzero (font->per_char, sizeof (XCharStruct) * 0x10000);
7715
7716 err = atsu_get_text_layout_with_text_ptr (&c, 1,
7717 font->mac_style,
7718 &text_layout);
7719 if (err != noErr)
7720 {
7721 mac_unload_font (&one_mac_display_info, font);
7722 return NULL;
7723 }
7724
7725 for (c = 0x20; c <= 0x7e; c++)
7726 {
7727 err = ATSUClearLayoutCache (text_layout, kATSUFromTextBeginning);
7728 if (err == noErr)
7729 err = ATSUMeasureTextImage (text_layout,
7730 kATSUFromTextBeginning, kATSUToTextEnd,
7731 0, 0, &char_bounds);
7732 if (err == noErr)
7733 err = ATSUGetGlyphBounds (text_layout, 0, 0,
7734 kATSUFromTextBeginning, kATSUToTextEnd,
7735 kATSUseFractionalOrigins, 1,
7736 &glyph_bounds, NULL);
7737 if (err == noErr)
7738 {
7739 xassert (glyph_bounds.lowerRight.x - glyph_bounds.lowerLeft.x
7740 == glyph_bounds.upperRight.x - glyph_bounds.upperLeft.x);
7741
7742 char_width = Fix2Long (glyph_bounds.upperRight.x
7743 - glyph_bounds.upperLeft.x);
7744 STORE_XCHARSTRUCT (font->per_char[c],
7745 char_width, char_bounds);
7746 if (c == 0x20)
7747 {
7748 min_width = max_width = char_width;
7749 min_bounds = max_bounds = char_bounds;
7750 font->ascent = -Fix2Long (glyph_bounds.upperLeft.y);
7751 font->descent = Fix2Long (glyph_bounds.lowerLeft.y);
7752 }
7753 else
7754 {
7755 if (char_width > 0)
7756 {
7757 min_width = min (min_width, char_width);
7758 max_width = max (max_width, char_width);
7759 }
7760 if (!EmptyRect (&char_bounds))
7761 {
7762 SetRect (&min_bounds,
7763 max (min_bounds.left, char_bounds.left),
7764 max (min_bounds.top, char_bounds.top),
7765 min (min_bounds.right, char_bounds.right),
7766 min (min_bounds.bottom, char_bounds.bottom));
7767 UnionRect (&max_bounds, &char_bounds, &max_bounds);
7768 }
7769 }
7770 }
7771 }
7772 STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds);
7773 STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds);
7774
7775 font->min_byte1 = 0;
7776 font->max_byte1 = 0xff;
7777 font->min_char_or_byte2 = 0;
7778 font->max_char_or_byte2 = 0xff;
7779 }
7780 else
7781 {
7782#endif
7247 is_two_byte_font = font->mac_scriptcode == smJapanese || 7783 is_two_byte_font = font->mac_scriptcode == smJapanese ||
7248 font->mac_scriptcode == smTradChinese || 7784 font->mac_scriptcode == smTradChinese ||
7249 font->mac_scriptcode == smSimpChinese || 7785 font->mac_scriptcode == smSimpChinese ||
@@ -7258,24 +7794,26 @@ XLoadQueryFont (Display *dpy, char *fontname)
7258 font->ascent = the_fontinfo.ascent; 7794 font->ascent = the_fontinfo.ascent;
7259 font->descent = the_fontinfo.descent; 7795 font->descent = the_fontinfo.descent;
7260 7796
7261 font->min_byte1 = 0;
7262 if (is_two_byte_font)
7263 font->max_byte1 = 1;
7264 else
7265 font->max_byte1 = 0;
7266 font->min_char_or_byte2 = 0x20;
7267 font->max_char_or_byte2 = 0xff;
7268
7269 if (is_two_byte_font) 7797 if (is_two_byte_font)
7270 { 7798 {
7799 font->min_byte1 = 0xa1;
7800 font->max_byte1 = 0xfe;
7801 font->min_char_or_byte2 = 0xa1;
7802 font->max_char_or_byte2 = 0xfe;
7803
7271 /* Use the width of an "ideographic space" of that font because 7804 /* Use the width of an "ideographic space" of that font because
7272 the_fontinfo.widMax returns the wrong width for some fonts. */ 7805 the_fontinfo.widMax returns the wrong width for some fonts. */
7273 switch (font->mac_scriptcode) 7806 switch (font->mac_scriptcode)
7274 { 7807 {
7275 case smJapanese: 7808 case smJapanese:
7809 font->min_byte1 = 0x81;
7810 font->max_byte1 = 0xfc;
7811 font->min_char_or_byte2 = 0x40;
7812 font->max_char_or_byte2 = 0xfc;
7276 char_width = StringWidth("\p\x81\x40"); 7813 char_width = StringWidth("\p\x81\x40");
7277 break; 7814 break;
7278 case smTradChinese: 7815 case smTradChinese:
7816 font->min_char_or_byte2 = 0x40;
7279 char_width = StringWidth("\p\xa1\x40"); 7817 char_width = StringWidth("\p\xa1\x40");
7280 break; 7818 break;
7281 case smSimpChinese: 7819 case smSimpChinese:
@@ -7287,9 +7825,15 @@ XLoadQueryFont (Display *dpy, char *fontname)
7287 } 7825 }
7288 } 7826 }
7289 else 7827 else
7290 /* Do this instead of use the_fontinfo.widMax, which incorrectly 7828 {
7291 returns 15 for 12-point Monaco! */ 7829 font->min_byte1 = font->max_byte1 = 0;
7292 char_width = CharWidth ('m'); 7830 font->min_char_or_byte2 = 0x20;
7831 font->max_char_or_byte2 = 0xff;
7832
7833 /* Do this instead of use the_fontinfo.widMax, which incorrectly
7834 returns 15 for 12-point Monaco! */
7835 char_width = CharWidth ('m');
7836 }
7293 7837
7294 if (is_two_byte_font) 7838 if (is_two_byte_font)
7295 { 7839 {
@@ -7308,55 +7852,56 @@ XLoadQueryFont (Display *dpy, char *fontname)
7308 } 7852 }
7309 else 7853 else
7310 { 7854 {
7311 font->per_char = (XCharStruct *) 7855 int c, min_width, max_width;
7312 xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1)); 7856 Rect char_bounds, min_bounds, max_bounds;
7313 { 7857 char ch;
7314 int c, min_width, max_width; 7858
7315 Rect char_bounds, min_bounds, max_bounds; 7859 font->per_char = xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1));
7316 char ch; 7860
7317 7861 min_width = max_width = char_width;
7318 min_width = max_width = char_width; 7862 SetRect (&min_bounds, -32767, -32767, 32767, 32767);
7319 SetRect (&min_bounds, -32767, -32767, 32767, 32767); 7863 SetRect (&max_bounds, 0, 0, 0, 0);
7320 SetRect (&max_bounds, 0, 0, 0, 0); 7864 for (c = 0x20; c <= 0xff; c++)
7321 for (c = 0x20; c <= 0xff; c++) 7865 {
7322 { 7866 ch = c;
7323 ch = c; 7867 char_width = CharWidth (ch);
7324 char_width = CharWidth (ch); 7868 QDTextBounds (1, &ch, &char_bounds);
7325 QDTextBounds (1, &ch, &char_bounds); 7869 STORE_XCHARSTRUCT (font->per_char[c - 0x20],
7326 STORE_XCHARSTRUCT (font->per_char[c - 0x20], 7870 char_width, char_bounds);
7327 char_width, char_bounds); 7871 /* Some Japanese fonts (in SJIS encoding) return 0 as the
7328 /* Some Japanese fonts (in SJIS encoding) return 0 as the 7872 character width of 0x7f. */
7329 character width of 0x7f. */ 7873 if (char_width > 0)
7330 if (char_width > 0) 7874 {
7331 { 7875 min_width = min (min_width, char_width);
7332 min_width = min (min_width, char_width); 7876 max_width = max (max_width, char_width);
7333 max_width = max (max_width, char_width); 7877 }
7334 } 7878 if (!EmptyRect (&char_bounds))
7335 if (!EmptyRect (&char_bounds)) 7879 {
7336 { 7880 SetRect (&min_bounds,
7337 SetRect (&min_bounds, 7881 max (min_bounds.left, char_bounds.left),
7338 max (min_bounds.left, char_bounds.left), 7882 max (min_bounds.top, char_bounds.top),
7339 max (min_bounds.top, char_bounds.top), 7883 min (min_bounds.right, char_bounds.right),
7340 min (min_bounds.right, char_bounds.right), 7884 min (min_bounds.bottom, char_bounds.bottom));
7341 min (min_bounds.bottom, char_bounds.bottom)); 7885 UnionRect (&max_bounds, &char_bounds, &max_bounds);
7342 UnionRect (&max_bounds, &char_bounds, &max_bounds); 7886 }
7343 } 7887 }
7344 } 7888 STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds);
7345 STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds); 7889 STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds);
7346 STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds); 7890 if (min_width == max_width
7347 if (min_width == max_width 7891 && max_bounds.left >= 0 && max_bounds.right <= max_width)
7348 && max_bounds.left >= 0 && max_bounds.right <= max_width) 7892 {
7349 { 7893 /* Fixed width and no overhangs. */
7350 /* Fixed width and no overhangs. */ 7894 xfree (font->per_char);
7351 xfree (font->per_char); 7895 font->per_char = NULL;
7352 font->per_char = NULL; 7896 }
7353 }
7354 }
7355 } 7897 }
7356 7898
7357 TextFont (old_fontnum); /* restore previous font number, size and face */ 7899 TextFont (old_fontnum); /* restore previous font number, size and face */
7358 TextSize (old_fontsize); 7900 TextSize (old_fontsize);
7359 TextFace (old_fontface); 7901 TextFace (old_fontface);
7902#if USE_ATSUI
7903 }
7904#endif
7360 7905
7361 return font; 7906 return font;
7362} 7907}
@@ -7370,6 +7915,10 @@ mac_unload_font (dpyinfo, font)
7370 xfree (font->full_name); 7915 xfree (font->full_name);
7371 if (font->per_char) 7916 if (font->per_char)
7372 xfree (font->per_char); 7917 xfree (font->per_char);
7918#if USE_ATSUI
7919 if (font->mac_style)
7920 ATSUDisposeStyle (font->mac_style);
7921#endif
7373 xfree (font); 7922 xfree (font);
7374} 7923}
7375 7924
@@ -10214,75 +10763,6 @@ init_quit_char_handler ()
10214 10763
10215 mac_determine_quit_char_modifiers(); 10764 mac_determine_quit_char_modifiers();
10216} 10765}
10217
10218static Boolean
10219quit_char_comp (EventRef inEvent, void *inCompData)
10220{
10221 if (GetEventClass(inEvent) != kEventClassKeyboard)
10222 return false;
10223 if (GetEventKind(inEvent) != kEventRawKeyDown)
10224 return false;
10225 {
10226 UInt32 keyCode;
10227 UInt32 keyModifiers;
10228 GetEventParameter(inEvent, kEventParamKeyCode,
10229 typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode);
10230 if (keyCode != mac_quit_char_keycode)
10231 return false;
10232 GetEventParameter(inEvent, kEventParamKeyModifiers,
10233 typeUInt32, NULL, sizeof(UInt32), NULL, &keyModifiers);
10234 if (keyModifiers != mac_quit_char_modifiers)
10235 return false;
10236 }
10237 return true;
10238}
10239
10240void
10241mac_check_for_quit_char ()
10242{
10243 EventRef event;
10244 static EMACS_TIME last_check_time = { 0, 0 };
10245 static EMACS_TIME one_second = { 1, 0 };
10246 EMACS_TIME now, t;
10247
10248 /* If windows are not initialized, return immediately (keep it bouncin'). */
10249 if (!mac_quit_char_modifiers)
10250 return;
10251
10252 /* Don't check if last check is less than a second ago. */
10253 EMACS_GET_TIME (now);
10254 EMACS_SUB_TIME (t, now, last_check_time);
10255 if (EMACS_TIME_LT (t, one_second))
10256 return;
10257 last_check_time = now;
10258
10259 /* Redetermine modifiers because they are based on lisp variables */
10260 mac_determine_quit_char_modifiers ();
10261
10262 /* Fill the queue with events */
10263 BLOCK_INPUT;
10264 ReceiveNextEvent (0, NULL, kEventDurationNoWait, false, &event);
10265 event = FindSpecificEventInQueue (GetMainEventQueue (), quit_char_comp,
10266 NULL);
10267 UNBLOCK_INPUT;
10268 if (event)
10269 {
10270 struct input_event e;
10271
10272 /* Use an input_event to emulate what the interrupt handler does. */
10273 EVENT_INIT (e);
10274 e.kind = ASCII_KEYSTROKE_EVENT;
10275 e.code = quit_char;
10276 e.arg = Qnil;
10277 e.modifiers = NULL;
10278 e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60);
10279 XSETFRAME (e.frame_or_window, mac_focus_frame (&one_mac_display_info));
10280 /* Remove event from queue to prevent looping. */
10281 RemoveEventFromQueue (GetMainEventQueue (), event);
10282 ReleaseEvent (event);
10283 kbd_buffer_store_event (&e);
10284 }
10285}
10286#endif /* MAC_OSX */ 10766#endif /* MAC_OSX */
10287 10767
10288static void 10768static void
@@ -10460,6 +10940,11 @@ syms_of_macterm ()
10460 Qmac_ready_for_drag_n_drop = intern ("mac-ready-for-drag-n-drop"); 10940 Qmac_ready_for_drag_n_drop = intern ("mac-ready-for-drag-n-drop");
10461 staticpro (&Qmac_ready_for_drag_n_drop); 10941 staticpro (&Qmac_ready_for_drag_n_drop);
10462 10942
10943#if USE_ATSUI
10944 staticpro (&atsu_font_id_hash);
10945 atsu_font_id_hash = Qnil;
10946#endif
10947
10463 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, 10948 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
10464 doc: /* If not nil, Emacs uses toolkit scroll bars. */); 10949 doc: /* If not nil, Emacs uses toolkit scroll bars. */);
10465#ifdef USE_TOOLKIT_SCROLL_BARS 10950#ifdef USE_TOOLKIT_SCROLL_BARS
diff --git a/src/minibuf.c b/src/minibuf.c
index c0624bd29b4..b7f9fd4838c 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -1132,11 +1132,14 @@ DEFUN ("read-buffer", Fread_buffer, Sread_buffer, 1, 3, 0,
1132Prompt with PROMPT. 1132Prompt with PROMPT.
1133Optional second arg DEF is value to return if user enters an empty line. 1133Optional second arg DEF is value to return if user enters an empty line.
1134If optional third arg REQUIRE-MATCH is non-nil, 1134If optional third arg REQUIRE-MATCH is non-nil,
1135 only existing buffer names are allowed. */) 1135 only existing buffer names are allowed.
1136The argument PROMPT should be a string ending with a colon and a space. */)
1136 (prompt, def, require_match) 1137 (prompt, def, require_match)
1137 Lisp_Object prompt, def, require_match; 1138 Lisp_Object prompt, def, require_match;
1138{ 1139{
1139 Lisp_Object args[4]; 1140 Lisp_Object args[4];
1141 unsigned char *s;
1142 int len;
1140 1143
1141 if (BUFFERP (def)) 1144 if (BUFFERP (def))
1142 def = XBUFFER (def)->name; 1145 def = XBUFFER (def)->name;
@@ -1145,7 +1148,26 @@ If optional third arg REQUIRE-MATCH is non-nil,
1145 { 1148 {
1146 if (!NILP (def)) 1149 if (!NILP (def))
1147 { 1150 {
1148 args[0] = build_string ("%s(default %s) "); 1151 /* A default value was provided: we must change PROMPT,
1152 editing the default value in before the colon. To achieve
1153 this, we replace PROMPT with a substring that doesn't
1154 contain the terminal space and colon (if present). They
1155 are then added back using Fformat. */
1156
1157 if (STRINGP (prompt))
1158 {
1159 s = SDATA (prompt);
1160 len = strlen (s);
1161 if (len >= 2 && s[len - 2] == ':' && s[len - 1] == ' ')
1162 len = len - 2;
1163 else if (len >= 1 && (s[len - 1] == ':' || s[len - 1] == ' '))
1164 len--;
1165
1166 prompt = make_specified_string (s, -1, len,
1167 STRING_MULTIBYTE (prompt));
1168 }
1169
1170 args[0] = build_string ("%s (default %s): ");
1149 args[1] = prompt; 1171 args[1] = prompt;
1150 args[2] = def; 1172 args[2] = def;
1151 prompt = Fformat (3, args); 1173 prompt = Fformat (3, args);
diff --git a/src/process.c b/src/process.c
index bebced812e8..b66c768c256 100644
--- a/src/process.c
+++ b/src/process.c
@@ -118,10 +118,10 @@ Boston, MA 02110-1301, USA. */
118#include <sys/wait.h> 118#include <sys/wait.h>
119#endif 119#endif
120 120
121#include "lisp.h"
121#include "systime.h" 122#include "systime.h"
122#include "systty.h" 123#include "systty.h"
123 124
124#include "lisp.h"
125#include "window.h" 125#include "window.h"
126#include "buffer.h" 126#include "buffer.h"
127#include "character.h" 127#include "character.h"
diff --git a/src/regex.c b/src/regex.c
index bc1ade0bb6e..412fd1d524d 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -1290,9 +1290,9 @@ static re_char *whitespace_regexp;
1290 1290
1291void 1291void
1292re_set_whitespace_regexp (regexp) 1292re_set_whitespace_regexp (regexp)
1293 re_char *regexp; 1293 const char *regexp;
1294{ 1294{
1295 whitespace_regexp = regexp; 1295 whitespace_regexp = (re_char *) regexp;
1296} 1296}
1297WEAK_ALIAS (__re_set_syntax, re_set_syntax) 1297WEAK_ALIAS (__re_set_syntax, re_set_syntax)
1298 1298
diff --git a/src/regex.h b/src/regex.h
index 68db62d34e0..8a669541ff1 100644
--- a/src/regex.h
+++ b/src/regex.h
@@ -609,8 +609,13 @@ typedef enum { RECC_ERROR = 0,
609 RECC_ASCII, RECC_UNIBYTE 609 RECC_ASCII, RECC_UNIBYTE
610} re_wctype_t; 610} re_wctype_t;
611 611
612extern char re_iswctype (int ch, re_wctype_t cc);
613extern re_wctype_t re_wctype (const unsigned char* str);
614
612typedef int re_wchar_t; 615typedef int re_wchar_t;
613 616
617extern void re_set_whitespace_regexp (const char *regexp);
618
614#endif /* not WIDE_CHAR_SUPPORT */ 619#endif /* not WIDE_CHAR_SUPPORT */
615 620
616#endif /* regex.h */ 621#endif /* regex.h */
diff --git a/src/systime.h b/src/systime.h
index 1d0022e93d7..9851db4cf33 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -157,6 +157,14 @@ extern int set_file_times __P ((const char *, EMACS_TIME, EMACS_TIME));
157/* defined in keyboard.c */ 157/* defined in keyboard.c */
158extern void set_waiting_for_input __P ((EMACS_TIME *)); 158extern void set_waiting_for_input __P ((EMACS_TIME *));
159 159
160/* When lisp.h is not included Lisp_Object is not defined (this can
161 happen when this files is used outside the src directory).
162 Use GCPRO1 to determine if lisp.h was included. */
163#ifdef GCPRO1
164/* defined in dired.c */
165extern Lisp_Object make_time __P ((time_t));
166#endif
167
160/* Compare times T1 and T2. Value is 0 if T1 and T2 are the same. 168/* Compare times T1 and T2. Value is 0 if T1 and T2 are the same.
161 Value is < 0 if T1 is less than T2. Value is > 0 otherwise. */ 169 Value is < 0 if T1 is less than T2. Value is > 0 otherwise. */
162 170
diff --git a/src/unexelf.c b/src/unexelf.c
index ee563b36a97..e33a9a1aeb3 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -412,7 +412,7 @@ temacs:
412#include <string.h> 412#include <string.h>
413#else 413#else
414#include <config.h> 414#include <config.h>
415extern void fatal (char *, ...); 415extern void fatal (const char *msgid, ...);
416#endif 416#endif
417 417
418#include <sys/types.h> 418#include <sys/types.h>
diff --git a/src/window.c b/src/window.c
index 198edd3d6d8..9a0d256cdce 100644
--- a/src/window.c
+++ b/src/window.c
@@ -6225,6 +6225,85 @@ usage: (save-window-excursion BODY ...) */)
6225 return unbind_to (count, val); 6225 return unbind_to (count, val);
6226} 6226}
6227 6227
6228
6229
6230/***********************************************************************
6231 Window Split Tree
6232 ***********************************************************************/
6233
6234static Lisp_Object
6235window_split_tree (w)
6236 struct window *w;
6237{
6238 Lisp_Object tail = Qnil;
6239 Lisp_Object result = Qnil;
6240
6241 while (w)
6242 {
6243 Lisp_Object wn;
6244
6245 XSETWINDOW (wn, w);
6246 if (!NILP (w->hchild))
6247 wn = Fcons (Qnil, Fcons (Fwindow_edges (wn),
6248 window_split_tree (XWINDOW (w->hchild))));
6249 else if (!NILP (w->vchild))
6250 wn = Fcons (Qt, Fcons (Fwindow_edges (wn),
6251 window_split_tree (XWINDOW (w->vchild))));
6252
6253 if (NILP (result))
6254 {
6255 result = tail = Fcons (wn, Qnil);
6256 }
6257 else
6258 {
6259 XSETCDR (tail, Fcons (wn, Qnil));
6260 tail = XCDR (tail);
6261 }
6262
6263 w = NILP (w->next) ? 0 : XWINDOW (w->next);
6264 }
6265
6266 return result;
6267}
6268
6269
6270
6271DEFUN ("window-split-tree", Fwindow_split_tree, Swindow_split_tree,
6272 0, 1, 0,
6273 doc: /* Return the window split tree for frame FRAME.
6274
6275The return value is a list of the form (ROOT MINI), where ROOT
6276represents the window split tree of the frame's root window, and MINI
6277is the frame's minibuffer window.
6278
6279If the root window is not split, ROOT is the root window itself.
6280Otherwise, ROOT is a list (DIR EDGES W1 W2 ...) where DIR is nil for a
6281horisontal split, and t for a vertical split, EDGES gives the combined
6282size and position of the subwindows in the split, and the rest of the
6283elements are the subwindows in the split. Each of the subwindows may
6284again be a window or a list representing a window split, and so on.
6285EDGES is a list \(LEFT TOP RIGHT BOTTOM) as returned by `window-edges'.
6286
6287If FRAME is nil or omitted, return information on the currently
6288selected frame. */)
6289 (frame)
6290 Lisp_Object frame;
6291{
6292 Lisp_Object alist;
6293 FRAME_PTR f;
6294
6295 if (NILP (frame))
6296 frame = selected_frame;
6297
6298 CHECK_FRAME (frame);
6299 f = XFRAME (frame);
6300
6301 if (!FRAME_LIVE_P (f))
6302 return Qnil;
6303
6304 return window_split_tree (XWINDOW (FRAME_ROOT_WINDOW (f)));
6305}
6306
6228 6307
6229/*********************************************************************** 6308/***********************************************************************
6230 Marginal Areas 6309 Marginal Areas
@@ -7031,6 +7110,7 @@ The selected frame is the one whose configuration has changed. */);
7031 defsubr (&Sset_window_configuration); 7110 defsubr (&Sset_window_configuration);
7032 defsubr (&Scurrent_window_configuration); 7111 defsubr (&Scurrent_window_configuration);
7033 defsubr (&Ssave_window_excursion); 7112 defsubr (&Ssave_window_excursion);
7113 defsubr (&Swindow_split_tree);
7034 defsubr (&Sset_window_margins); 7114 defsubr (&Sset_window_margins);
7035 defsubr (&Swindow_margins); 7115 defsubr (&Swindow_margins);
7036 defsubr (&Sset_window_fringes); 7116 defsubr (&Sset_window_fringes);
diff --git a/src/xdisp.c b/src/xdisp.c
index 27ab728502a..ef125409076 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -12943,7 +12943,8 @@ try_window (window, pos, check_margins)
12943 this_scroll_margin *= FRAME_LINE_HEIGHT (it.f); 12943 this_scroll_margin *= FRAME_LINE_HEIGHT (it.f);
12944 12944
12945 if ((w->cursor.y < this_scroll_margin 12945 if ((w->cursor.y < this_scroll_margin
12946 && CHARPOS (pos) > BEGV) 12946 && CHARPOS (pos) > BEGV
12947 && IT_CHARPOS (it) < ZV)
12947 /* rms: considering make_cursor_line_fully_visible_p here 12948 /* rms: considering make_cursor_line_fully_visible_p here
12948 seems to give wrong results. We don't want to recenter 12949 seems to give wrong results. We don't want to recenter
12949 when the last line is partly visible, we want to allow 12950 when the last line is partly visible, we want to allow
diff --git a/src/xfaces.c b/src/xfaces.c
index 34bee3298ba..df8dc15f022 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -1475,7 +1475,9 @@ tty_color_name (f, idx)
1475 1475
1476 1476
1477/* Return non-zero if COLOR_NAME is a shade of gray (or white or 1477/* Return non-zero if COLOR_NAME is a shade of gray (or white or
1478 black) on frame F. The algorithm is taken from 20.2 faces.el. */ 1478 black) on frame F.
1479
1480 The criterion implemented here is not a terribly sophisticated one. */
1479 1481
1480static int 1482static int
1481face_color_gray_p (f, color_name) 1483face_color_gray_p (f, color_name)
@@ -1486,12 +1488,15 @@ face_color_gray_p (f, color_name)
1486 int gray_p; 1488 int gray_p;
1487 1489
1488 if (defined_color (f, color_name, &color, 0)) 1490 if (defined_color (f, color_name, &color, 0))
1489 gray_p = ((abs (color.red - color.green) 1491 gray_p = (/* Any color sufficiently close to black counts as grey. */
1490 < max (color.red, color.green) / 20) 1492 (color.red < 5000 && color.green < 5000 && color.blue < 5000)
1491 && (abs (color.green - color.blue) 1493 ||
1492 < max (color.green, color.blue) / 20) 1494 ((abs (color.red - color.green)
1493 && (abs (color.blue - color.red) 1495 < max (color.red, color.green) / 20)
1494 < max (color.blue, color.red) / 20)); 1496 && (abs (color.green - color.blue)
1497 < max (color.green, color.blue) / 20)
1498 && (abs (color.blue - color.red)
1499 < max (color.blue, color.red) / 20)));
1495 else 1500 else
1496 gray_p = 0; 1501 gray_p = 0;
1497 1502
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 0215d562548..e7f3e6fa3e5 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -45,9 +45,9 @@ Boston, MA 02110-1301, USA. */
45#include <sys/param.h> 45#include <sys/param.h>
46#include <stdio.h> 46#include <stdio.h>
47 47
48#include "lisp.h"
48#include "systime.h" 49#include "systime.h"
49#include "sysselect.h" 50#include "sysselect.h"
50#include "lisp.h"
51#include "termhooks.h" 51#include "termhooks.h"
52#include "termopts.h" 52#include "termopts.h"
53#include "xterm.h" 53#include "xterm.h"
diff --git a/src/xterm.c b/src/xterm.c
index 3b94e3b871c..5b7d45fe228 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6237,7 +6237,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
6237 if (status_return == XBufferOverflow) 6237 if (status_return == XBufferOverflow)
6238 { 6238 {
6239 copy_bufsiz = nbytes + 1; 6239 copy_bufsiz = nbytes + 1;
6240 copy_bufptr = (char *) alloca (copy_bufsiz); 6240 copy_bufptr = (unsigned char *) alloca (copy_bufsiz);
6241 nbytes = XmbLookupString (FRAME_XIC (f), 6241 nbytes = XmbLookupString (FRAME_XIC (f),
6242 &event.xkey, copy_bufptr, 6242 &event.xkey, copy_bufptr,
6243 copy_bufsiz, &keysym, 6243 copy_bufsiz, &keysym,
@@ -6255,7 +6255,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
6255 if (status_return == XBufferOverflow) 6255 if (status_return == XBufferOverflow)
6256 { 6256 {
6257 copy_bufsiz = nbytes + 1; 6257 copy_bufsiz = nbytes + 1;
6258 copy_bufptr = (char *) alloca (copy_bufsiz); 6258 copy_bufptr = (unsigned char *) alloca (copy_bufsiz);
6259 nbytes = Xutf8LookupString (FRAME_XIC (f), 6259 nbytes = Xutf8LookupString (FRAME_XIC (f),
6260 &event.xkey, 6260 &event.xkey,
6261 copy_bufptr, 6261 copy_bufptr,