aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorKenichi Handa2010-05-14 13:15:58 +0900
committerKenichi Handa2010-05-14 13:15:58 +0900
commitccd3ce49e08b4f0c0e1bcbb34e9055ca4002e21c (patch)
tree0f53c077154c7cd5f05b339d91905dfd2391679d /lisp
parent82ebc97b11a369303345927c98e7bc69928c9117 (diff)
parent508197067c434b0111bcb6ded742d424bb738ece (diff)
downloademacs-ccd3ce49e08b4f0c0e1bcbb34e9055ca4002e21c.tar.gz
emacs-ccd3ce49e08b4f0c0e1bcbb34e9055ca4002e21c.zip
merge trunk
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog149
-rw-r--r--lisp/ChangeLog.16
-rw-r--r--lisp/ChangeLog.122
-rw-r--r--lisp/ChangeLog.1312
-rw-r--r--lisp/ChangeLog.1428
-rw-r--r--lisp/ChangeLog.510
-rw-r--r--lisp/ChangeLog.64
-rw-r--r--lisp/ChangeLog.72
-rw-r--r--lisp/ChangeLog.916
-rw-r--r--lisp/dirtrack.el7
-rw-r--r--lisp/dos-fns.el39
-rw-r--r--lisp/emulation/cua-base.el9
-rw-r--r--lisp/emulation/cua-gmrk.el6
-rw-r--r--lisp/emulation/cua-rect.el8
-rw-r--r--lisp/erc/ChangeLog.034
-rw-r--r--lisp/erc/ChangeLog.042
-rw-r--r--lisp/gnus/ChangeLog64
-rw-r--r--lisp/gnus/ChangeLog.16
-rw-r--r--lisp/gnus/ChangeLog.216
-rw-r--r--lisp/gnus/gnus-art.el6
-rw-r--r--lisp/gnus/gnus-sum.el4
-rw-r--r--lisp/gnus/message.el62
-rw-r--r--lisp/gnus/mm-extern.el8
-rw-r--r--lisp/gnus/mm-util.el46
-rw-r--r--lisp/gnus/mml1991.el2
-rw-r--r--lisp/gnus/mml2015.el1
-rw-r--r--lisp/iimage.el73
-rw-r--r--lisp/info.el24
-rw-r--r--lisp/mh-e/ChangeLog.130
-rw-r--r--lisp/minibuffer.el73
-rw-r--r--lisp/net/tramp-smb.el270
-rw-r--r--lisp/net/tramp.el275
-rw-r--r--lisp/org/ChangeLog2
-rw-r--r--lisp/progmodes/cc-cmds.el10
-rw-r--r--lisp/progmodes/sh-script.el10
-rw-r--r--lisp/scroll-all.el4
-rw-r--r--lisp/textmodes/ispell.el17
-rw-r--r--lisp/textmodes/sgml-mode.el5
-rw-r--r--lisp/textmodes/tex-mode.el5
39 files changed, 769 insertions, 548 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 871b51470f8..484ae6529c3 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,13 +1,111 @@
12010-05-13 Chong Yidong <cyd@stupidchicken.com>
2
3 Add TeX open-block and close-block keybindings to SGML, and vice
4 versa.
5
6 * textmodes/tex-mode.el (tex-mode-map): Bind C-c C-t to
7 latex-open-block and C-c / to latex-close-block.
8
9 * textmodes/sgml-mode.el (sgml-mode-map): Bind C-c C-o to sgml-tag
10 and C-c C-e to sgml-close-tag.
11
122010-05-13 Michael Albinus <michael.albinus@gmx.de>
13
14 * net/tramp.el (with-progress-reporter): Create reporter object
15 only when the message would be displayed. Handled nested calls.
16 (tramp-handle-load, tramp-handle-file-local-copy)
17 (tramp-handle-insert-file-contents, tramp-handle-write-region)
18 (tramp-maybe-send-script, tramp-find-shell): Use
19 `with-progress-reporter'.
20 (tramp-handle-dired-compress-file, tramp-maybe-open-connection):
21 Fix message text.
22
23 * net/tramp-smb.el (tramp-smb-handle-copy-file)
24 (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
25 (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
26 Use `with-progress-reporter'.
27
282010-05-13 Agustín Martín <agustin.martin@hispalinux.es>
29
30 * ispell.el (ispell-init-process): Do not kill ispell process
31 everytime when spellchecking from the minibuffer (bug#6143).
32
332010-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
34
35 * progmodes/sh-script.el (sh-mode): Use define-derived-mode.
36
37 * dos-fns.el: Add "dos-" prefix for namespace control.
38 (convert-standard-filename): Define as alias for
39 dos-convert-standard-filename but only if applicable.
40
412010-05-12 Alan Mackenzie <acm@muc.de>
42
43 * progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun):
44 Push the mark at the start of these functions when appropriate.
45
462010-05-12 Stefan Monnier <monnier@iro.umontreal.ca>
47
48 * minibuffer.el (completion-cycle-threshold): New custom var.
49 (completion--do-completion): Use it.
50 (minibuffer-complete): Use cycling if appropriate.
51
522010-05-11 Juanma Barranquero <lekktu@gmail.com>
53
54 * dirtrack.el (dirtrackp): Remove defcustom; don't make automatically
55 buffer-local (it's an obsolete alias for `dirtrack-mode') (bug#6173).
56
572010-05-11 Juri Linkov <juri@jurta.org>
58
59 * scroll-all.el (scroll-all-check-to-scroll):
60 Add `scroll-up-command' and `scroll-down-command' (bug#6164).
61
622010-05-11 Stefan Monnier <monnier@iro.umontreal.ca>
63
64 * iimage.el (iimage-mode-map): Move initialization into declaration.
65 (iimage-mode-buffer): Use with-silent-modifications.
66 Simplify calling convention. Adjust callers.
67 (iimage-mode): Don't run hook redundantly.
68
69 * minibuffer.el (completion-pcm--pattern->regex):
70 Fix last change (bug#6160).
71
722010-05-10 Juri Linkov <juri@jurta.org>
73
74 Remove nodes visited during Isearch from the Info history.
75 * info.el (Info-isearch-initial-history)
76 (Info-isearch-initial-history-list): New variables.
77 (Info-isearch-start): Record initial values of
78 Info-isearch-initial-history and Info-isearch-initial-history-list.
79 Add Info-isearch-end to isearch-mode-end-hook.
80 (Info-isearch-end): New function.
81
822010-05-10 Michael Albinus <michael.albinus@gmx.de>
83
84 * net/tramp.el (tramp-do-file-attributes-with-stat): Add space in
85 format string, in order to work around a bug in pdksh.
86 Reported by Gilles Pion <gpion@lfdj.com>.
87 (tramp-handle-verify-visited-file-modtime): Do not send a command
88 when the connection is not established.
89 (tramp-handle-set-file-times): Simplify the check for utc.
90
912010-05-10 Juanma Barranquero <lekktu@gmail.com>
92
93 Fix use of `filter-buffer-substring' (rework previous change).
94 * emulation/cua-base.el (cua--filter-buffer-noprops): New function.
95 (cua-repeat-replace-region):
96 * emulation/cua-rect.el (cua--extract-rectangle, cua-incr-rectangle):
97 * emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
98 (cua-cut-region-to-global-mark): Use it.
99
12010-05-09 Michael R. Mauger <mmaug@yahoo.com> 1002010-05-09 Michael R. Mauger <mmaug@yahoo.com>
2 101
3 * progmodes/sql.el: Version 2.1 102 * progmodes/sql.el: Version 2.1.
4 (sql-product-alist): Redesigned structure of product info. 103 (sql-product-alist): Redesign structure of product info.
5 (sql-product, sql-user, sql-server, sql-database): Safe 104 (sql-product, sql-user, sql-server, sql-database): Safe variables.
6 variables.
7 (sql-port, sql-port-history): New variables. 105 (sql-port, sql-port-history): New variables.
8 (sql-interactive-product): New variable. 106 (sql-interactive-product): New variable.
9 (sql-send-terminator): New variable. 107 (sql-send-terminator): New variable.
10 (sql-imenu-generic-expression): Added "Types" imenu entry. 108 (sql-imenu-generic-expression): Add "Types" imenu entry.
11 (sql-oracle-login-params, sql-sqlite-login-params) 109 (sql-oracle-login-params, sql-sqlite-login-params)
12 (sql-mysql-login-params, sql-solid-login-params) 110 (sql-mysql-login-params, sql-solid-login-params)
13 (sql-sybase-login-params, sql-informix-login-params) 111 (sql-sybase-login-params, sql-informix-login-params)
@@ -15,10 +113,9 @@
15 (sql-postgres-login-params, sql-interbase-login-params) 113 (sql-postgres-login-params, sql-interbase-login-params)
16 (sql-db2-login-params, sql-linter-login-params) 114 (sql-db2-login-params, sql-linter-login-params)
17 (sql-oracle-scan-on): New variables. 115 (sql-oracle-scan-on): New variables.
18 (sql-mode-map): Added C-c C-i to start interactive mode. 116 (sql-mode-map): Add C-c C-i to start interactive mode.
19 (sql-mode-menu): Updated existing menu entries. 117 (sql-mode-menu): Update existing menu entries.
20 (sql-font-lock-keywords-builder): Compile-time font-lock 118 (sql-font-lock-keywords-builder): Compile-time font-lock optimization.
21 optimization.
22 (sql-mode-oracle-font-lock-keywords) 119 (sql-mode-oracle-font-lock-keywords)
23 (sql-mode-postgres-font-lock-keywords) 120 (sql-mode-postgres-font-lock-keywords)
24 (sql-mode-ms-font-lock-keywords) 121 (sql-mode-ms-font-lock-keywords)
@@ -30,7 +127,7 @@
30 (sql-mode-mysql-font-lock-keywords) 127 (sql-mode-mysql-font-lock-keywords)
31 (sql-mode-sqlite-font-lock-keywords) 128 (sql-mode-sqlite-font-lock-keywords)
32 (sql-mode-db2-font-lock-keywords) 129 (sql-mode-db2-font-lock-keywords)
33 (sql-mode-linter-font-lock-keywords): Updated initialization to 130 (sql-mode-linter-font-lock-keywords): Update initialization to
34 reduce run-time complexity. 131 reduce run-time complexity.
35 (sql-add-product, sql-del-product): New functions. 132 (sql-add-product, sql-del-product): New functions.
36 (sql-set-product-feature, sql-get-product-feature): New functions. 133 (sql-set-product-feature, sql-get-product-feature): New functions.
@@ -39,12 +136,12 @@
39 (sql-highlight-product): Update product API. 136 (sql-highlight-product): Update product API.
40 (sql-help-list-products): New function. 137 (sql-help-list-products): New function.
41 (sql-help): Dynamically lists free and non-free products. 138 (sql-help): Dynamically lists free and non-free products.
42 (sql-get-login): Corrected bug in handling history and added 139 (sql-get-login): Correct bug in handling history and added
43 prompt for port. 140 prompt for port.
44 (sql-copy-column): Copy without properties. 141 (sql-copy-column): Copy without properties.
45 (sqli-input-sender): Apply filters to SQLi input. 142 (sqli-input-sender): Apply filters to SQLi input.
46 (sql-query-placeholders-and-send): Obey `sql-oracle-scan-on' 143 (sql-query-placeholders-and-send): Obey `sql-oracle-scan-on' setting.
47 setting. Implement as a filter. 144 Implement as a filter.
48 (sql-escape-newlines-filter): Implement as a filter. 145 (sql-escape-newlines-filter): Implement as a filter.
49 (sql-remove-tabs-filter): New function. 146 (sql-remove-tabs-filter): New function.
50 (sql-send-magic-terminator): New function. 147 (sql-send-magic-terminator): New function.
@@ -59,8 +156,8 @@
59 (sql-connect-oracle, sql-connect-sybase, sql-connect-informix) 156 (sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
60 (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid) 157 (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
61 (sql-connect-ingres, sql-connect-ms, sql-connect-postgres) 158 (sql-connect-ingres, sql-connect-ms, sql-connect-postgres)
62 (sql-connect-interbase, sql-connect-db2, sql-connect-linter): Use 159 (sql-connect-interbase, sql-connect-db2, sql-connect-linter):
63 `sql-connect'. 160 Use `sql-connect'.
64 161
652010-05-09 Stefan Monnier <monnier@iro.umontreal.ca> 1622010-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
66 163
@@ -109,7 +206,7 @@
109 206
1102010-05-08 Chong Yidong <cyd@stupidchicken.com> 2072010-05-08 Chong Yidong <cyd@stupidchicken.com>
111 208
112 * international/mule.el (auto-coding-alist): Only purecopy 209 * international/mule.el (auto-coding-alist): Only purecopy
113 car of each item, not the whole list (Bug#6083). 210 car of each item, not the whole list (Bug#6083).
114 211
1152010-05-08 Chong Yidong <cyd@stupidchicken.com> 2122010-05-08 Chong Yidong <cyd@stupidchicken.com>
@@ -122,7 +219,7 @@
122 * composite.el (compose-region, reference-point-alist): Fix typos 219 * composite.el (compose-region, reference-point-alist): Fix typos
123 in the doc strings. 220 in the doc strings.
124 221
1252010-05-08 Alexander Klimov <alserkli@inbox.ru> (tiny change) 2222010-05-08 Alexander Klimov <alserkli@inbox.ru> (tiny change)
126 223
127 * calc/calc-graph.el (calc-graph-plot): Use the proper form for 224 * calc/calc-graph.el (calc-graph-plot): Use the proper form for
128 gnuplot's "set" command. 225 gnuplot's "set" command.
@@ -465,7 +562,7 @@
465 (ede-dired-add-to-target): Use dolist. 562 (ede-dired-add-to-target): Use dolist.
466 563
4672010-05-01 Toru TSUNEYOSHI <t_tuneyosi@hotmail.com> 5642010-05-01 Toru TSUNEYOSHI <t_tuneyosi@hotmail.com>
468 Michael Albinus <michael.albinus@gmx.de> 565 Michael Albinus <michael.albinus@gmx.de>
469 566
470 Implement compression for inline methods. 567 Implement compression for inline methods.
471 568
@@ -769,6 +866,8 @@
769 866
7702010-04-21 Stefan Monnier <monnier@iro.umontreal.ca> 8672010-04-21 Stefan Monnier <monnier@iro.umontreal.ca>
771 868
869 Make the log-edit comments use RFC822 format throughout.
870
772 * vc.el (vc-checkin, vc-modify-change-comment): 871 * vc.el (vc-checkin, vc-modify-change-comment):
773 Adjust to new vc-start/finish-logentry. 872 Adjust to new vc-start/finish-logentry.
774 (vc-find-conflicted-file): New command. 873 (vc-find-conflicted-file): New command.
@@ -974,7 +1073,7 @@
974 (calc-hyperbolic): Add "Option" to message, as appropriate. 1073 (calc-hyperbolic): Add "Option" to message, as appropriate.
975 (calc-option, calc-is-option): New functions. 1074 (calc-option, calc-is-option): New functions.
976 1075
977 * calc-help.el (calc-full-help): Add `calc-option-help'. 1076 * calc-help.el (calc-full-help): Add `calc-option-help'.
978 (calc-option-prefix-help): New function. 1077 (calc-option-prefix-help): New function.
979 1078
980 * calc-misc.el (calc-help): Add "Option" entry. 1079 * calc-misc.el (calc-help): Add "Option" entry.
@@ -1537,7 +1636,7 @@
1537 values. 1636 values.
1538 1637
15392010-03-29 Phil Hagelberg <phil@evri.com> 16382010-03-29 Phil Hagelberg <phil@evri.com>
1540 Chong Yidong <cyd@stupidchicken.com> 1639 Chong Yidong <cyd@stupidchicken.com>
1541 1640
1542 * subr.el: Extend progress reporters to perform "spinning". 1641 * subr.el: Extend progress reporters to perform "spinning".
1543 (progress-reporter-update, progress-reporter-do-update): 1642 (progress-reporter-update, progress-reporter-do-update):
@@ -5180,7 +5279,7 @@
5180 * Makefile.in (ELCFILES): Adapt to subword.el move. 5279 * Makefile.in (ELCFILES): Adapt to subword.el move.
5181 5280
51822009-11-21 Thierry Volpiatto <thierry.volpiatto@gmail.com> 52812009-11-21 Thierry Volpiatto <thierry.volpiatto@gmail.com>
5183 Stefan Monnier <monnier@iro.umontreal.ca> 5282 Stefan Monnier <monnier@iro.umontreal.ca>
5184 5283
5185 * bookmark.el (bookmark-bmenu-bookmark-column): Remove var. 5284 * bookmark.el (bookmark-bmenu-bookmark-column): Remove var.
5186 (bookmark-bmenu-list): Save name on `bookmark-name-prop' text-prop. 5285 (bookmark-bmenu-list): Save name on `bookmark-name-prop' text-prop.
@@ -9266,7 +9365,7 @@
9266 indent buffer only if called interactively (Bug#4452). 9365 indent buffer only if called interactively (Bug#4452).
9267 9366
92682009-09-19 Juanma Barranquero <lekktu@gmail.com> 93672009-09-19 Juanma Barranquero <lekktu@gmail.com>
9269 Eli Zaretskii <eliz@gnu.org> 9368 Eli Zaretskii <eliz@gnu.org>
9270 9369
9271 This fixes bug#4197 (merged to bug#865, though not identical). 9370 This fixes bug#4197 (merged to bug#865, though not identical).
9272 * server.el (server-auth-dir): Add docstring note about FAT32. 9371 * server.el (server-auth-dir): Add docstring note about FAT32.
@@ -10083,7 +10182,7 @@
10083 Don't call substitute-in-file-name on diary-file. 10182 Don't call substitute-in-file-name on diary-file.
10084 10183
100852009-09-03 Eduard Wiebe <usenet@pusto.de> 101842009-09-03 Eduard Wiebe <usenet@pusto.de>
10086 Stefan Monnier <monnier@iro.umontreal.ca> 10185 Stefan Monnier <monnier@iro.umontreal.ca>
10087 10186
10088 * mail/footnote.el (footnote-prefix): Make it a defcustom. 10187 * mail/footnote.el (footnote-prefix): Make it a defcustom.
10089 (footnote-mode-map): Move initialization into the declaration. 10188 (footnote-mode-map): Move initialization into the declaration.
@@ -11194,7 +11293,7 @@
11194 * progmodes/hideshow.el (hs-special-modes-alist): Add js-mode entry. 11293 * progmodes/hideshow.el (hs-special-modes-alist): Add js-mode entry.
11195 11294
111962009-08-14 Daniel Colascione <dan.colascione@gmail.com> 112952009-08-14 Daniel Colascione <dan.colascione@gmail.com>
11197 Karl Landstrom <karl.landstrom@brgeight.se> 11296 Karl Landstrom <karl.landstrom@brgeight.se>
11198 11297
11199 * progmodes/js.el: New file. 11298 * progmodes/js.el: New file.
11200 11299
@@ -12961,7 +13060,7 @@
12961 XZ is the successor to LZMA: <http://tukaani.org/xz/> 13060 XZ is the successor to LZMA: <http://tukaani.org/xz/>
12962 13061
129632009-06-22 Dmitry Dzhus <dima@sphinx.net.ru> 130622009-06-22 Dmitry Dzhus <dima@sphinx.net.ru>
12964 Nick Roberts <nickrob@snap.net.nz> 13063 Nick Roberts <nickrob@snap.net.nz>
12965 13064
12966 * progmodes/gdb-mi.el: Pull further modified changes from Dmitry's 13065 * progmodes/gdb-mi.el: Pull further modified changes from Dmitry's
12967 repository (http://sphinx.net.ru/hg/gdb-mi/). 13066 repository (http://sphinx.net.ru/hg/gdb-mi/).
diff --git a/lisp/ChangeLog.1 b/lisp/ChangeLog.1
index dd96ee162f1..bd8b8c3ae27 100644
--- a/lisp/ChangeLog.1
+++ b/lisp/ChangeLog.1
@@ -990,7 +990,7 @@
990 * info.el: 990 * info.el:
991 (Info-select-node): Was searching unboundedly for "execute:". 991 (Info-select-node): Was searching unboundedly for "execute:".
992 (Info-follow-reference): Was called Info-footnote. 992 (Info-follow-reference): Was called Info-footnote.
993 Also, handle presence of spaces and newlines in ref names. 993 Also, handle presence of spaces and newlines in ref names.
994 (Info-extract-menu-node-name): Handle presence of spaces and 994 (Info-extract-menu-node-name): Handle presence of spaces and
995 newlines in the node name. 995 newlines in the node name.
996 (Info-menu): Handle presence of spaces and newlines in item 996 (Info-menu): Handle presence of spaces and newlines in item
@@ -1465,7 +1465,7 @@
14651985-10-28 Richard M. Stallman (rms@prep) 14651985-10-28 Richard M. Stallman (rms@prep)
1466 1466
1467 * rmail.el, rmailsum.el, rmailkwd.el, rmailmsc.el, 1467 * rmail.el, rmailsum.el, rmailkwd.el, rmailmsc.el,
1468 rmailout.el, rmailedit.el: 1468 * rmailout.el, rmailedit.el:
1469 Install thoroughly rewritten rmail with many new features. 1469 Install thoroughly rewritten rmail with many new features.
1470 1470
1471 * debug.el (debug, debugger-mode): 1471 * debug.el (debug, debugger-mode):
@@ -3100,7 +3100,7 @@
3100 (also, mail-yank-ignored-headers had a typo) 3100 (also, mail-yank-ignored-headers had a typo)
3101 3101
3102 * rmail.el (rmail-get-new-mail, convert-to-babyl-format, ...) 3102 * rmail.el (rmail-get-new-mail, convert-to-babyl-format, ...)
3103 loaddefs.el 3103 * loaddefs.el:
3104 Remodularize inbox parsing. Add support(?) for mmdf inboxes. 3104 Remodularize inbox parsing. Add support(?) for mmdf inboxes.
3105 Note that I can't seem to define definitive documentation of 3105 Note that I can't seem to define definitive documentation of
3106 what this format is; however the code installed seems to work 3106 what this format is; however the code installed seems to work
diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12
index 95f59243cb1..b058e6813d5 100644
--- a/lisp/ChangeLog.12
+++ b/lisp/ChangeLog.12
@@ -32509,7 +32509,7 @@
32509 (bibtex-field-list, bibtex-find-crossref): Fix typos in error messages. 32509 (bibtex-field-list, bibtex-find-crossref): Fix typos in error messages.
32510 32510
325112005-01-24 Dan Nicolaescu <dann@ics.uci.edu> 325112005-01-24 Dan Nicolaescu <dann@ics.uci.edu>
32512 Juri Linkov <juri@jurta.org> 32512 Juri Linkov <juri@jurta.org>
32513 32513
32514 * textmodes/reftex-global.el (reftex-isearch-push-state-function) 32514 * textmodes/reftex-global.el (reftex-isearch-push-state-function)
32515 (reftex-isearch-pop-state-function, reftex-isearch-isearch-search) 32515 (reftex-isearch-pop-state-function, reftex-isearch-isearch-search)
diff --git a/lisp/ChangeLog.13 b/lisp/ChangeLog.13
index 12ea1f45e17..d219c7a5660 100644
--- a/lisp/ChangeLog.13
+++ b/lisp/ChangeLog.13
@@ -721,7 +721,7 @@
721 char-width-table. Don't make ethiopic and tibetan double column. 721 char-width-table. Don't make ethiopic and tibetan double column.
722 722
723 * textmodes/fill.el (fill-find-break-point-function-table): 723 * textmodes/fill.el (fill-find-break-point-function-table):
724 Don't set it up in defvar. 724 Don't set it up in defvar.
725 (fill-nospace-between-words-table): New variable. 725 (fill-nospace-between-words-table): New variable.
726 (fill-delete-newlines): Check fill-nospace-between-words-table 726 (fill-delete-newlines): Check fill-nospace-between-words-table
727 instead of charset property nospace-between-words. 727 instead of charset property nospace-between-words.
@@ -1872,8 +1872,8 @@
18722008-02-01 Dave Love <fx@gnu.org> 18722008-02-01 Dave Love <fx@gnu.org>
1873 1873
1874 * emacs-lisp/byte-opt.el (side-effect-free-fns): 1874 * emacs-lisp/byte-opt.el (side-effect-free-fns):
1875 Add string-make-unibyte string-make-multibyte string-to-multibyte 1875 Add string-make-unibyte string-make-multibyte string-to-multibyte
1876 string-as-multibyte string-as-unibyte. 1876 string-as-multibyte string-as-unibyte.
1877 1877
18782008-02-01 Dave Love <fx@gnu.org> 18782008-02-01 Dave Love <fx@gnu.org>
1879 1879
@@ -3983,7 +3983,7 @@
3983 * ibuffer.el (ibuffer-mode): Fix typo in previous change. 3983 * ibuffer.el (ibuffer-mode): Fix typo in previous change.
3984 3984
39852008-01-17 Vinicius Jose Latorre <viniciusjl@ig.com.br> 39852008-01-17 Vinicius Jose Latorre <viniciusjl@ig.com.br>
3986 Miles Bader <miles@gnu.org> 3986 Miles Bader <miles@gnu.org>
3987 3987
3988 * blank-mode.el: New file. Minor mode to visualize (HARD) SPACE, 3988 * blank-mode.el: New file. Minor mode to visualize (HARD) SPACE,
3989 TAB, NEWLINE. Miles Bader <miles@gnu.org> wrote the original code 3989 TAB, NEWLINE. Miles Bader <miles@gnu.org> wrote the original code
@@ -5479,7 +5479,7 @@
5479 (verilog-insert-indices): Escape braces in doc strings. 5479 (verilog-insert-indices): Escape braces in doc strings.
5480 5480
54812007-12-08 Michael McNamara <mac@verilog.com> 54812007-12-08 Michael McNamara <mac@verilog.com>
5482 Wilson Snyder <wsnyder@wsnyder.org> 5482 Wilson Snyder <wsnyder@wsnyder.org>
5483 5483
5484 * progmodes/verilog-mode.el: New file. 5484 * progmodes/verilog-mode.el: New file.
5485 5485
@@ -13484,7 +13484,7 @@
13484 Use native Emacs functions, when appropriate. 13484 Use native Emacs functions, when appropriate.
13485 13485
134862007-08-01 Dan Nicolaescu <dann@ics.uci.edu> 134862007-08-01 Dan Nicolaescu <dann@ics.uci.edu>
13487 Stefan Monnier <monnier@iro.umontreal.ca> 13487 Stefan Monnier <monnier@iro.umontreal.ca>
13488 13488
13489 * vc.el: Document new VC operation `extra-menu'. 13489 * vc.el: Document new VC operation `extra-menu'.
13490 13490
diff --git a/lisp/ChangeLog.14 b/lisp/ChangeLog.14
index 1edfd9081d0..a01020b87d0 100644
--- a/lisp/ChangeLog.14
+++ b/lisp/ChangeLog.14
@@ -1029,7 +1029,7 @@
1029 1029
1030 * paren.el (show-paren-function): 1030 * paren.el (show-paren-function):
1031 * simple.el (kill-forward-chars, kill-backward-chars): 1031 * simple.el (kill-forward-chars, kill-backward-chars):
1032 Use (+/- (point) N), instead of `forward-point'. 1032 Use (+/- (point) N), instead of `forward-point'.
1033 1033
10342009-03-19 Glenn Morris <rgm@gnu.org> 10342009-03-19 Glenn Morris <rgm@gnu.org>
1035 1035
@@ -3012,12 +3012,12 @@
3012 Don't activate node nil. (Bug#1569) 3012 Don't activate node nil. (Bug#1569)
3013 3013
30142009-01-22 Paul Reilly <pmr@pajato.com> 30142009-01-22 Paul Reilly <pmr@pajato.com>
3015 Henrik Enberg <enberg@printf.se> 3015 Henrik Enberg <enberg@printf.se>
3016 Alex Schroeder <alex@gnu.org> 3016 Alex Schroeder <alex@gnu.org>
3017 Chong Yidong <cyd@stupidchicken.com> 3017 Chong Yidong <cyd@stupidchicken.com>
3018 Richard M Stallman <rms@gnu.org> 3018 Richard M Stallman <rms@gnu.org>
3019 Glenn Morris <rgm@gnu.org> 3019 Glenn Morris <rgm@gnu.org>
3020 Juanma Barranquero <lekktu@gmail.com> 3020 Juanma Barranquero <lekktu@gmail.com>
3021 3021
3022 * mail/rmail.el: Code implementing Rmail-mbox functionality. 3022 * mail/rmail.el: Code implementing Rmail-mbox functionality.
3023 (rmail-attribute-header, rmail-keyword-header) 3023 (rmail-attribute-header, rmail-keyword-header)
@@ -4310,7 +4310,7 @@
4310 was orderly adjusted, nil otherwise. 4310 was orderly adjusted, nil otherwise.
4311 4311
43122008-12-12 Juanma Barranquero <lekktu@gmail.com> 43122008-12-12 Juanma Barranquero <lekktu@gmail.com>
4313 Stefan Monnier <monnier@iro.umontreal.ca> 4313 Stefan Monnier <monnier@iro.umontreal.ca>
4314 4314
4315 * server.el (server-sentinel): Uncomment code to delete connection file. 4315 * server.el (server-sentinel): Uncomment code to delete connection file.
4316 (server-start): Save the connection file in the server property list. 4316 (server-start): Save the connection file in the server property list.
@@ -4369,7 +4369,7 @@
4369 terminal variable assignment. 4369 terminal variable assignment.
4370 4370
43712008-12-10 Yukihiro Matsumoto <matz@ruby-lang.org> 43712008-12-10 Yukihiro Matsumoto <matz@ruby-lang.org>
4372 Nobuyoshi Nakada <nobu@ruby-lang.org> 4372 Nobuyoshi Nakada <nobu@ruby-lang.org>
4373 4373
4374 * progmodes/ruby-mode.el: New file. 4374 * progmodes/ruby-mode.el: New file.
4375 4375
@@ -5599,7 +5599,7 @@
5599 New aliases, to satisfy `define-derived-mode' expectations. 5599 New aliases, to satisfy `define-derived-mode' expectations.
5600 5600
56012008-11-15 Glenn Morris <rgm@gnu.org> 56012008-11-15 Glenn Morris <rgm@gnu.org>
5602 Martin Rudalics <rudalics@gmx.at> 5602 Martin Rudalics <rudalics@gmx.at>
5603 5603
5604 * emacs-lisp/find-func.el (find-function-advised-original): New. 5604 * emacs-lisp/find-func.el (find-function-advised-original): New.
5605 (find-function-C-source, find-function-noselect): 5605 (find-function-C-source, find-function-noselect):
@@ -10308,8 +10308,8 @@
10308 (newsticker--treeview-propertize-tag): Show item title in tooltip. 10308 (newsticker--treeview-propertize-tag): Show item title in tooltip.
10309 10309
103102008-06-20 Martin Blais <blais@furius.ca> 103102008-06-20 Martin Blais <blais@furius.ca>
10311 Stefan Merten <smerten@oekonux.de> 10311 Stefan Merten <smerten@oekonux.de>
10312 David Goodger <goodger@python.org> 10312 David Goodger <goodger@python.org>
10313 10313
10314 * textmodes/rst.el: New file. 10314 * textmodes/rst.el: New file.
10315 10315
@@ -10627,7 +10627,7 @@
10627 * term/linux.el (terminal-init-linux): Load t-mouse. 10627 * term/linux.el (terminal-init-linux): Load t-mouse.
10628 10628
106292008-06-13 Stefan Monnier <monnier@iro.umontreal.ca> 106292008-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
10630 Drew Adams <drew.adams@oracle.com> 10630 Drew Adams <drew.adams@oracle.com>
10631 10631
10632 * info.el (Info-breadcrumbs-depth): New var. 10632 * info.el (Info-breadcrumbs-depth): New var.
10633 (Info-insert-breadcrumbs): New function. 10633 (Info-insert-breadcrumbs): New function.
@@ -18798,7 +18798,7 @@
18798 for useful options. 18798 for useful options.
18799 18799
188002008-03-01 Dan Nicolaescu <dann@ics.uci.edu> 188002008-03-01 Dan Nicolaescu <dann@ics.uci.edu>
18801 Glenn Morris <rgm@gnu.org> 18801 Glenn Morris <rgm@gnu.org>
18802 18802
18803 * emacs-lisp/bytecomp.el (byte-recompile-directory) 18803 * emacs-lisp/bytecomp.el (byte-recompile-directory)
18804 (byte-compile-file, batch-byte-compile, batch-byte-compile-file): 18804 (byte-compile-file, batch-byte-compile, batch-byte-compile-file):
diff --git a/lisp/ChangeLog.5 b/lisp/ChangeLog.5
index cd36210f7fc..6da88b3c0be 100644
--- a/lisp/ChangeLog.5
+++ b/lisp/ChangeLog.5
@@ -7051,7 +7051,7 @@
7051 * ediff.el (ediff-toggle-read-only, ediff-patch-file): Check out 7051 * ediff.el (ediff-toggle-read-only, ediff-patch-file): Check out
7052 version controlled files before their buffers are modified. 7052 version controlled files before their buffers are modified.
7053 (ediff-local-checkout-flag, ediff-toggle-read-only-function): 7053 (ediff-local-checkout-flag, ediff-toggle-read-only-function):
7054 New variables. 7054 New variables.
7055 7055
7056 * ediff.el (ediff-find-file, ediff-patch-file): Were getting 7056 * ediff.el (ediff-find-file, ediff-patch-file): Were getting
7057 confused by symbolic links. Fixed. 7057 confused by symbolic links. Fixed.
@@ -8050,7 +8050,7 @@
80501994-07-23 enami tsugutomo <enami@sys.ptg.sony.co.jp> 80501994-07-23 enami tsugutomo <enami@sys.ptg.sony.co.jp>
8051 8051
8052 * lisp/add-log.el (add-log-current-defun): Skip doc string 8052 * lisp/add-log.el (add-log-current-defun): Skip doc string
8053 correctly even if it ends with line that starts space. 8053 correctly even if it ends with line that starts space.
8054 8054
80551994-07-22 Ed Reingold <reingold@albert.gnu.ai.mit.edu> 80551994-07-22 Ed Reingold <reingold@albert.gnu.ai.mit.edu>
8056 8056
@@ -9194,11 +9194,11 @@
9194 * solar.el (solar-sunrise, solar-sunset): Fix doc string. 9194 * solar.el (solar-sunrise, solar-sunset): Fix doc string.
9195 (solar-time-string): Rewritten. 9195 (solar-time-string): Rewritten.
9196 (solar-adj-time-for-dst): New function. 9196 (solar-adj-time-for-dst): New function.
9197 (solar-sunrise-sunset, diary-sabbath-candles, 9197 (solar-sunrise-sunset, diary-sabbath-candles)
9198 solar-equinoxes-solstices): Revised to use the rewritten and new fcns. 9198 (solar-equinoxes-solstices): Revised to use the rewritten and new fcns.
9199 9199
9200 * calendar.el (solar-holidays): Revised to use the rewritten and 9200 * calendar.el (solar-holidays): Revised to use the rewritten and
9201 new fcns. 9201 new fcns.
9202 9202
9203 * lunar.el (lunar-phase): Revised to use the rewritten and new fcns. 9203 * lunar.el (lunar-phase): Revised to use the rewritten and new fcns.
9204 9204
diff --git a/lisp/ChangeLog.6 b/lisp/ChangeLog.6
index 2ba61dc516e..45c832c5e24 100644
--- a/lisp/ChangeLog.6
+++ b/lisp/ChangeLog.6
@@ -3687,7 +3687,7 @@
3687 When changing the environment, avoid need for setenv. 3687 When changing the environment, avoid need for setenv.
3688 3688
36891996-01-05 Karl Eichwalder <ke@ke.Central.DE> 36891996-01-05 Karl Eichwalder <ke@ke.Central.DE>
3690 Karl Fogel <kfogel@floss.red-bean.com> 3690 Karl Fogel <kfogel@floss.red-bean.com>
3691 3691
3692 * bookmark.el: "cyclic.com" addresses changed to "red-bean.com". 3692 * bookmark.el: "cyclic.com" addresses changed to "red-bean.com".
3693 (bookmark-bmenu-mode-map): Don't bind C-k. 3693 (bookmark-bmenu-mode-map): Don't bind C-k.
@@ -5837,7 +5837,7 @@
58371995-10-09 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 58371995-10-09 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
5838 5838
5839 * etags.el (tags-table-check-computed-list): Map 5839 * etags.el (tags-table-check-computed-list): Map
5840 tags-expand-table-name over lists of included tables. 5840 tags-expand-table-name over lists of included tables.
5841 5841
58421995-10-09 Erik Naggum <erik@naggum.no> 58421995-10-09 Erik Naggum <erik@naggum.no>
5843 5843
diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7
index 6858c07d852..de40b71f080 100644
--- a/lisp/ChangeLog.7
+++ b/lisp/ChangeLog.7
@@ -2749,7 +2749,7 @@
2749 * abbrev.el: Likewise. 2749 * abbrev.el: Likewise.
2750 2750
27511998-05-26 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE> 27511998-05-26 Emilio Lopes <Emilio.Lopes@Physik.TU-Muenchen.DE>
2752 Karl Fogel <kfogel@red-bean.com> 2752 Karl Fogel <kfogel@red-bean.com>
2753 2753
2754 * bookmark.el: Changes so bookmark list mode works with Info: 2754 * bookmark.el: Changes so bookmark list mode works with Info:
2755 (bookmark-jump-noselect): Use an inner save-window-excursion. 2755 (bookmark-jump-noselect): Use an inner save-window-excursion.
diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9
index 135eb8edbb3..d008640cbe3 100644
--- a/lisp/ChangeLog.9
+++ b/lisp/ChangeLog.9
@@ -2739,8 +2739,8 @@
2739 2739
27402001-06-27 Francesco Potortì <pot@gnu.org> 27402001-06-27 Francesco Potortì <pot@gnu.org>
2741 2741
2742 * uniquify.el: (uniquify-rationalize-file-buffer-names): 2742 * uniquify.el (uniquify-rationalize-file-buffer-names):
2743 Undo previous change. 2743 Undo previous change.
2744 2744
27452001-06-27 Francesco Potortì <pot@gnu.org> 27452001-06-27 Francesco Potortì <pot@gnu.org>
2746 2746
@@ -12205,7 +12205,7 @@
12205 12205
122062000-09-05 Stefan Monnier <monnier@cs.yale.edu> 122062000-09-05 Stefan Monnier <monnier@cs.yale.edu>
12207 12207
12208 * vc.el: (toplevel): Don't require `dired' at run-time. 12208 * vc.el (toplevel): Don't require `dired' at run-time.
12209 (vc-dired-resynch-file): Remove autoload cookie. 12209 (vc-dired-resynch-file): Remove autoload cookie.
12210 12210
122112000-09-05 Andre Spiegel <spiegel@gnu.org> 122112000-09-05 Andre Spiegel <spiegel@gnu.org>
@@ -12998,7 +12998,7 @@
12998 `vc-locking-user' semantics. 12998 `vc-locking-user' semantics.
12999 (vc-backend-merge): Remove. 12999 (vc-backend-merge): Remove.
13000 13000
13001 * vc-rcs.el, vc-scc.el: (vc-{sc,r}cs-check{in,out}): Update 'vc-state 13001 * vc-rcs.el, vc-scc.el (vc-{sc,r}cs-check{in,out}): Update 'vc-state
13002 rather than 'vc-locking-user. 13002 rather than 'vc-locking-user.
13003 13003
13004 * vc-rcs-hooks.el (vc-rcs-consult-headers): Adapt to new `vc-state'. 13004 * vc-rcs-hooks.el (vc-rcs-consult-headers): Adapt to new `vc-state'.
@@ -15318,8 +15318,8 @@
15318 leading comma nicely. Extended to handle member initializers 15318 leading comma nicely. Extended to handle member initializers
15319 too. 15319 too.
15320 15320
15321 * cc-engine.el: (c-beginning-of-inheritance-list, 15321 * cc-engine.el (c-beginning-of-inheritance-list)
15322 c-guess-basic-syntax): Fixed recognition of inheritance lists 15322 (c-guess-basic-syntax): Fixed recognition of inheritance lists
15323 when the lines begins with a comma. 15323 when the lines begins with a comma.
15324 15324
15325 * cc-vars.el (c-offsets-alist): Changed default for 15325 * cc-vars.el (c-offsets-alist): Changed default for
@@ -19574,7 +19574,7 @@
19574 (backward-kill-word): Revert addition of * to interactive spec -- 19574 (backward-kill-word): Revert addition of * to interactive spec --
19575 it's a feature. 19575 it's a feature.
19576 19576
19577 * paragraphs.el: (kill-paragraph, backward-kill-paragraph) 19577 * paragraphs.el (kill-paragraph, backward-kill-paragraph)
19578 (backward-kill-sentence, kill-sentence): Likewise. 19578 (backward-kill-sentence, kill-sentence): Likewise.
19579 19579
19580 * gud.el (gud-jdb-build-class-source-alist): Prepend space to 19580 * gud.el (gud-jdb-build-class-source-alist): Prepend space to
@@ -19918,7 +19918,7 @@
19918 19918
199192000-02-10 Dave Love <fx@gnu.org> 199192000-02-10 Dave Love <fx@gnu.org>
19920 19920
19921 * wid-edit.el: (widgets) [defgroup]: Remove url link. 19921 * wid-edit.el (widgets) [defgroup]: Remove url link.
19922 (widget-color-choice-list, widget-color-history, widget-mouse-help): 19922 (widget-color-choice-list, widget-color-history, widget-mouse-help):
19923 Deleted. 19923 Deleted.
19924 (widget-specify-field, widget-specify-button): Don't use 19924 (widget-specify-field, widget-specify-button): Don't use
diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el
index c209a2a6eb9..4e29c51fa75 100644
--- a/lisp/dirtrack.el
+++ b/lisp/dirtrack.el
@@ -143,13 +143,6 @@ be on a single line."
143 :group 'dirtrack 143 :group 'dirtrack
144 :type 'string) 144 :type 'string)
145 145
146(defcustom dirtrackp t
147 "If non-nil, directory tracking via `dirtrack' is enabled."
148 :group 'dirtrack
149 :type 'boolean)
150
151(make-variable-buffer-local 'dirtrackp)
152
153(defcustom dirtrack-directory-function 146(defcustom dirtrack-directory-function
154 (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin)) 147 (if (memq system-type (list 'ms-dos 'windows-nt 'cygwin))
155 'dirtrack-windows-directory-function 148 'dirtrack-windows-directory-function
diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el
index c1c2517bc22..5834afae8bc 100644
--- a/lisp/dos-fns.el
+++ b/lisp/dos-fns.el
@@ -31,7 +31,7 @@
31(declare-function msdos-long-file-names "msdos.c") 31(declare-function msdos-long-file-names "msdos.c")
32 32
33;; This overrides a trivial definition in files.el. 33;; This overrides a trivial definition in files.el.
34(defun convert-standard-filename (filename) 34(defun dos-convert-standard-filename (filename)
35 "Convert a standard file's name to something suitable for the current OS. 35 "Convert a standard file's name to something suitable for the current OS.
36This means to guarantee valid names and perhaps to canonicalize 36This means to guarantee valid names and perhaps to canonicalize
37certain patterns. 37certain patterns.
@@ -48,7 +48,7 @@ shell requires it (see `w32-shell-dos-semantics')."
48 (let ((flen (length filename))) 48 (let ((flen (length filename)))
49 ;; If FILENAME has a trailing slash, remove it and recurse. 49 ;; If FILENAME has a trailing slash, remove it and recurse.
50 (if (memq (aref filename (1- flen)) '(?/ ?\\)) 50 (if (memq (aref filename (1- flen)) '(?/ ?\\))
51 (concat (convert-standard-filename 51 (concat (dos-convert-standard-filename
52 (substring filename 0 (1- flen))) 52 (substring filename 0 (1- flen)))
53 "/") 53 "/")
54 (let* (;; ange-ftp gets in the way for names like "/foo:bar". 54 (let* (;; ange-ftp gets in the way for names like "/foo:bar".
@@ -122,12 +122,17 @@ shell requires it (see `w32-shell-dos-semantics')."
122 (aset string (1- (length string)) lastchar)))) 122 (aset string (1- (length string)) lastchar))))
123 (concat (if (and (stringp dir) 123 (concat (if (and (stringp dir)
124 (memq (aref dir dlen-m-1) '(?/ ?\\))) 124 (memq (aref dir dlen-m-1) '(?/ ?\\)))
125 (concat (convert-standard-filename 125 (concat (dos-convert-standard-filename
126 (substring dir 0 dlen-m-1)) 126 (substring dir 0 dlen-m-1))
127 "/") 127 "/")
128 (convert-standard-filename dir)) 128 (dos-convert-standard-filename dir))
129 string)))))) 129 string))))))
130 130
131;; Only redirect convert-standard-filename if it has a chance of working,
132;; otherwise loading dos-fns.el might make your non-DOS Emacs misbehave.
133(when (fboundp 'msdos-long-file-names)
134 (defalias 'convert-standard-filename 'dos-convert-standard-filename))
135
131(defun dos-8+3-filename (filename) 136(defun dos-8+3-filename (filename)
132 "Truncate FILENAME to DOS 8+3 limits." 137 "Truncate FILENAME to DOS 8+3 limits."
133 (if (or (not (stringp filename)) 138 (if (or (not (stringp filename))
@@ -188,12 +193,12 @@ shell requires it (see `w32-shell-dos-semantics')."
188 193
189;; This is for the sake of standard file names elsewhere in Emacs that 194;; This is for the sake of standard file names elsewhere in Emacs that
190;; are defined as constant strings or via defconst, and whose 195;; are defined as constant strings or via defconst, and whose
191;; conversion via `convert-standard-filename' does not give good 196;; conversion via `dos-convert-standard-filename' does not give good
192;; enough results. 197;; enough results.
193(defun dosified-file-name (file-name) 198(defun dosified-file-name (file-name)
194 "Return a variant of FILE-NAME that is valid on MS-DOS filesystems. 199 "Return a variant of FILE-NAME that is valid on MS-DOS filesystems.
195 200
196This function is for those rare cases where `convert-standard-filename' 201This function is for those rare cases where `dos-convert-standard-filename'
197does not do a job that is good enough, e.g. if you need to preserve the 202does not do a job that is good enough, e.g. if you need to preserve the
198file-name extension. It recognizes only certain specific file names 203file-name extension. It recognizes only certain specific file names
199that are used in Emacs Lisp sources; any other file name will be 204that are used in Emacs Lisp sources; any other file name will be
@@ -209,13 +214,13 @@ returned unaltered."
209(defvar msdos-shells) 214(defvar msdos-shells)
210 215
211;; Override settings chosen at startup. 216;; Override settings chosen at startup.
212(defun set-default-process-coding-system () 217(defun dos-set-default-process-coding-system ()
213 (setq default-process-coding-system 218 (setq default-process-coding-system
214 (if (default-value 'enable-multibyte-characters) 219 (if (default-value 'enable-multibyte-characters)
215 '(undecided-dos . undecided-dos) 220 '(undecided-dos . undecided-dos)
216 '(raw-text-dos . raw-text-dos)))) 221 '(raw-text-dos . raw-text-dos))))
217 222
218(add-hook 'before-init-hook 'set-default-process-coding-system) 223(add-hook 'before-init-hook 'dos-set-default-process-coding-system)
219 224
220;; File names defined in preloaded packages can be incorrect or 225;; File names defined in preloaded packages can be incorrect or
221;; invalid if long file names were available during dumping, but not 226;; invalid if long file names were available during dumping, but not
@@ -232,17 +237,17 @@ returned unaltered."
232 237
233(add-hook 'before-init-hook 'dos-reevaluate-defcustoms) 238(add-hook 'before-init-hook 'dos-reevaluate-defcustoms)
234 239
235(defvar register-name-alist 240(defvar dos-register-name-alist
236 '((ax . 0) (bx . 1) (cx . 2) (dx . 3) (si . 4) (di . 5) 241 '((ax . 0) (bx . 1) (cx . 2) (dx . 3) (si . 4) (di . 5)
237 (cflag . 6) (flags . 7) 242 (cflag . 6) (flags . 7)
238 (al . (0 . 0)) (bl . (1 . 0)) (cl . (2 . 0)) (dl . (3 . 0)) 243 (al . (0 . 0)) (bl . (1 . 0)) (cl . (2 . 0)) (dl . (3 . 0))
239 (ah . (0 . 1)) (bh . (1 . 1)) (ch . (2 . 1)) (dh . (3 . 1)))) 244 (ah . (0 . 1)) (bh . (1 . 1)) (ch . (2 . 1)) (dh . (3 . 1))))
240 245
241(defun make-register () 246(defun dos-make-register ()
242 (make-vector 8 0)) 247 (make-vector 8 0))
243 248
244(defun register-value (regs name) 249(defun dos-register-value (regs name)
245 (let ((where (cdr (assoc name register-name-alist)))) 250 (let ((where (cdr (assoc name dos-register-name-alist))))
246 (cond ((consp where) 251 (cond ((consp where)
247 (let ((tem (aref regs (car where)))) 252 (let ((tem (aref regs (car where))))
248 (if (zerop (cdr where)) 253 (if (zerop (cdr where))
@@ -252,10 +257,10 @@ returned unaltered."
252 (aref regs where)) 257 (aref regs where))
253 (t nil)))) 258 (t nil))))
254 259
255(defun set-register-value (regs name value) 260(defun dos-set-register-value (regs name value)
256 (and (numberp value) 261 (and (numberp value)
257 (>= value 0) 262 (>= value 0)
258 (let ((where (cdr (assoc name register-name-alist)))) 263 (let ((where (cdr (assoc name dos-register-name-alist))))
259 (cond ((consp where) 264 (cond ((consp where)
260 (let ((tem (aref regs (car where))) 265 (let ((tem (aref regs (car where)))
261 (value (logand value 255))) 266 (value (logand value 255)))
@@ -268,18 +273,18 @@ returned unaltered."
268 (aset regs where (logand value 65535)))))) 273 (aset regs where (logand value 65535))))))
269 regs) 274 regs)
270 275
271(defsubst intdos (regs) 276(defsubst dos-intdos (regs)
272 (int86 33 regs)) 277 (int86 33 regs))
273 278
274;; Backward compatibility for obsolescent functions which 279;; Backward compatibility for obsolescent functions which
275;; set screen size. 280;; set screen size.
276 281
277(defun mode25 () 282(defun dos-mode25 ()
278 "Changes the number of screen rows to 25." 283 "Changes the number of screen rows to 25."
279 (interactive) 284 (interactive)
280 (set-frame-size (selected-frame) 80 25)) 285 (set-frame-size (selected-frame) 80 25))
281 286
282(defun mode4350 () 287(defun dos-mode4350 ()
283 "Changes the number of rows to 43 or 50. 288 "Changes the number of rows to 43 or 50.
284Emacs always tries to set the screen height to 50 rows first. 289Emacs always tries to set the screen height to 50 rows first.
285If this fails, it will try to set it to 43 rows, on the assumption 290If this fails, it will try to set it to 43 rows, on the assumption
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index d8b36adf730..3e434b36213 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -780,6 +780,10 @@ Repeating prefix key when region is active works as a single prefix key."
780 (setq mark-active nil) 780 (setq mark-active nil)
781 (run-hooks 'deactivate-mark-hook))) 781 (run-hooks 'deactivate-mark-hook)))
782 782
783(defun cua--filter-buffer-noprops (start end)
784 (let ((str (filter-buffer-substring start end)))
785 (set-text-properties 0 (length str) nil str)
786 str))
783 787
784;; The current register prefix 788;; The current register prefix
785(defvar cua--register nil) 789(defvar cua--register nil)
@@ -1039,10 +1043,7 @@ of text."
1039 (setq s (car u)) 1043 (setq s (car u))
1040 (setq s (car u) e (cdr u))))))) 1044 (setq s (car u) e (cdr u)))))))
1041 (cond ((and s e (<= s e) (= s (mark t))) 1045 (cond ((and s e (<= s e) (= s (mark t)))
1042 (setq cua--repeat-replace-text 1046 (setq cua--repeat-replace-text (cua--filter-buffer-noprops s e)))
1043 (filter-buffer-substring s e))
1044 (set-text-properties 0 (length cua--repeat-replace-text)
1045 nil cua--repeat-replace-text))
1046 ((and (null s) (eq u elt)) ;; nothing inserted 1047 ((and (null s) (eq u elt)) ;; nothing inserted
1047 (setq cua--repeat-replace-text 1048 (setq cua--repeat-replace-text
1048 "")) 1049 ""))
diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el
index 6c69800d73c..b67d09c04cf 100644
--- a/lisp/emulation/cua-gmrk.el
+++ b/lisp/emulation/cua-gmrk.el
@@ -137,9 +137,8 @@ With prefix argument, don't jump to global mark when cancelling it."
137 (let ((src-buf (current-buffer))) 137 (let ((src-buf (current-buffer)))
138 (save-excursion 138 (save-excursion
139 (if (equal (marker-buffer cua--global-mark-marker) src-buf) 139 (if (equal (marker-buffer cua--global-mark-marker) src-buf)
140 (let ((text (filter-buffer-substring start end))) 140 (let ((text (cua--filter-buffer-noprops start end)))
141 (goto-char (marker-position cua--global-mark-marker)) 141 (goto-char (marker-position cua--global-mark-marker))
142 (set-text-properties 0 (length text) text)
143 (insert text)) 142 (insert text))
144 (set-buffer (marker-buffer cua--global-mark-marker)) 143 (set-buffer (marker-buffer cua--global-mark-marker))
145 (goto-char (marker-position cua--global-mark-marker)) 144 (goto-char (marker-position cua--global-mark-marker))
@@ -162,11 +161,10 @@ With prefix argument, don't jump to global mark when cancelling it."
162 (if (and (< start (marker-position cua--global-mark-marker)) 161 (if (and (< start (marker-position cua--global-mark-marker))
163 (< (marker-position cua--global-mark-marker) end)) 162 (< (marker-position cua--global-mark-marker) end))
164 (message "Can't move region into itself") 163 (message "Can't move region into itself")
165 (let ((text (filter-buffer-substring start end)) 164 (let ((text (cua--filter-buffer-noprops start end))
166 (p1 (copy-marker start)) 165 (p1 (copy-marker start))
167 (p2 (copy-marker end))) 166 (p2 (copy-marker end)))
168 (goto-char (marker-position cua--global-mark-marker)) 167 (goto-char (marker-position cua--global-mark-marker))
169 (set-text-properties 0 (length text) text)
170 (insert text) 168 (insert text)
171 (cua--activate-global-mark) 169 (cua--activate-global-mark)
172 (delete-region (marker-position p1) (marker-position p2)) 170 (delete-region (marker-position p1) (marker-position p2))
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index 4ac8ce58b3e..2b41f6435ee 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -625,7 +625,7 @@ If command is repeated at same position, delete the rectangle."
625 (if (not (cua--rectangle-virtual-edges)) 625 (if (not (cua--rectangle-virtual-edges))
626 (cua--rectangle-operation nil nil nil nil nil ; do not tabify 626 (cua--rectangle-operation nil nil nil nil nil ; do not tabify
627 '(lambda (s e l r) 627 '(lambda (s e l r)
628 (setq rect (cons (filter-buffer-substring s e nil t) rect)))) 628 (setq rect (cons (cua--filter-buffer-noprops s e) rect))))
629 (cua--rectangle-operation nil 1 nil nil nil ; do not tabify 629 (cua--rectangle-operation nil 1 nil nil nil ; do not tabify
630 '(lambda (s e l r v) 630 '(lambda (s e l r v)
631 (let ((copy t) (bs 0) (as 0) row) 631 (let ((copy t) (bs 0) (as 0) row)
@@ -643,7 +643,7 @@ If command is repeated at same position, delete the rectangle."
643 (setq as (- r (max (current-column) l)) 643 (setq as (- r (max (current-column) l))
644 e (point))) 644 e (point)))
645 (setq row (if (and copy (> e s)) 645 (setq row (if (and copy (> e s))
646 (filter-buffer-substring s e nil t) 646 (cua--filter-buffer-noprops s e)
647 "")) 647 ""))
648 (when (> bs 0) 648 (when (> bs 0)
649 (setq row (concat (make-string bs ?\s) row))) 649 (setq row (concat (make-string bs ?\s) row)))
@@ -1124,12 +1124,12 @@ The length of STRING need not be the same as the rectangle width."
1124 '(lambda (s e l r) 1124 '(lambda (s e l r)
1125 (cond 1125 (cond
1126 ((re-search-forward "0x\\([0-9a-fA-F]+\\)" e t) 1126 ((re-search-forward "0x\\([0-9a-fA-F]+\\)" e t)
1127 (let* ((txt (filter-buffer-substring (match-beginning 1) (match-end 1) nil t)) 1127 (let* ((txt (cua--filter-buffer-noprops (match-beginning 1) (match-end 1)))
1128 (n (string-to-number txt 16)) 1128 (n (string-to-number txt 16))
1129 (fmt (format "0x%%0%dx" (length txt)))) 1129 (fmt (format "0x%%0%dx" (length txt))))
1130 (replace-match (format fmt (+ n increment))))) 1130 (replace-match (format fmt (+ n increment)))))
1131 ((re-search-forward "\\( *-?[0-9]+\\)" e t) 1131 ((re-search-forward "\\( *-?[0-9]+\\)" e t)
1132 (let* ((txt (filter-buffer-substring (match-beginning 1) (match-end 1) nil t)) 1132 (let* ((txt (cua--filter-buffer-noprops (match-beginning 1) (match-end 1)))
1133 (prefix (if (= (aref txt 0) ?0) "0" "")) 1133 (prefix (if (= (aref txt 0) ?0) "0" ""))
1134 (n (string-to-number txt 10)) 1134 (n (string-to-number txt 10))
1135 (fmt (format "%%%s%dd" prefix (length txt)))) 1135 (fmt (format "%%%s%dd" prefix (length txt))))
diff --git a/lisp/erc/ChangeLog.03 b/lisp/erc/ChangeLog.03
index d378cf36d42..6f46837ad19 100644
--- a/lisp/erc/ChangeLog.03
+++ b/lisp/erc/ChangeLog.03
@@ -145,7 +145,7 @@
145 to delete-if-not. 145 to delete-if-not.
146 146
147 * erc.el(erc-update-current-channel-member): 147 * erc.el(erc-update-current-channel-member):
148 Use erc-downcase when comparing 148 Use erc-downcase when comparing
149 nick entries. Cleanup indentation. 149 nick entries. Cleanup indentation.
150 150
1512003-11-01 Lawrence Mitchell <wence@gmx.li> 1512003-11-01 Lawrence Mitchell <wence@gmx.li>
@@ -171,7 +171,7 @@
1712003-10-24 Mario Lang <mlang@delysid.org> 1712003-10-24 Mario Lang <mlang@delysid.org>
172 172
173 * erc-dcc.el: From Stephan Stahl <stl@isogmbh.de>: 173 * erc-dcc.el: From Stephan Stahl <stl@isogmbh.de>:
174 * (erc-dcc-send-block): Kill buffer if transfer completed correctly. 174 (erc-dcc-send-block): Kill buffer if transfer completed correctly.
175 175
1762003-10-22 Mario Lang <mlang@delysid.org> 1762003-10-22 Mario Lang <mlang@delysid.org>
177 177
diff --git a/lisp/erc/ChangeLog.04 b/lisp/erc/ChangeLog.04
index 16e7788a221..a1cbab740be 100644
--- a/lisp/erc/ChangeLog.04
+++ b/lisp/erc/ChangeLog.04
@@ -72,7 +72,7 @@
722004-12-24 Jorgen Schaefer <forcer@users.sourceforge.net> 722004-12-24 Jorgen Schaefer <forcer@users.sourceforge.net>
73 73
74 * erc-goodies.el, erc.el: The Small Extraction of Stuff[tm] commit. 74 * erc-goodies.el, erc.el: The Small Extraction of Stuff[tm] commit.
75 Moved some functions from erc.el to erc-goodies.el, and 75 Moved some functions from erc.el to erc-goodies.el, and
76 transformed them to erc modules in the process. 76 transformed them to erc modules in the process.
77 - imenu autoload stuff moved. I don't know why it is here at all. 77 - imenu autoload stuff moved. I don't know why it is here at all.
78 - Moved: scroll-to-bottom, make-read-only, distinguish-noncommands, 78 - Moved: scroll-to-bottom, make-read-only, distinguish-noncommands,
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index d78e07037b4..0b7eaf7ed72 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,4 +1,66 @@
12010-05-07 Christian von Roques <roques@mti.ag> (tiny change) 12010-05-13 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt)
4 * mml2015.el (mml2015-gpg-encrypt): Disable multibyte in buffers
5 generated within the mm-with-unibyte-current-buffer macro.
6
72010-05-13 Katsumi Yamaoka <yamaoka@jpl.org>
8
9 * gnus-art.el (gnus-bind-safe-url-regexp): Bind mm-w3m-safe-url-regexp
10 to nil when we're in a mml-preview buffer and no group is selected.
11
122010-05-12 Andreas Seltenreich <seltenreich@gmx.de>
13
14 * gnus-sum.el (gnus-summary-read-group-1): Don't jump to next group
15 when catching the `C-g'. Reported by: "Leo"
16
172010-05-12 Katsumi Yamaoka <yamaoka@jpl.org>
18
19 * message.el (message-forward-make-body-plain)
20 (message-forward-make-body-mml): Use mm-multibyte-string-p instead of
21 multibyte-string-p.
22
232010-05-12 Katsumi Yamaoka <yamaoka@jpl.org>
24
25 * message.el (message-forward-make-body-mml): Assume original message
26 is multibyte string; error on unibyte.
27 (message-forward-make-body-plain): Ditto; don't add excessive newline
28 in body end.
29
302010-05-11 Andreas Seltenreich <seltenreich@gmx.de>
31
32 * gnus-sum.el (gnus-summary-kill-thread): Use gnus-summary-mark-article
33 instead of g-s-m-a-as-unread to set the expirable mark. (Bug#5284)
34
352010-05-11 Katsumi Yamaoka <yamaoka@jpl.org>
36
37 * mm-extern.el (mm-extern-url): Don't use
38 mm-with-unibyte-current-buffer.
39 (mm-extern-cache-contents): Use with-current-buffer instead of
40 save-excursion + set-buffer.
41
422010-05-10 Katsumi Yamaoka <yamaoka@jpl.org>
43
44 * mm-util.el (mm-emacs-mule): Remove.
45
462010-05-10 Andreas Seltenreich <seltenreich@gmx.de>
47
48 * gnus-sum.el (gnus-summary-mode): Don't make minor-mode-alist
49 buffer-local as it's incompatible with Stefan Monnier's 2010-05-03
50 change.
51
522010-05-10 Katsumi Yamaoka <yamaoka@jpl.org>
53
54 * mm-util.el (mm-with-unibyte-current-buffer): Redefine it so as not to
55 bind the default value of enable-multibyte-characters to nil.
56
572010-05-10 Katsumi Yamaoka <yamaoka@jpl.org>
58
59 * message.el (message-forward-make-body-plain)
60 (message-forward-make-body-mml):
61 Don't use mm-with-unibyte-current-buffer.
62
632010-05-07 Christian von Roques <roques@mti.ag> (tiny change)
2 64
3 * mml2015.el (mml2015-epg-find-usable-key): Skip disabled key 65 * mml2015.el (mml2015-epg-find-usable-key): Skip disabled key
4 (Bug#5592). 66 (Bug#5592).
diff --git a/lisp/gnus/ChangeLog.1 b/lisp/gnus/ChangeLog.1
index e455770711b..795df6f95a7 100644
--- a/lisp/gnus/ChangeLog.1
+++ b/lisp/gnus/ChangeLog.1
@@ -28,10 +28,10 @@
28 28
29 * gnus-start.el (gnus-slave-save-newsrc): 29 * gnus-start.el (gnus-slave-save-newsrc):
30 * gnus-uu.el (gnus-uu-tmp-dir, gnus-uu-decode-binhex) 30 * gnus-uu.el (gnus-uu-tmp-dir, gnus-uu-decode-binhex)
31 (gnus-uu-decode-binhex-view, gnus-uu-digest-mail-forward) 31 (gnus-uu-decode-binhex-view, gnus-uu-digest-mail-forward)
32 (gnus-uu-initialize): 32 (gnus-uu-initialize):
33 * nnmail.el (nnmail-make-complex-temp-name, nnmail-get-new-mail): 33 * nnmail.el (nnmail-make-complex-temp-name, nnmail-get-new-mail):
34 Use make-temp-file. 34 Use make-temp-file.
35 35
361999-09-07 Eli Zaretskii <eliz@gnu.org> 361999-09-07 Eli Zaretskii <eliz@gnu.org>
37 37
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2
index cd7f3b56aad..b05ff5fc8ef 100644
--- a/lisp/gnus/ChangeLog.2
+++ b/lisp/gnus/ChangeLog.2
@@ -4905,8 +4905,8 @@
49052003-02-08 Michael Welsh Duggan <md5i@cs.cmu.edu> 49052003-02-08 Michael Welsh Duggan <md5i@cs.cmu.edu>
4906 4906
4907 * nnmail.el (nnmail-split-it): If a message ends up matching the 4907 * nnmail.el (nnmail-split-it): If a message ends up matching the
4908 same mailbox more than once, it will cause duplicates to appear 4908 same mailbox more than once, it will cause duplicates to appear
4909 in the mailbox. 4909 in the mailbox.
4910 4910
49112003-02-08 Simon Josefsson <jas@extundo.com> 49112003-02-08 Simon Josefsson <jas@extundo.com>
4912 4912
@@ -5553,8 +5553,8 @@
55532003-01-13 Jhair Tocancipa Triana <jhair_tocancipa@@gmx.net> 55532003-01-13 Jhair Tocancipa Triana <jhair_tocancipa@@gmx.net>
5554 5554
5555 * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use 5555 * gnus-audio.el (gnus-audio-au-player, gnus-audio-wav-player): Use
5556 /usr/bin/play as default player. 5556 /usr/bin/play as default player.
5557 (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play. 5557 (gnus-audio-play): Added ARG-DESCRIPTOR to prompt for a file to play.
5558 5558
55592003-01-14 Katsumi Yamaoka <yamaoka@jpl.org> 55592003-01-14 Katsumi Yamaoka <yamaoka@jpl.org>
5560 5560
@@ -9034,7 +9034,7 @@
9034 boolean not a string 9034 boolean not a string
9035 * gnus-group.el (gnus-group-line-format): Add description of %C 9035 * gnus-group.el (gnus-group-line-format): Add description of %C
9036 * gnus-group.el (gnus-group-line-format-alist): Add gnus-tmp-comment 9036 * gnus-group.el (gnus-group-line-format-alist): Add gnus-tmp-comment
9037 as %C 9037 as %C
9038 * gnus-group.el (gnus-group-insert-group-line): Add gnus-tmp-comment. 9038 * gnus-group.el (gnus-group-insert-group-line): Add gnus-tmp-comment.
9039 9039
90402002-04-22 Paul Jarc <prj@po.cwru.edu> 90402002-04-22 Paul Jarc <prj@po.cwru.edu>
@@ -11326,7 +11326,7 @@
113262002-01-02 ShengHuo ZHU <zsh@cs.rochester.edu> 113262002-01-02 ShengHuo ZHU <zsh@cs.rochester.edu>
11327 11327
11328 * gnus-picon.el (gnus-picon-transform-newsgroups): Fix for the case 11328 * gnus-picon.el (gnus-picon-transform-newsgroups): Fix for the case
11329 "Newsgroups: rec.music.beatles.moderated, rec.music.beatles". 11329 "Newsgroups: rec.music.beatles.moderated, rec.music.beatles".
11330 11330
113312002-01-03 Steve Youngs <youngs@xemacs.org> 113312002-01-03 Steve Youngs <youngs@xemacs.org>
11332 11332
@@ -12256,7 +12256,7 @@
12256 (imap-stream-alist): Backslash. 12256 (imap-stream-alist): Backslash.
12257 12257
12258 * gnus-sum.el (gnus-summary-limit-to-author): Missing arguments. 12258 * gnus-sum.el (gnus-summary-limit-to-author): Missing arguments.
12259 Thanks to david.goldberg6@verizon.net (David S. Goldberg). 12259 Thanks to david.goldberg6@verizon.net (David S. Goldberg).
12260 12260
122612001-11-27 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> 122612001-11-27 14:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
12262 12262
@@ -12755,7 +12755,7 @@
127552001-10-30 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu> 127552001-10-30 13:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
12756 12756
12757 * gnus-spec.el (gnus-parse-simple-format): Use 12757 * gnus-spec.el (gnus-parse-simple-format): Use
12758 buffer-substring-no-properties. 12758 buffer-substring-no-properties.
12759 12759
127602001-10-30 Katsumi Yamaoka <yamaoka@jpl.org> 127602001-10-30 Katsumi Yamaoka <yamaoka@jpl.org>
12761 12761
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 5f899b3067a..0659ee893de 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4822,7 +4822,11 @@ General format specifiers can also be used. See Info node
4822 (with-current-buffer gnus-article-current-summary 4822 (with-current-buffer gnus-article-current-summary
4823 gnus-newsgroup-name) 4823 gnus-newsgroup-name)
4824 gnus-newsgroup-name))) 4824 gnus-newsgroup-name)))
4825 (if (cond ((stringp gnus-safe-html-newsgroups) 4825 (if (cond ((not group)
4826 ;; Maybe we're in a mml-preview buffer
4827 ;; and no group is selected.
4828 t)
4829 ((stringp gnus-safe-html-newsgroups)
4826 (string-match gnus-safe-html-newsgroups group)) 4830 (string-match gnus-safe-html-newsgroups group))
4827 ((consp gnus-safe-html-newsgroups) 4831 ((consp gnus-safe-html-newsgroups)
4828 (member group gnus-safe-html-newsgroups))) 4832 (member group gnus-safe-html-newsgroups)))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 480c546ca6e..3a2c944ed2f 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -3056,7 +3056,6 @@ The following commands are available:
3056 (gnus-simplify-mode-line) 3056 (gnus-simplify-mode-line)
3057 (setq major-mode 'gnus-summary-mode) 3057 (setq major-mode 'gnus-summary-mode)
3058 (setq mode-name "Summary") 3058 (setq mode-name "Summary")
3059 (make-local-variable 'minor-mode-alist)
3060 (use-local-map gnus-summary-mode-map) 3059 (use-local-map gnus-summary-mode-map)
3061 (buffer-disable-undo) 3060 (buffer-disable-undo)
3062 (setq buffer-read-only t ;Disable modification 3061 (setq buffer-read-only t ;Disable modification
@@ -3932,7 +3931,6 @@ If NO-DISPLAY, don't generate a summary buffer."
3932 (progn 3931 (progn
3933 (set-buffer gnus-group-buffer) 3932 (set-buffer gnus-group-buffer)
3934 (gnus-group-jump-to-group group) 3933 (gnus-group-jump-to-group group)
3935 (gnus-group-next-unread-group 1)
3936 (gnus-configure-windows 'group 'force)) 3934 (gnus-configure-windows 'group 'force))
3937 (gnus-handle-ephemeral-exit quit-config)) 3935 (gnus-handle-ephemeral-exit quit-config))
3938 ;; Finally signal the quit. 3936 ;; Finally signal the quit.
@@ -11509,7 +11507,7 @@ If the prefix argument is negative, tick articles instead."
11509 ((> unmark 0) 11507 ((> unmark 0)
11510 (gnus-summary-mark-article-as-unread gnus-unread-mark)) 11508 (gnus-summary-mark-article-as-unread gnus-unread-mark))
11511 ((= unmark 0) 11509 ((= unmark 0)
11512 (gnus-summary-mark-article-as-unread gnus-expirable-mark)) 11510 (gnus-summary-mark-article nil gnus-expirable-mark))
11513 (t 11511 (t
11514 (gnus-summary-mark-article-as-unread gnus-ticked-mark))) 11512 (gnus-summary-mark-article-as-unread gnus-ticked-mark)))
11515 (setq articles (cdr articles)))) 11513 (setq articles (cdr articles))))
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 79a88cd6bd3..947b1bd53e8 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -7161,22 +7161,28 @@ Optional DIGEST will use digest to forward."
7161(defun message-forward-make-body-plain (forward-buffer) 7161(defun message-forward-make-body-plain (forward-buffer)
7162 (insert 7162 (insert
7163 "\n-------------------- Start of forwarded message --------------------\n") 7163 "\n-------------------- Start of forwarded message --------------------\n")
7164 (let ((b (point)) e) 7164 (let ((b (point))
7165 (insert 7165 (contents (with-current-buffer forward-buffer (buffer-string)))
7166 (with-temp-buffer 7166 e)
7167 (mm-disable-multibyte) 7167 (unless (featurep 'xemacs)
7168 (insert 7168 (unless (mm-multibyte-string-p contents)
7169 (with-current-buffer forward-buffer 7169 (error "Attempt to insert unibyte string from the buffer \"%s\"\
7170 (mm-with-unibyte-current-buffer (buffer-string)))) 7170 to the multibyte buffer \"%s\""
7171 (mm-enable-multibyte) 7171 (if (bufferp forward-buffer)
7172 (mime-to-mml) 7172 (buffer-name forward-buffer)
7173 (goto-char (point-min)) 7173 forward-buffer)
7174 (when (looking-at "From ") 7174 (buffer-name))))
7175 (replace-match "X-From-Line: ")) 7175 (insert (mm-with-multibyte-buffer
7176 (buffer-string))) 7176 (insert contents)
7177 (mime-to-mml)
7178 (goto-char (point-min))
7179 (when (looking-at "From ")
7180 (replace-match "X-From-Line: "))
7181 (buffer-string)))
7182 (unless (bolp) (insert "\n"))
7177 (setq e (point)) 7183 (setq e (point))
7178 (insert 7184 (insert
7179 "\n-------------------- End of forwarded message --------------------\n") 7185 "-------------------- End of forwarded message --------------------\n")
7180 (message-remove-ignored-headers b e))) 7186 (message-remove-ignored-headers b e)))
7181 7187
7182(defun message-remove-ignored-headers (b e) 7188(defun message-remove-ignored-headers (b e)
@@ -7212,18 +7218,22 @@ Optional DIGEST will use digest to forward."
7212 (insert "\n\n<#mml type=message/rfc822 disposition=inline>\n") 7218 (insert "\n\n<#mml type=message/rfc822 disposition=inline>\n")
7213 (let ((b (point)) e) 7219 (let ((b (point)) e)
7214 (if (not message-forward-decoded-p) 7220 (if (not message-forward-decoded-p)
7215 (insert 7221 (let ((contents (with-current-buffer forward-buffer (buffer-string))))
7216 (with-temp-buffer 7222 (unless (featurep 'xemacs)
7217 (mm-disable-multibyte) 7223 (unless (mm-multibyte-string-p contents)
7218 (insert 7224 (error "Attempt to insert unibyte string from the buffer \"%s\"\
7219 (with-current-buffer forward-buffer 7225 to the multibyte buffer \"%s\""
7220 (mm-with-unibyte-current-buffer (buffer-string)))) 7226 (if (bufferp forward-buffer)
7221 (mm-enable-multibyte) 7227 (buffer-name forward-buffer)
7222 (mime-to-mml) 7228 forward-buffer)
7223 (goto-char (point-min)) 7229 (buffer-name))))
7224 (when (looking-at "From ") 7230 (insert (mm-with-multibyte-buffer
7225 (replace-match "X-From-Line: ")) 7231 (insert contents)
7226 (buffer-string))) 7232 (mime-to-mml)
7233 (goto-char (point-min))
7234 (when (looking-at "From ")
7235 (replace-match "X-From-Line: "))
7236 (buffer-string))))
7227 (save-restriction 7237 (save-restriction
7228 (narrow-to-region (point) (point)) 7238 (narrow-to-region (point) (point))
7229 (mml-insert-buffer forward-buffer) 7239 (mml-insert-buffer forward-buffer)
diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el
index 1e3df3c4cff..f40f798789c 100644
--- a/lisp/gnus/mm-extern.el
+++ b/lisp/gnus/mm-extern.el
@@ -67,9 +67,8 @@
67 (coding-system-for-read mm-binary-coding-system)) 67 (coding-system-for-read mm-binary-coding-system))
68 (unless url 68 (unless url
69 (error "URL is not specified")) 69 (error "URL is not specified"))
70 (mm-with-unibyte-current-buffer
71 (mm-url-insert-file-contents url))
72 (mm-disable-multibyte) 70 (mm-disable-multibyte)
71 (mm-url-insert-file-contents url)
73 (setq buffer-file-name name))) 72 (setq buffer-file-name name)))
74 73
75(defun mm-extern-anon-ftp (handle) 74(defun mm-extern-anon-ftp (handle)
@@ -125,7 +124,7 @@
125 (or access-type 124 (or access-type
126 (error "Couldn't find access type")))) 125 (error "Couldn't find access type"))))
127 mm-extern-function-alist))) 126 mm-extern-function-alist)))
128 buf handles) 127 handles)
129 (unless func 128 (unless func
130 (error "Access type (%s) is not supported" access-type)) 129 (error "Access type (%s) is not supported" access-type))
131 (mm-with-part handle 130 (mm-with-part handle
@@ -136,8 +135,7 @@
136 (unless (bufferp (car handles)) 135 (unless (bufferp (car handles))
137 (mm-destroy-parts handles) 136 (mm-destroy-parts handles)
138 (error "Multipart external body is not supported")) 137 (error "Multipart external body is not supported"))
139 (save-excursion 138 (with-current-buffer (mm-handle-buffer handles)
140 (set-buffer (setq buf (mm-handle-buffer handles)))
141 (let (good) 139 (let (good)
142 (unwind-protect 140 (unwind-protect
143 (progn 141 (progn
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index a288b8b1b6d..f657000205e 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -902,12 +902,6 @@ mail with multiple parts is preferred to sending a Unicode one.")
902 out))) 902 out)))
903 903
904(eval-and-compile 904(eval-and-compile
905 (defvar mm-emacs-mule (and (not (featurep 'xemacs))
906 (boundp 'enable-multibyte-characters)
907 (default-value 'enable-multibyte-characters)
908 (fboundp 'set-buffer-multibyte))
909 "True in Emacs with Mule.")
910
911 (if (featurep 'xemacs) 905 (if (featurep 'xemacs)
912 (defalias 'mm-enable-multibyte 'ignore) 906 (defalias 'mm-enable-multibyte 'ignore)
913 (defun mm-enable-multibyte () 907 (defun mm-enable-multibyte ()
@@ -1230,33 +1224,23 @@ Use multibyte mode for this."
1230 1224
1231(defmacro mm-with-unibyte-current-buffer (&rest forms) 1225(defmacro mm-with-unibyte-current-buffer (&rest forms)
1232 "Evaluate FORMS with current buffer temporarily made unibyte. 1226 "Evaluate FORMS with current buffer temporarily made unibyte.
1233Also bind the default-value of `enable-multibyte-characters' to nil. 1227Equivalent to `progn' in XEmacs.
1234Equivalent to `progn' in XEmacs 1228
1235 1229Note: We recommend not using this macro any more; there should be
1236NOTE: Use this macro with caution in multibyte buffers (it is not 1230better ways to do a similar thing. The previous version of this macro
1237worth using this macro in unibyte buffers of course). Use of 1231bound the default value of `enable-multibyte-characters' to nil while
1238`(set-buffer-multibyte t)', which is run finally, is generally 1232evaluating FORMS but it is no longer done. So, some programs assuming
1239harmful since it is likely to modify existing data in the buffer. 1233it if any may malfunction."
1240For instance, it converts \"\\300\\255\" into \"\\255\" in
1241Emacs 23 (unicode)."
1242 (if (featurep 'xemacs) 1234 (if (featurep 'xemacs)
1243 `(progn ,@forms) 1235 `(progn ,@forms)
1244 ;; FIXME: (default-value 'enable-multibyte-characters) is read-only 1236 (let ((multibyte (make-symbol "multibyte")))
1245 ;; so let-binding it is wrong. The right fix is to not use this 1237 `(let ((,multibyte enable-multibyte-characters))
1246 ;; macro at all any more, since it's been ill-defined from the start. 1238 (when ,multibyte
1247 (let ((multibyte (make-symbol "multibyte")) 1239 (set-buffer-multibyte nil))
1248 (buffer (make-symbol "buffer"))) 1240 (prog1
1249 `(if mm-emacs-mule 1241 (progn ,@forms)
1250 (let ((,multibyte enable-multibyte-characters) 1242 (when ,multibyte
1251 (,buffer (current-buffer))) 1243 (set-buffer-multibyte t)))))))
1252 (unwind-protect
1253 (letf (((default-value 'enable-multibyte-characters) nil))
1254 (set-buffer-multibyte nil)
1255 ,@forms)
1256 (set-buffer ,buffer)
1257 (set-buffer-multibyte ,multibyte)))
1258 (letf (((default-value 'enable-multibyte-characters) nil))
1259 ,@forms)))))
1260(put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) 1244(put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0)
1261(put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) 1245(put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body))
1262 1246
diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el
index a3ada29fa66..3ba479574fd 100644
--- a/lisp/gnus/mml1991.el
+++ b/lisp/gnus/mml1991.el
@@ -145,6 +145,7 @@ Whether the passphrase is cached at all is controlled by
145 (delete-region (point-min) (point))) 145 (delete-region (point-min) (point)))
146 (mm-with-unibyte-current-buffer 146 (mm-with-unibyte-current-buffer
147 (with-temp-buffer 147 (with-temp-buffer
148 (inline (mm-disable-multibyte))
148 (setq cipher (current-buffer)) 149 (setq cipher (current-buffer))
149 (insert-buffer-substring text) 150 (insert-buffer-substring text)
150 (unless (mc-encrypt-generic 151 (unless (mc-encrypt-generic
@@ -225,6 +226,7 @@ Whether the passphrase is cached at all is controlled by
225 (delete-region (point-min) (point))) 226 (delete-region (point-min) (point)))
226 (mm-with-unibyte-current-buffer 227 (mm-with-unibyte-current-buffer
227 (with-temp-buffer 228 (with-temp-buffer
229 (inline (mm-disable-multibyte))
228 (flet ((gpg-encrypt-func 230 (flet ((gpg-encrypt-func
229 (sign plaintext ciphertext result recipients &optional 231 (sign plaintext ciphertext result recipients &optional
230 passphrase sign-with-key armor textmode) 232 passphrase sign-with-key armor textmode)
diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el
index 130a3ca86a5..977f4dabb67 100644
--- a/lisp/gnus/mml2015.el
+++ b/lisp/gnus/mml2015.el
@@ -680,6 +680,7 @@ Whether the passphrase is cached at all is controlled by
680 cipher) 680 cipher)
681 (mm-with-unibyte-current-buffer 681 (mm-with-unibyte-current-buffer
682 (with-temp-buffer 682 (with-temp-buffer
683 (mm-disable-multibyte)
683 ;; set up a function to call the correct gpg encrypt routine 684 ;; set up a function to call the correct gpg encrypt routine
684 ;; with the right arguments. (FIXME: this should be done 685 ;; with the right arguments. (FIXME: this should be done
685 ;; differently.) 686 ;; differently.)
diff --git a/lisp/iimage.el b/lisp/iimage.el
index e52a7d37301..87591724dbb 100644
--- a/lisp/iimage.el
+++ b/lisp/iimage.el
@@ -55,19 +55,17 @@
55 :group 'image) 55 :group 'image)
56 56
57(defconst iimage-version "1.1") 57(defconst iimage-version "1.1")
58(defvar iimage-mode nil)
59(defvar iimage-mode-map nil)
60 58
61;; Set up key map. 59(defvar iimage-mode-map
62(unless iimage-mode-map 60 (let ((map (make-sparse-keymap)))
63 (setq iimage-mode-map (make-sparse-keymap)) 61 (define-key map "\C-l" 'iimage-recenter)
64 (define-key iimage-mode-map "\C-l" 'iimage-recenter)) 62 map))
65 63
66(defun iimage-recenter (&optional arg) 64(defun iimage-recenter (&optional arg)
67"Re-draw images and recenter." 65 "Re-draw images and recenter."
68 (interactive "P") 66 (interactive "P")
69 (iimage-mode-buffer 0) 67 (iimage-mode-buffer nil)
70 (iimage-mode-buffer 1) 68 (iimage-mode-buffer t)
71 (recenter arg)) 69 (recenter arg))
72 70
73(defvar iimage-mode-image-filename-regex 71(defvar iimage-mode-image-filename-regex
@@ -81,7 +79,7 @@
81 `((,(concat "\\(`?file://\\|\\[\\[\\|<\\|`\\)?" 79 `((,(concat "\\(`?file://\\|\\[\\[\\|<\\|`\\)?"
82 "\\(" iimage-mode-image-filename-regex "\\)" 80 "\\(" iimage-mode-image-filename-regex "\\)"
83 "\\(\\]\\]\\|>\\|'\\)?") . 2)) 81 "\\(\\]\\]\\|>\\|'\\)?") . 2))
84"*Alist of filename REGEXP vs NUM. 82 "*Alist of filename REGEXP vs NUM.
85Each element looks like (REGEXP . NUM). 83Each element looks like (REGEXP . NUM).
86NUM specifies which parenthesized expression in the regexp. 84NUM specifies which parenthesized expression in the regexp.
87 85
@@ -90,54 +88,43 @@ Examples of image filename regexps:
90 `file://foo.png' 88 `file://foo.png'
91 \\[\\[foo.gif]] 89 \\[\\[foo.gif]]
92 <foo.png> 90 <foo.png>
93 foo.JPG 91 foo.JPG")
94")
95 92
96(defvar iimage-mode-image-search-path nil 93(defvar iimage-mode-image-search-path nil
97"*List of directories to search for image files for iimage-mode.") 94 "*List of directories to search for image files for `iimage-mode'.")
98 95
99;;;###autoload 96;;;###autoload
100(defun turn-on-iimage-mode () 97(define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1")
101"Unconditionally turn on iimage mode."
102 (interactive)
103 (iimage-mode 1))
104 98
105(defun turn-off-iimage-mode () 99(defun turn-off-iimage-mode ()
106"Unconditionally turn off iimage mode." 100 "Unconditionally turn off iimage mode."
107 (interactive) 101 (interactive)
108 (iimage-mode 0)) 102 (iimage-mode 0))
109 103
110(defalias 'iimage-locate-file 'locate-file)
111
112(defun iimage-mode-buffer (arg) 104(defun iimage-mode-buffer (arg)
113"Display/undisplay images. 105 "Display images if ARG is non-nil, undisplay them otherwise."
114With numeric ARG, display the images if and only if ARG is positive." 106 (let ((image-path (cons default-directory iimage-mode-image-search-path))
115 (interactive) 107 file)
116 (let ((ing (if (numberp arg) 108 (with-silent-modifications
117 (> arg 0) 109 (save-excursion
118 iimage-mode)) 110 (goto-char (point-min))
119 (modp (buffer-modified-p (current-buffer))) 111 (dolist (pair iimage-mode-image-regex-alist)
120 file buffer-read-only) 112 (while (re-search-forward (car pair) nil t)
121 (save-excursion 113 (if (and (setq file (match-string (cdr pair)))
122 (goto-char (point-min)) 114 (setq file (locate-file file image-path)))
123 (dolist (pair iimage-mode-image-regex-alist) 115 ;; FIXME: we don't mark our images, so we can't reliably
124 (while (re-search-forward (car pair) nil t) 116 ;; remove them either (we may leave some of ours, and we
125 (if (and (setq file (match-string (cdr pair))) 117 ;; may remove other packages's display properties).
126 (setq file (iimage-locate-file file 118 (if arg
127 (cons default-directory 119 (add-text-properties (match-beginning 0) (match-end 0)
128 iimage-mode-image-search-path)))) 120 (list 'display (create-image file)))
129 (if ing 121 (remove-text-properties (match-beginning 0) (match-end 0)
130 (add-text-properties (match-beginning 0) (match-end 0) 122 '(display))))))))))
131 (list 'display (create-image file)))
132 (remove-text-properties (match-beginning 0) (match-end 0)
133 '(display)))))))
134 (set-buffer-modified-p modp)))
135 123
136;;;###autoload 124;;;###autoload
137(define-minor-mode iimage-mode 125(define-minor-mode iimage-mode
138 "Toggle inline image minor mode." 126 "Toggle inline image minor mode."
139 :group 'iimage :lighter " iImg" :keymap iimage-mode-map 127 :group 'iimage :lighter " iImg" :keymap iimage-mode-map
140 (run-hooks 'iimage-mode-hook)
141 (iimage-mode-buffer iimage-mode)) 128 (iimage-mode-buffer iimage-mode))
142 129
143(provide 'iimage) 130(provide 'iimage)
diff --git a/lisp/info.el b/lisp/info.el
index f526ff22a0e..e76a8da146e 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -266,6 +266,8 @@ with wrapping around the current Info node."
266 :group 'info) 266 :group 'info)
267 267
268(defvar Info-isearch-initial-node nil) 268(defvar Info-isearch-initial-node nil)
269(defvar Info-isearch-initial-history nil)
270(defvar Info-isearch-initial-history-list nil)
269 271
270(defcustom Info-mode-hook 272(defcustom Info-mode-hook
271 ;; Try to obey obsolete Info-fontify settings. 273 ;; Try to obey obsolete Info-fontify settings.
@@ -1914,7 +1916,27 @@ If DIRECTION is `backward', search in the reverse direction."
1914 (setq Info-isearch-initial-node 1916 (setq Info-isearch-initial-node
1915 ;; Don't stop at initial node for nonincremental search. 1917 ;; Don't stop at initial node for nonincremental search.
1916 ;; Otherwise this variable is set after first search failure. 1918 ;; Otherwise this variable is set after first search failure.
1917 (and isearch-nonincremental Info-current-node))) 1919 (and isearch-nonincremental Info-current-node))
1920 (setq Info-isearch-initial-history Info-history
1921 Info-isearch-initial-history-list Info-history-list)
1922 (add-hook 'isearch-mode-end-hook 'Info-isearch-end nil t))
1923
1924(defun Info-isearch-end ()
1925 ;; Remove intermediate nodes (visited while searching)
1926 ;; from the history. Add only the last node (where Isearch ended).
1927 (if (> (length Info-history)
1928 (length Info-isearch-initial-history))
1929 (setq Info-history
1930 (nthcdr (- (length Info-history)
1931 (length Info-isearch-initial-history)
1932 1)
1933 Info-history)))
1934 (if (> (length Info-history-list)
1935 (length Info-isearch-initial-history-list))
1936 (setq Info-history-list
1937 (cons (car Info-history-list)
1938 Info-isearch-initial-history-list)))
1939 (remove-hook 'isearch-mode-end-hook 'Info-isearch-end t))
1918 1940
1919(defun Info-isearch-filter (beg-found found) 1941(defun Info-isearch-filter (beg-found found)
1920 "Test whether the current search hit is a visible useful text. 1942 "Test whether the current search hit is a visible useful text.
diff --git a/lisp/mh-e/ChangeLog.1 b/lisp/mh-e/ChangeLog.1
index a51bd2872c3..5d08fd73e69 100644
--- a/lisp/mh-e/ChangeLog.1
+++ b/lisp/mh-e/ChangeLog.1
@@ -195,11 +195,11 @@
195 195
1962005-05-28 Bill Wohler <wohler@newt.com> 1962005-05-28 Bill Wohler <wohler@newt.com>
197 197
198 Released MH-E version 7.84. 198 Released MH-E version 7.84.
199 199
200 * MH-E-NEWS, README: Updated for release 7.84. 200 * MH-E-NEWS, README: Updated for release 7.84.
201 201
202 * mh-e.el (Version, mh-version): Updated for release 7.84. 202 * mh-e.el (Version, mh-version): Updated for release 7.84.
203 203
2042005-05-28 Bill Wohler <wohler@newt.com> 2042005-05-28 Bill Wohler <wohler@newt.com>
205 205
@@ -4396,7 +4396,6 @@
4396 mh-xemacs-toolbar.el: Removed RCS keywords per Emacs conventions 4396 mh-xemacs-toolbar.el: Removed RCS keywords per Emacs conventions
4397 (closes SF #680731). 4397 (closes SF #680731).
4398 4398
4399
44002003-03-26 Satyaki Das <satyaki@theforce.stanford.edu> 43992003-03-26 Satyaki Das <satyaki@theforce.stanford.edu>
4401 4400
4402 * mh-index.el: Fix commentary to mention that mairix is supported 4401 * mh-index.el: Fix commentary to mention that mairix is supported
@@ -7556,10 +7555,10 @@
7556 the MH pick command to give the user more information when 7555 the MH pick command to give the user more information when
7557 choosing between mh-search-folder and mh-index-folder. 7556 choosing between mh-search-folder and mh-index-folder.
7558 7557
7559 * mh-index.el (mh-index-search): Edited the docstring. Direct the 7558 * mh-index.el (mh-index-search): Edited the docstring. Direct the
7560 user to mh-index-program if necessary. 7559 user to mh-index-program if necessary.
7561 (mh-index-program): Edited this docstring too. Viewing the help 7560 (mh-index-program): Edited this docstring too. Viewing the help
7562 in a *Help* buffer really exposes grammatical flaws. 7561 in a *Help* buffer really exposes grammatical flaws.
7563 7562
75642002-11-05 Peter S Galbraith <psg@debian.org> 75632002-11-05 Peter S Galbraith <psg@debian.org>
7565 7564
@@ -7839,7 +7838,6 @@
7839 (.PHONY): Added emacs, xemacs, autoloads, custom-loads. Broke up 7838 (.PHONY): Added emacs, xemacs, autoloads, custom-loads. Broke up
7840 target and moved pieces into their own sections. 7839 target and moved pieces into their own sections.
7841 7840
7842
78432002-10-30 Peter S Galbraith <psg@debian.org> 78412002-10-30 Peter S Galbraith <psg@debian.org>
7844 7842
7845 * mh-utils.el (mh-show-font-lock-keywords): Wrap an 7843 * mh-utils.el (mh-show-font-lock-keywords): Wrap an
@@ -8494,11 +8492,10 @@
84942002-10-22 Mark D. Baushke <mdb@gnu.org> 84922002-10-22 Mark D. Baushke <mdb@gnu.org>
8495 8493
8496 * mh-mime.el (mh-graphical-smileys-flag): Renamed from 8494 * mh-mime.el (mh-graphical-smileys-flag): Renamed from
8497 mh-graphical-smileys-p. 8495 mh-graphical-smileys-p.
8498 (mh-display-smileys): Use it. 8496 (mh-display-smileys): Use it.
8499 (mh-graphical-emphasis-flag): Renamed from 8497 (mh-graphical-emphasis-flag): Renamed from mh-graphical-emphasis-p.
8500 mh-graphical-emphasis-p. 8498 (mh-display-emphasis): Use it. This addresses part of SF #627015.
8501 (mh-display-emphasis): Use it. This addresses part of SF #627015.
8502 8499
85032002-10-22 Satyaki Das <satyaki@theforce.stanford.edu> 85002002-10-22 Satyaki Das <satyaki@theforce.stanford.edu>
8504 8501
@@ -9301,7 +9298,7 @@
9301 * mh-mime.el (mh-store-mime-parts-directory): New defcustom. 9298 * mh-mime.el (mh-store-mime-parts-directory): New defcustom.
9302 Default directory to use for mh-store-mime-parts. 9299 Default directory to use for mh-store-mime-parts.
9303 (mh-store-mime-parts): New Command. Store the MIME parts of the 9300 (mh-store-mime-parts): New Command. Store the MIME parts of the
9304 current message. 9301 current message.
9305 (mh-store-mime-parts-directory-default): New internal working 9302 (mh-store-mime-parts-directory-default): New internal working
9306 variable. Default to use for mh-store-mime-parts-directory, set 9303 variable. Default to use for mh-store-mime-parts-directory, set
9307 from last use. 9304 from last use.
@@ -9309,7 +9306,6 @@
9309 * mh-e.el (mh-folder-seq-tool-bar-map): Add mh-store-mime-parts to 9306 * mh-e.el (mh-folder-seq-tool-bar-map): Add mh-store-mime-parts to
9310 toolbar. 9307 toolbar.
9311 9308
9312
93132002-08-22 Satyaki Das <satyaki@theforce.stanford.edu> 93092002-08-22 Satyaki Das <satyaki@theforce.stanford.edu>
9314 9310
9315 * mh-seq.el (mh-thread-generate-scan-lines): In threaded view, 9311 * mh-seq.el (mh-thread-generate-scan-lines): In threaded view,
@@ -10487,7 +10483,6 @@
10487 (clean): New target that blows away MH-E-OBJ. 10483 (clean): New target that blows away MH-E-OBJ.
10488 (dist): Added $(MH-E-OBJ) to tarball. 10484 (dist): Added $(MH-E-OBJ) to tarball.
10489 10485
10490
10491 Attempt to quiet compilation errors to a dull roar. 10486 Attempt to quiet compilation errors to a dull roar.
10492 10487
10493 * mh-e.el: Require easymenu, added autoload of info. 10488 * mh-e.el: Require easymenu, added autoload of info.
@@ -10506,7 +10501,6 @@
10506 * mh-comp.el: Require mh-e and easymenu, moved autoloads to top of 10501 * mh-comp.el: Require mh-e and easymenu, moved autoloads to top of
10507 file. 10502 file.
10508 10503
10509
10510 * Makefile: (EMACS): New constant to hold emacs calling sequence. 10504 * Makefile: (EMACS): New constant to hold emacs calling sequence.
10511 (install): Renamed to install-emacs. 10505 (install): Renamed to install-emacs.
10512 (compile): New target to compile all files. 10506 (compile): New target to compile all files.
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 869ce937b66..b1ecae3801d 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -76,6 +76,9 @@
76;; the provided string (as is the case in filecache.el), in which 76;; the provided string (as is the case in filecache.el), in which
77;; case partial-completion (for example) doesn't make any sense 77;; case partial-completion (for example) doesn't make any sense
78;; and neither does the completions-first-difference highlight. 78;; and neither does the completions-first-difference highlight.
79;; - indicate how to display the completions in *Completions* (turn
80;; \n into something else, add special boundaries between
81;; completions). E.g. when completing from the kill-ring.
79 82
80;; - make partial-completion-mode obsolete: 83;; - make partial-completion-mode obsolete:
81;; - (?) <foo.h> style completion for file names. 84;; - (?) <foo.h> style completion for file names.
@@ -489,6 +492,18 @@ Moves point to the end of the new text."
489 (insert newtext) 492 (insert newtext)
490 (delete-region (point) (+ (point) (- end beg)))) 493 (delete-region (point) (+ (point) (- end beg))))
491 494
495(defcustom completion-cycle-threshold nil
496 "Number of completion candidates below which cycling is used.
497Depending on this setting `minibuffer-complete' may use cycling,
498like `minibuffer-force-complete'.
499If nil, cycling is never used.
500If t, cycling is always used.
501If an integer, cycling is used as soon as there are fewer completion
502candidates than this number."
503 :type '(choice (const :tag "No cycling" nil)
504 (const :tag "Always cycle" t)
505 (integer :tag "Threshold")))
506
492(defun completion--do-completion (&optional try-completion-function) 507(defun completion--do-completion (&optional try-completion-function)
493 "Do the completion and return a summary of what happened. 508 "Do the completion and return a summary of what happened.
494M = completion was performed, the text was Modified. 509M = completion was performed, the text was Modified.
@@ -548,14 +563,43 @@ E = after completion we now have an Exact match.
548 ;; It did find a match. Do we match some possibility exactly now? 563 ;; It did find a match. Do we match some possibility exactly now?
549 (let ((exact (test-completion completion 564 (let ((exact (test-completion completion
550 minibuffer-completion-table 565 minibuffer-completion-table
551 minibuffer-completion-predicate))) 566 minibuffer-completion-predicate))
552 (if completed 567 (comps
568 ;; Check to see if we want to do cycling. We do it
569 ;; here, after having performed the normal completion,
570 ;; so as to take advantage of the difference between
571 ;; try-completion and all-completions, for things
572 ;; like completion-ignored-extensions.
573 (when (and completion-cycle-threshold
574 ;; Check that the completion didn't make
575 ;; us jump to a different boundary.
576 (or (not completed)
577 (< (car (completion-boundaries
578 (substring completion 0 comp-pos)
579 minibuffer-completion-table
580 minibuffer-completion-predicate
581 ""))
582 comp-pos)))
583 (completion-all-sorted-completions))))
584 (setq completion-all-sorted-completions nil)
585 (cond
586 ((and (not (ignore-errors
587 ;; This signal an (intended) error if comps is too
588 ;; short or if completion-cycle-threshold is t.
589 (consp (nthcdr completion-cycle-threshold comps))))
590 ;; More than 1, so there's something to cycle.
591 (consp (cdr comps)))
592 ;; Fewer than completion-cycle-threshold remaining
593 ;; completions: let's cycle.
594 (setq completed t exact t)
595 (setq completion-all-sorted-completions comps)
596 (minibuffer-force-complete))
597 (completed
553 ;; We could also decide to refresh the completions, 598 ;; We could also decide to refresh the completions,
554 ;; if they're displayed (and assuming there are 599 ;; if they're displayed (and assuming there are
555 ;; completions left). 600 ;; completions left).
556 (minibuffer-hide-completions) 601 (minibuffer-hide-completions))
557 ;; Show the completion table, if requested. 602 ;; Show the completion table, if requested.
558 (cond
559 ((not exact) 603 ((not exact)
560 (if (case completion-auto-help 604 (if (case completion-auto-help
561 (lazy (eq this-command last-command)) 605 (lazy (eq this-command last-command))
@@ -566,7 +610,7 @@ E = after completion we now have an Exact match.
566 ;; means we've already given a "Next char not unique" message 610 ;; means we've already given a "Next char not unique" message
567 ;; and the user's hit TAB again, so now we give him help. 611 ;; and the user's hit TAB again, so now we give him help.
568 ((eq this-command last-command) 612 ((eq this-command last-command)
569 (if completion-auto-help (minibuffer-completion-help))))) 613 (if completion-auto-help (minibuffer-completion-help))))
570 614
571 (minibuffer--bitset completed t exact)))))))) 615 (minibuffer--bitset completed t exact))))))))
572 616
@@ -580,21 +624,26 @@ scroll the window of possible completions."
580 ;; If the previous command was not this, 624 ;; If the previous command was not this,
581 ;; mark the completion buffer obsolete. 625 ;; mark the completion buffer obsolete.
582 (unless (eq this-command last-command) 626 (unless (eq this-command last-command)
627 (setq completion-all-sorted-completions nil)
583 (setq minibuffer-scroll-window nil)) 628 (setq minibuffer-scroll-window nil))
584 629
585 (let ((window minibuffer-scroll-window)) 630 (cond
586 ;; If there's a fresh completion window with a live buffer, 631 ;; If there's a fresh completion window with a live buffer,
587 ;; and this command is repeated, scroll that window. 632 ;; and this command is repeated, scroll that window.
588 (if (window-live-p window) 633 ((window-live-p minibuffer-scroll-window)
634 (let ((window minibuffer-scroll-window))
589 (with-current-buffer (window-buffer window) 635 (with-current-buffer (window-buffer window)
590 (if (pos-visible-in-window-p (point-max) window) 636 (if (pos-visible-in-window-p (point-max) window)
591 ;; If end is in view, scroll up to the beginning. 637 ;; If end is in view, scroll up to the beginning.
592 (set-window-start window (point-min) nil) 638 (set-window-start window (point-min) nil)
593 ;; Else scroll down one screen. 639 ;; Else scroll down one screen.
594 (scroll-other-window)) 640 (scroll-other-window))
595 nil) 641 nil)))
596 642 ;; If we're cycling, keep on cycling.
597 (case (completion--do-completion) 643 (completion-all-sorted-completions
644 (minibuffer-force-complete)
645 t)
646 (t (case (completion--do-completion)
598 (#b000 nil) 647 (#b000 nil)
599 (#b001 (minibuffer-message "Sole completion") 648 (#b001 (minibuffer-message "Sole completion")
600 t) 649 t)
@@ -1835,8 +1884,8 @@ or a symbol chosen among `any', `star', `point', `prefix'."
1835 (lambda (x) 1884 (lambda (x)
1836 (cond 1885 (cond
1837 ((stringp x) (regexp-quote x)) 1886 ((stringp x) (regexp-quote x))
1838 ((if (consp group) (memq x group) group) 1887 ((if (consp group) (memq x group) group) "\\(.*?\\)")
1839 "\\(.*?\\)" ".*?"))) 1888 (t ".*?")))
1840 pattern 1889 pattern
1841 "")))) 1890 ""))))
1842 ;; Avoid pathological backtracking. 1891 ;; Avoid pathological backtracking.
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 434c2bad20d..00b282b83e3 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -334,41 +334,41 @@ KEEP-DATE is not handled in case NEWNAME resides on an SMB server.
334PRESERVE-UID-GID is completely ignored." 334PRESERVE-UID-GID is completely ignored."
335 (setq filename (expand-file-name filename) 335 (setq filename (expand-file-name filename)
336 newname (expand-file-name newname)) 336 newname (expand-file-name newname))
337 (with-progress-reporter
338 (tramp-dissect-file-name (if (file-remote-p filename) filename newname))
339 0 (format "Copying %s to %s" filename newname)
340
341 (let ((tmpfile (file-local-copy filename)))
342
343 (if tmpfile
344 ;; Remote filename.
345 (condition-case err
346 (rename-file tmpfile newname ok-if-already-exists)
347 ((error quit)
348 (tramp-compat-delete-file tmpfile 'force)
349 (signal (car err) (cdr err))))
350
351 ;; Remote newname.
352 (when (file-directory-p newname)
353 (setq newname
354 (expand-file-name (file-name-nondirectory filename) newname)))
355
356 (with-parsed-tramp-file-name newname nil
357 (when (and (not ok-if-already-exists)
358 (file-exists-p newname))
359 (tramp-error v 'file-already-exists newname))
337 360
338 (let ((tmpfile (file-local-copy filename))) 361 ;; We must also flush the cache of the directory, because
339 362 ;; `file-attributes' reads the values from there.
340 (if tmpfile 363 (tramp-flush-file-property v (file-name-directory localname))
341 ;; Remote filename. 364 (tramp-flush-file-property v localname)
342 (condition-case err 365 (unless (tramp-smb-get-share v)
343 (rename-file tmpfile newname ok-if-already-exists) 366 (tramp-error
344 ((error quit) 367 v 'file-error "Target `%s' must contain a share name" newname))
345 (tramp-compat-delete-file tmpfile 'force) 368 (unless (tramp-smb-send-command
346 (signal (car err) (cdr err)))) 369 v (format "put \"%s\" \"%s\""
347 370 filename (tramp-smb-get-localname v)))
348 ;; Remote newname. 371 (tramp-error v 'file-error "Cannot copy `%s'" filename))))))
349 (when (file-directory-p newname)
350 (setq newname (expand-file-name
351 (file-name-nondirectory filename) newname)))
352
353 (with-parsed-tramp-file-name newname nil
354 (when (and (not ok-if-already-exists)
355 (file-exists-p newname))
356 (tramp-error v 'file-already-exists newname))
357
358 ;; We must also flush the cache of the directory, because
359 ;; `file-attributes' reads the values from there.
360 (tramp-flush-file-property v (file-name-directory localname))
361 (tramp-flush-file-property v localname)
362 (unless (tramp-smb-get-share v)
363 (tramp-error
364 v 'file-error "Target `%s' must contain a share name" newname))
365 (tramp-message v 0 "Copying file %s to file %s..." filename newname)
366 (if (tramp-smb-send-command
367 v (format "put \"%s\" \"%s\""
368 filename (tramp-smb-get-localname v)))
369 (tramp-message
370 v 0 "Copying file %s to file %s...done" filename newname)
371 (tramp-error v 'file-error "Cannot copy `%s'" filename)))))
372 372
373 ;; KEEP-DATE handling. 373 ;; KEEP-DATE handling.
374 (when keep-date (set-file-times newname (nth 5 (file-attributes filename))))) 374 (when keep-date (set-file-times newname (nth 5 (file-attributes filename)))))
@@ -605,15 +605,15 @@ PRESERVE-UID-GID is completely ignored."
605 v 'file-error 605 v 'file-error
606 "Cannot make local copy of non-existing file `%s'" filename)) 606 "Cannot make local copy of non-existing file `%s'" filename))
607 (let ((tmpfile (tramp-compat-make-temp-file filename))) 607 (let ((tmpfile (tramp-compat-make-temp-file filename)))
608 (tramp-message v 4 "Fetching %s to tmp file %s..." filename tmpfile) 608 (with-progress-reporter
609 (if (tramp-smb-send-command 609 v 3 (format "Fetching %s to tmp file %s" filename tmpfile)
610 v (format "get \"%s\" \"%s\"" (tramp-smb-get-localname v) tmpfile)) 610 (unless (tramp-smb-send-command
611 (tramp-message 611 v (format "get \"%s\" \"%s\""
612 v 4 "Fetching %s to tmp file %s...done" filename tmpfile) 612 (tramp-smb-get-localname v) tmpfile))
613 ;; Oops, an error. We shall cleanup. 613 ;; Oops, an error. We shall cleanup.
614 (tramp-compat-delete-file tmpfile 'force) 614 (tramp-compat-delete-file tmpfile 'force)
615 (tramp-error 615 (tramp-error
616 v 'file-error "Cannot make local copy of file `%s'" filename)) 616 v 'file-error "Cannot make local copy of file `%s'" filename)))
617 tmpfile))) 617 tmpfile)))
618 618
619;; This function should return "foo/" for directories and "bar" for 619;; This function should return "foo/" for directories and "bar" for
@@ -850,38 +850,39 @@ target of the symlink differ."
850 "Like `rename-file' for Tramp files." 850 "Like `rename-file' for Tramp files."
851 (setq filename (expand-file-name filename) 851 (setq filename (expand-file-name filename)
852 newname (expand-file-name newname)) 852 newname (expand-file-name newname))
853 (with-progress-reporter
854 (tramp-dissect-file-name (if (file-remote-p filename) filename newname))
855 0 (format "Renaming %s to %s" filename newname)
856
857 (let ((tmpfile (file-local-copy filename)))
858
859 (if tmpfile
860 ;; Remote filename.
861 (condition-case err
862 (rename-file tmpfile newname ok-if-already-exists)
863 ((error quit)
864 (tramp-compat-delete-file tmpfile 'force)
865 (signal (car err) (cdr err))))
866
867 ;; Remote newname.
868 (when (file-directory-p newname)
869 (setq newname (expand-file-name
870 (file-name-nondirectory filename) newname)))
871
872 (with-parsed-tramp-file-name newname nil
873 (when (and (not ok-if-already-exists)
874 (file-exists-p newname))
875 (tramp-error v 'file-already-exists newname))
876 ;; We must also flush the cache of the directory, because
877 ;; `file-attributes' reads the values from there.
878 (tramp-flush-file-property v (file-name-directory localname))
879 (tramp-flush-file-property v localname)
880 (unless (tramp-smb-send-command
881 v (format "put %s \"%s\""
882 filename (tramp-smb-get-localname v)))
883 (tramp-error v 'file-error "Cannot rename `%s'" filename)))))
853 884
854 (let ((tmpfile (file-local-copy filename))) 885 (tramp-compat-delete-file filename 'force)))
855
856 (if tmpfile
857 ;; Remote filename.
858 (condition-case err
859 (rename-file tmpfile newname ok-if-already-exists)
860 ((error quit)
861 (tramp-compat-delete-file tmpfile 'force)
862 (signal (car err) (cdr err))))
863
864 ;; Remote newname.
865 (when (file-directory-p newname)
866 (setq newname (expand-file-name
867 (file-name-nondirectory filename) newname)))
868
869 (with-parsed-tramp-file-name newname nil
870 (when (and (not ok-if-already-exists)
871 (file-exists-p newname))
872 (tramp-error v 'file-already-exists newname))
873 ;; We must also flush the cache of the directory, because
874 ;; `file-attributes' reads the values from there.
875 (tramp-flush-file-property v (file-name-directory localname))
876 (tramp-flush-file-property v localname)
877 (tramp-message v 0 "Copying file %s to file %s..." filename newname)
878 (if (tramp-smb-send-command
879 v (format "put %s \"%s\"" filename (tramp-smb-get-localname v)))
880 (tramp-message
881 v 0 "Copying file %s to file %s...done" filename newname)
882 (tramp-error v 'file-error "Cannot rename `%s'" filename)))))
883
884 (tramp-compat-delete-file filename 'force))
885 886
886(defun tramp-smb-handle-set-file-modes (filename mode) 887(defun tramp-smb-handle-set-file-modes (filename mode)
887 "Like `set-file-modes' for Tramp files." 888 "Like `set-file-modes' for Tramp files."
@@ -938,14 +939,14 @@ errors for shares like \"C$/\", which are common in Microsoft Windows."
938 (list start end tmpfile append 'no-message lockname confirm) 939 (list start end tmpfile append 'no-message lockname confirm)
939 (list start end tmpfile append 'no-message lockname))) 940 (list start end tmpfile append 'no-message lockname)))
940 941
941 (tramp-message v 5 "Writing tmp file %s to file %s..." tmpfile filename) 942 (with-progress-reporter
942 (unwind-protect 943 v 3 (format "Moving tmp file %s to %s" tmpfile filename)
943 (if (tramp-smb-send-command 944 (unwind-protect
944 v (format "put %s \"%s\"" tmpfile (tramp-smb-get-localname v))) 945 (unless (tramp-smb-send-command
945 (tramp-message 946 v (format "put %s \"%s\""
946 v 5 "Writing tmp file %s to file %s...done" tmpfile filename) 947 tmpfile (tramp-smb-get-localname v)))
947 (tramp-error v 'file-error "Cannot write `%s'" filename)) 948 (tramp-error v 'file-error "Cannot write `%s'" filename))
948 (tramp-compat-delete-file tmpfile 'force)) 949 (tramp-compat-delete-file tmpfile 'force)))
949 950
950 (unless (equal curbuf (current-buffer)) 951 (unless (equal curbuf (current-buffer))
951 (tramp-error 952 (tramp-error
@@ -1302,60 +1303,57 @@ connection if a previous connection has died for some reason."
1302 (setq args (append args (list "-s" tramp-smb-conf)))) 1303 (setq args (append args (list "-s" tramp-smb-conf))))
1303 1304
1304 ;; OK, let's go. 1305 ;; OK, let's go.
1305 (tramp-message 1306 (with-progress-reporter
1306 vec 3 "Opening connection for //%s%s/%s..." 1307 vec 3
1307 (if (not (zerop (length user))) (concat user "@") "") 1308 (format "Opening connection for //%s%s/%s"
1308 host (or share "")) 1309 (if (not (zerop (length user))) (concat user "@") "")
1309 1310 host (or share ""))
1310 (let* ((coding-system-for-read nil) 1311
1311 (process-connection-type tramp-process-connection-type) 1312 (let* ((coding-system-for-read nil)
1312 (p (let ((default-directory 1313 (process-connection-type tramp-process-connection-type)
1313 (tramp-compat-temporary-file-directory))) 1314 (p (let ((default-directory
1314 (apply #'start-process 1315 (tramp-compat-temporary-file-directory)))
1315 (tramp-buffer-name vec) (tramp-get-buffer vec) 1316 (apply #'start-process
1316 tramp-smb-program args)))) 1317 (tramp-buffer-name vec) (tramp-get-buffer vec)
1317 1318 tramp-smb-program args))))
1318 (tramp-message 1319
1319 vec 6 "%s" (mapconcat 'identity (process-command p) " ")) 1320 (tramp-message
1320 (tramp-set-process-query-on-exit-flag p nil) 1321 vec 6 "%s" (mapconcat 'identity (process-command p) " "))
1321 1322 (tramp-set-process-query-on-exit-flag p nil)
1322 ;; Set variables for computing the prompt for reading password. 1323
1323 (setq tramp-current-method tramp-smb-method 1324 ;; Set variables for computing the prompt for reading password.
1324 tramp-current-user user 1325 (setq tramp-current-method tramp-smb-method
1325 tramp-current-host host) 1326 tramp-current-user user
1326 1327 tramp-current-host host)
1327 ;; Play login scenario. 1328
1328 (tramp-process-actions 1329 ;; Play login scenario.
1329 p vec 1330 (tramp-process-actions
1330 (if share 1331 p vec
1331 tramp-smb-actions-with-share 1332 (if share
1332 tramp-smb-actions-without-share)) 1333 tramp-smb-actions-with-share
1333 1334 tramp-smb-actions-without-share))
1334 ;; Check server version. 1335
1335 (with-current-buffer (tramp-get-connection-buffer vec) 1336 ;; Check server version.
1336 (goto-char (point-min)) 1337 (with-current-buffer (tramp-get-connection-buffer vec)
1337 (search-forward-regexp 1338 (goto-char (point-min))
1338 "Domain=\\[[^]]*\\] OS=\\[[^]]*\\] Server=\\[[^]]*\\]" nil t) 1339 (search-forward-regexp
1339 (let ((smbserver-version (match-string 0))) 1340 "Domain=\\[[^]]*\\] OS=\\[[^]]*\\] Server=\\[[^]]*\\]" nil t)
1340 (unless 1341 (let ((smbserver-version (match-string 0)))
1341 (string-equal 1342 (unless
1342 smbserver-version 1343 (string-equal
1343 (tramp-get-connection-property 1344 smbserver-version
1344 vec "smbserver-version" smbserver-version)) 1345 (tramp-get-connection-property
1345 (tramp-flush-directory-property vec "") 1346 vec "smbserver-version" smbserver-version))
1346 (tramp-flush-connection-property vec)) 1347 (tramp-flush-directory-property vec "")
1347 (tramp-set-connection-property 1348 (tramp-flush-connection-property vec))
1348 vec "smbserver-version" smbserver-version))) 1349 (tramp-set-connection-property
1349 1350 vec "smbserver-version" smbserver-version)))
1350 ;; Set chunksize. Otherwise, `tramp-send-string' might 1351
1351 ;; try it itself. 1352 ;; Set chunksize. Otherwise, `tramp-send-string' might
1352 (tramp-set-connection-property p "smb-share" share) 1353 ;; try it itself.
1353 (tramp-set-connection-property p "chunksize" tramp-chunksize) 1354 (tramp-set-connection-property p "smb-share" share)
1354 1355 (tramp-set-connection-property
1355 (tramp-message 1356 p "chunksize" tramp-chunksize))))))))
1356 vec 3 "Opening connection for //%s%s/%s...done"
1357 (if (not (zerop (length user))) (concat user "@") "")
1358 host (or share ""))))))))
1359 1357
1360;; We don't use timeouts. If needed, the caller shall wrap around. 1358;; We don't use timeouts. If needed, the caller shall wrap around.
1361(defun tramp-smb-wait-for-output (vec) 1359(defun tramp-smb-wait-for-output (vec)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 3a291cfb695..c5addae8e5d 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2271,14 +2271,18 @@ FILE must be a local file name on a connection identified via VEC."
2271 (tramp-message ,vec ,level "%s..." ,message) 2271 (tramp-message ,vec ,level "%s..." ,message)
2272 ;; We start a pulsing progress reporter after 3 seconds. Feature 2272 ;; We start a pulsing progress reporter after 3 seconds. Feature
2273 ;; introduced in Emacs 24.1. 2273 ;; introduced in Emacs 24.1.
2274 (when (<= ,level tramp-verbose) 2274 (when (and tramp-message-show-message
2275 ;; Display only when there is a minimum level.
2276 (<= ,level (min tramp-verbose 3)))
2275 (condition-case nil 2277 (condition-case nil
2276 (setq pr (tramp-compat-funcall 'make-progress-reporter ,message) 2278 (setq pr (tramp-compat-funcall 'make-progress-reporter ,message)
2277 tm (if pr (run-at-time 3 0.1 'progress-reporter-update pr))) 2279 tm (if pr (run-at-time 3 0.1 'progress-reporter-update pr)))
2278 (error nil))) 2280 (error nil)))
2279 (unwind-protect 2281 (unwind-protect
2280 ;; Execute the body. 2282 ;; Execute the body.
2281 (progn ,@body) 2283 (let ((tramp-message-show-message
2284 (and tramp-message-show-message (not tm))))
2285 ,@body)
2282 ;; Stop progress reporter. 2286 ;; Stop progress reporter.
2283 (if tm (tramp-compat-funcall 'cancel-timer tm)) 2287 (if tm (tramp-compat-funcall 'cancel-timer tm))
2284 (tramp-message ,vec ,level "%s...done" ,message)))) 2288 (tramp-message ,vec ,level "%s...done" ,message))))
@@ -2558,13 +2562,13 @@ target of the symlink differ."
2558 (tramp-error v 'file-error "Cannot load nonexistent file `%s'" file))) 2562 (tramp-error v 'file-error "Cannot load nonexistent file `%s'" file)))
2559 (if (not (file-exists-p file)) 2563 (if (not (file-exists-p file))
2560 nil 2564 nil
2561 (unless nomessage (tramp-message v 0 "Loading %s..." file)) 2565 (let ((tramp-message-show-message (not nomessage)))
2562 (let ((local-copy (file-local-copy file))) 2566 (with-progress-reporter v 0 (format "Loading %s" file)
2563 ;; MUST-SUFFIX doesn't exist on XEmacs, so let it default to nil. 2567 (let ((local-copy (file-local-copy file)))
2564 (unwind-protect 2568 ;; MUST-SUFFIX doesn't exist on XEmacs, so let it default to nil.
2565 (load local-copy noerror t t) 2569 (unwind-protect
2566 (tramp-compat-delete-file local-copy 'force))) 2570 (load local-copy noerror t t)
2567 (unless nomessage (tramp-message v 0 "Loading %s...done" file)) 2571 (tramp-compat-delete-file local-copy 'force)))))
2568 t))) 2572 t)))
2569 2573
2570;; Localname manipulation functions that grok Tramp localnames... 2574;; Localname manipulation functions that grok Tramp localnames...
@@ -2867,7 +2871,9 @@ target of the symlink differ."
2867 (tramp-send-command-and-read 2871 (tramp-send-command-and-read
2868 vec 2872 vec
2869 (format 2873 (format
2870 "((%s %s || %s -h %s) && %s -c '((\"%%N\") %%h %s %s %%X.0 %%Y.0 %%Z.0 %%s.0 \"%%A\" t %%i.0 -1)' %s || echo nil)" 2874 ;; On Opsware, pdksh (which is the true name of ksh there) doesn't
2875 ;; parse correctly the sequence "((". Therefore, we add a space.
2876 "( (%s %s || %s -h %s) && %s -c '( (\"%%N\") %%h %s %s %%X.0 %%Y.0 %%Z.0 %%s.0 \"%%A\" t %%i.0 -1)' %s || echo nil)"
2871 (tramp-get-file-exists-command vec) 2877 (tramp-get-file-exists-command vec)
2872 (tramp-shell-quote-argument localname) 2878 (tramp-shell-quote-argument localname)
2873 (tramp-get-test-command vec) 2879 (tramp-get-test-command vec)
@@ -2920,12 +2926,14 @@ already know that the buffer is visiting a file and that
2920function directly, unless those two cases are already taken care 2926function directly, unless those two cases are already taken care
2921of." 2927of."
2922 (with-current-buffer buf 2928 (with-current-buffer buf
2923 ;; There is no file visiting the buffer, or the buffer has no 2929 (let ((f (buffer-file-name)))
2924 ;; recorded last modification time. 2930 ;; There is no file visiting the buffer, or the buffer has no
2925 (if (or (not (buffer-file-name)) 2931 ;; recorded last modification time, or there is no established
2926 (eq (visited-file-modtime) 0)) 2932 ;; connection.
2927 t 2933 (if (or (not f)
2928 (let ((f (buffer-file-name))) 2934 (eq (visited-file-modtime) 0)
2935 (not (tramp-file-name-handler 'file-remote-p f nil 'connected)))
2936 t
2929 (with-parsed-tramp-file-name f nil 2937 (with-parsed-tramp-file-name f nil
2930 (tramp-flush-file-property v localname) 2938 (tramp-flush-file-property v localname)
2931 (let* ((attr (file-attributes f)) 2939 (let* ((attr (file-attributes f))
@@ -2984,16 +2992,11 @@ of."
2984 (let ((time (if (or (null time) (equal time '(0 0))) 2992 (let ((time (if (or (null time) (equal time '(0 0)))
2985 (current-time) 2993 (current-time)
2986 time)) 2994 time))
2987 (utc 2995 ;; With GNU Emacs, `format-time-string' has an optional
2988 ;; With GNU Emacs, `format-time-string' has an 2996 ;; parameter UNIVERSAL. This is preferred, because we
2989 ;; optional parameter UNIVERSAL. This is preferred, 2997 ;; could handle the case when the remote host is
2990 ;; because we could handle the case when the remote 2998 ;; located in a different time zone as the local host.
2991 ;; host is located in a different time zone as the 2999 (utc (not (featurep 'xemacs))))
2992 ;; local host.
2993 (and (functionp 'subr-arity)
2994 (subrp (symbol-function 'format-time-string))
2995 (= 3 (cdr (tramp-compat-funcall
2996 'subr-arity 'format-time-string))))))
2997 (tramp-send-command-and-check 3000 (tramp-send-command-and-check
2998 v (format "%s touch -t %s %s" 3001 v (format "%s touch -t %s %s"
2999 (if utc "TZ=UTC; export TZ;" "") 3002 (if utc "TZ=UTC; export TZ;" "")
@@ -4154,7 +4157,7 @@ This is like `dired-recursive-delete-directory' for Tramp files."
4154 nil) 4157 nil)
4155 ((and suffix (nth 2 suffix)) 4158 ((and suffix (nth 2 suffix))
4156 ;; We found an uncompression rule. 4159 ;; We found an uncompression rule.
4157 (with-progress-reporter v 0 (format "Uncompressing %s..." file) 4160 (with-progress-reporter v 0 (format "Uncompressing %s" file)
4158 (when (zerop 4161 (when (zerop
4159 (tramp-send-command-and-check 4162 (tramp-send-command-and-check
4160 v (concat (nth 2 suffix) " " 4163 v (concat (nth 2 suffix) " "
@@ -4166,7 +4169,7 @@ This is like `dired-recursive-delete-directory' for Tramp files."
4166 (t 4169 (t
4167 ;; We don't recognize the file as compressed, so compress it. 4170 ;; We don't recognize the file as compressed, so compress it.
4168 ;; Try gzip. 4171 ;; Try gzip.
4169 (with-progress-reporter v 0 (format "Compressing %s..." file) 4172 (with-progress-reporter v 0 (format "Compressing %s" file)
4170 (when (zerop 4173 (when (zerop
4171 (tramp-send-command-and-check 4174 (tramp-send-command-and-check
4172 v (concat "gzip -f " 4175 v (concat "gzip -f "
@@ -4748,11 +4751,11 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
4748 ;; Use inline encoding for file transfer. 4751 ;; Use inline encoding for file transfer.
4749 (rem-enc 4752 (rem-enc
4750 (save-excursion 4753 (save-excursion
4751 (tramp-message v 5 "Encoding remote file %s..." filename) 4754 (with-progress-reporter
4752 (tramp-barf-unless-okay 4755 v 5 (format "Encoding remote file %s" filename)
4753 v (format rem-enc (tramp-shell-quote-argument localname)) 4756 (tramp-barf-unless-okay
4754 "Encoding remote file failed") 4757 v (format rem-enc (tramp-shell-quote-argument localname))
4755 (tramp-message v 5 "Encoding remote file %s...done" filename) 4758 "Encoding remote file failed"))
4756 4759
4757 (if (functionp loc-dec) 4760 (if (functionp loc-dec)
4758 ;; If local decoding is a function, we call it. We 4761 ;; If local decoding is a function, we call it. We
@@ -4762,15 +4765,15 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
4762 (with-temp-buffer 4765 (with-temp-buffer
4763 (set-buffer-multibyte nil) 4766 (set-buffer-multibyte nil)
4764 (insert-buffer-substring (tramp-get-buffer v)) 4767 (insert-buffer-substring (tramp-get-buffer v))
4765 (tramp-message 4768 (with-progress-reporter
4766 v 5 "Decoding remote file %s with function %s..." 4769 v 3 (format "Decoding remote file %s with function %s"
4767 filename loc-dec) 4770 filename loc-dec)
4768 (funcall loc-dec (point-min) (point-max)) 4771 (funcall loc-dec (point-min) (point-max))
4769 ;; Unset `file-name-handler-alist'. Otherwise, 4772 ;; Unset `file-name-handler-alist'. Otherwise,
4770 ;; epa-file gets confused. 4773 ;; epa-file gets confused.
4771 (let (file-name-handler-alist 4774 (let (file-name-handler-alist
4772 (coding-system-for-write 'binary)) 4775 (coding-system-for-write 'binary))
4773 (write-region (point-min) (point-max) tmpfile))) 4776 (write-region (point-min) (point-max) tmpfile))))
4774 4777
4775 ;; If tramp-decoding-function is not defined for this 4778 ;; If tramp-decoding-function is not defined for this
4776 ;; method, we invoke tramp-decoding-command instead. 4779 ;; method, we invoke tramp-decoding-command instead.
@@ -4780,14 +4783,14 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
4780 (let (file-name-handler-alist 4783 (let (file-name-handler-alist
4781 (coding-system-for-write 'binary)) 4784 (coding-system-for-write 'binary))
4782 (write-region (point-min) (point-max) tmpfile2)) 4785 (write-region (point-min) (point-max) tmpfile2))
4783 (tramp-message 4786 (with-progress-reporter
4784 v 5 "Decoding remote file %s with command %s..." 4787 v 3 (format "Decoding remote file %s with command %s"
4785 filename loc-dec) 4788 filename loc-dec)
4786 (unwind-protect 4789 (unwind-protect
4787 (tramp-call-local-coding-command loc-dec tmpfile2 tmpfile) 4790 (tramp-call-local-coding-command
4788 (tramp-compat-delete-file tmpfile2 'force)))) 4791 loc-dec tmpfile2 tmpfile)
4792 (tramp-compat-delete-file tmpfile2 'force)))))
4789 4793
4790 (tramp-message v 5 "Decoding remote file %s...done" filename)
4791 ;; Set proper permissions. 4794 ;; Set proper permissions.
4792 (set-file-modes tmpfile (tramp-default-file-modes filename)) 4795 (set-file-modes tmpfile (tramp-default-file-modes filename))
4793 ;; Set local user ownership. 4796 ;; Set local user ownership.
@@ -4843,7 +4846,7 @@ coding system might not be determined. This function repairs it."
4843 "Like `insert-file-contents' for Tramp files." 4846 "Like `insert-file-contents' for Tramp files."
4844 (barf-if-buffer-read-only) 4847 (barf-if-buffer-read-only)
4845 (setq filename (expand-file-name filename)) 4848 (setq filename (expand-file-name filename))
4846 (let (coding-system-used result local-copy remote-copy) 4849 (let (result local-copy remote-copy)
4847 (with-parsed-tramp-file-name filename nil 4850 (with-parsed-tramp-file-name filename nil
4848 (unwind-protect 4851 (unwind-protect
4849 (if (not (file-exists-p filename)) 4852 (if (not (file-exists-p filename))
@@ -4914,27 +4917,16 @@ coding system might not be determined. This function repairs it."
4914 (setq tramp-temp-buffer-file-name local-copy) 4917 (setq tramp-temp-buffer-file-name local-copy)
4915 (put 'tramp-temp-buffer-file-name 'permanent-local t)) 4918 (put 'tramp-temp-buffer-file-name 'permanent-local t))
4916 4919
4917 (tramp-message 4920 (with-progress-reporter
4918 v 4 "Inserting local temp file `%s'..." local-copy) 4921 v 3 (format "Inserting local temp file `%s'" local-copy)
4919 4922 ;; We must ensure that `file-coding-system-alist'
4920 ;; We must ensure that `file-coding-system-alist' 4923 ;; matches `local-copy'.
4921 ;; matches `local-copy'. 4924 (let ((file-coding-system-alist
4922 (let ((file-coding-system-alist 4925 (tramp-find-file-name-coding-system-alist
4923 (tramp-find-file-name-coding-system-alist 4926 filename local-copy)))
4924 filename local-copy))) 4927 (setq result
4925 (setq result 4928 (insert-file-contents
4926 (insert-file-contents 4929 local-copy nil nil nil replace))))))
4927 local-copy nil nil nil replace))
4928 ;; Now `last-coding-system-used' has right value.
4929 ;; Remember it.
4930 (when (boundp 'last-coding-system-used)
4931 (setq coding-system-used
4932 (symbol-value 'last-coding-system-used))))
4933
4934 (tramp-message
4935 v 4 "Inserting local temp file `%s'...done" local-copy)
4936 (when (boundp 'last-coding-system-used)
4937 (set 'last-coding-system-used coding-system-used))))
4938 4930
4939 ;; Save exit. 4931 ;; Save exit.
4940 (progn 4932 (progn
@@ -5194,15 +5186,14 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
5194 ;; Use inline file transfer. 5186 ;; Use inline file transfer.
5195 (rem-dec 5187 (rem-dec
5196 ;; Encode tmpfile. 5188 ;; Encode tmpfile.
5197 (tramp-message v 5 "Encoding region...")
5198 (unwind-protect 5189 (unwind-protect
5199 (with-temp-buffer 5190 (with-temp-buffer
5200 (set-buffer-multibyte nil) 5191 (set-buffer-multibyte nil)
5201 ;; Use encoding function or command. 5192 ;; Use encoding function or command.
5202 (if (functionp loc-enc) 5193 (if (functionp loc-enc)
5203 (progn 5194 (with-progress-reporter
5204 (tramp-message 5195 v 3 (format "Encoding region using function `%s'"
5205 v 5 "Encoding region using function `%s'..." loc-enc) 5196 loc-enc)
5206 (let ((coding-system-for-read 'binary)) 5197 (let ((coding-system-for-read 'binary))
5207 (insert-file-contents-literally tmpfile)) 5198 (insert-file-contents-literally tmpfile))
5208 ;; The following `let' is a workaround for the 5199 ;; The following `let' is a workaround for the
@@ -5218,59 +5209,61 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
5218 (tramp-compat-temporary-file-directory))) 5209 (tramp-compat-temporary-file-directory)))
5219 (funcall loc-enc (point-min) (point-max)))) 5210 (funcall loc-enc (point-min) (point-max))))
5220 5211
5221 (tramp-message 5212 (with-progress-reporter
5222 v 5 "Encoding region using command `%s'..." loc-enc) 5213 v 3 (format "Encoding region using command `%s'"
5223 (unless (zerop (tramp-call-local-coding-command 5214 loc-enc)
5224 loc-enc tmpfile t)) 5215 (unless (zerop (tramp-call-local-coding-command
5225 (tramp-error 5216 loc-enc tmpfile t))
5226 v 'file-error 5217 (tramp-error
5227 "Cannot write to `%s', local encoding command `%s' failed" 5218 v 'file-error
5228 filename loc-enc))) 5219 (concat "Cannot write to `%s', "
5220 "local encoding command `%s' failed")
5221 filename loc-enc))))
5229 5222
5230 ;; Send buffer into remote decoding command which 5223 ;; Send buffer into remote decoding command which
5231 ;; writes to remote file. Because this happens on 5224 ;; writes to remote file. Because this happens on
5232 ;; the remote host, we cannot use the function. 5225 ;; the remote host, we cannot use the function.
5233 (goto-char (point-max)) 5226 (with-progress-reporter
5234 (unless (bolp) (newline)) 5227 v 3
5235 (tramp-message 5228 (format "Decoding region into remote file %s" filename)
5236 v 5 "Decoding region into remote file %s..." filename) 5229 (goto-char (point-max))
5237 (tramp-send-command 5230 (unless (bolp) (newline))
5238 v 5231 (tramp-send-command
5239 (format 5232 v
5240 (concat rem-dec " <<'EOF'\n%sEOF") 5233 (format
5241 (tramp-shell-quote-argument localname) 5234 (concat rem-dec " <<'EOF'\n%sEOF")
5242 (buffer-string))) 5235 (tramp-shell-quote-argument localname)
5243 (tramp-barf-unless-okay 5236 (buffer-string)))
5244 v nil 5237 (tramp-barf-unless-okay
5245 "Couldn't write region to `%s', decode using `%s' failed" 5238 v nil
5246 filename rem-dec) 5239 "Couldn't write region to `%s', decode using `%s' failed"
5247 ;; When `file-precious-flag' is set, the region is 5240 filename rem-dec)
5248 ;; written to a temporary file. Check that the 5241 ;; When `file-precious-flag' is set, the region is
5249 ;; checksum is equal to that from the local tmpfile. 5242 ;; written to a temporary file. Check that the
5250 (when file-precious-flag 5243 ;; checksum is equal to that from the local tmpfile.
5251 (erase-buffer) 5244 (when file-precious-flag
5252 (and 5245 (erase-buffer)
5253 ;; cksum runs locally, if possible. 5246 (and
5254 (zerop (tramp-local-call-process "cksum" tmpfile t)) 5247 ;; cksum runs locally, if possible.
5255 ;; cksum runs remotely. 5248 (zerop (tramp-local-call-process "cksum" tmpfile t))
5256 (zerop 5249 ;; cksum runs remotely.
5257 (tramp-send-command-and-check 5250 (zerop
5258 v 5251 (tramp-send-command-and-check
5259 (format 5252 v
5260 "cksum <%s" (tramp-shell-quote-argument localname)))) 5253 (format
5261 ;; ... they are different. 5254 "cksum <%s"
5262 (not 5255 (tramp-shell-quote-argument localname))))
5263 (string-equal 5256 ;; ... they are different.
5264 (buffer-string) 5257 (not
5265 (with-current-buffer (tramp-get-buffer v) 5258 (string-equal
5266 (buffer-string)))) 5259 (buffer-string)
5267 (tramp-error 5260 (with-current-buffer (tramp-get-buffer v)
5268 v 'file-error 5261 (buffer-string))))
5269 (concat "Couldn't write region to `%s'," 5262 (tramp-error
5270 " decode using `%s' failed") 5263 v 'file-error
5271 filename rem-dec))) 5264 (concat "Couldn't write region to `%s',"
5272 (tramp-message 5265 " decode using `%s' failed")
5273 v 5 "Decoding region into remote file %s...done" filename)) 5266 filename rem-dec)))))
5274 5267
5275 ;; Save exit. 5268 ;; Save exit.
5276 (tramp-compat-delete-file tmpfile 'force))) 5269 (tramp-compat-delete-file tmpfile 'force)))
@@ -6287,14 +6280,13 @@ Only send the definition if it has not already been done."
6287 (let* ((p (tramp-get-connection-process vec)) 6280 (let* ((p (tramp-get-connection-process vec))
6288 (scripts (tramp-get-connection-property p "scripts" nil))) 6281 (scripts (tramp-get-connection-property p "scripts" nil)))
6289 (unless (member name scripts) 6282 (unless (member name scripts)
6290 (tramp-message vec 5 "Sending script `%s'..." name) 6283 (with-progress-reporter vec 5 (format "Sending script `%s'" name)
6291 ;; The script could contain a call of Perl. This is masked with `%s'. 6284 ;; The script could contain a call of Perl. This is masked with `%s'.
6292 (tramp-send-command-and-check 6285 (tramp-send-command-and-check
6293 vec 6286 vec
6294 (format "%s () {\n%s\n}" name 6287 (format "%s () {\n%s\n}" name
6295 (format script (tramp-get-remote-perl vec)))) 6288 (format script (tramp-get-remote-perl vec))))
6296 (tramp-set-connection-property p "scripts" (cons name scripts)) 6289 (tramp-set-connection-property p "scripts" (cons name scripts))))))
6297 (tramp-message vec 5 "Sending script `%s'...done." name))))
6298 6290
6299(defun tramp-set-auto-save () 6291(defun tramp-set-auto-save ()
6300 (when (and ;; ange-ftp has its own auto-save mechanism 6292 (when (and ;; ange-ftp has its own auto-save mechanism
@@ -6573,7 +6565,7 @@ file exists and nonzero exit status otherwise."
6573 (setq extra-args (cdr item)))) 6565 (setq extra-args (cdr item))))
6574 (when extra-args (setq shell (concat shell " " extra-args)))) 6566 (when extra-args (setq shell (concat shell " " extra-args))))
6575 (tramp-message 6567 (tramp-message
6576 vec 5 "Starting remote shell `%s' for tilde expansion..." shell) 6568 vec 5 "Starting remote shell `%s' for tilde expansion" shell)
6577 (let ((tramp-end-of-output tramp-initial-end-of-output)) 6569 (let ((tramp-end-of-output tramp-initial-end-of-output))
6578 (tramp-send-command 6570 (tramp-send-command
6579 vec 6571 vec
@@ -6581,13 +6573,12 @@ file exists and nonzero exit status otherwise."
6581 (shell-quote-argument tramp-end-of-output) shell) 6573 (shell-quote-argument tramp-end-of-output) shell)
6582 t)) 6574 t))
6583 ;; Setting prompts. 6575 ;; Setting prompts.
6584 (tramp-message vec 5 "Setting remote shell prompt...") 6576 (with-progress-reporter vec 5 (format "Setting remote shell prompt")
6585 (tramp-send-command 6577 (tramp-send-command
6586 vec (format "PS1=%s" (shell-quote-argument tramp-end-of-output)) t) 6578 vec (format "PS1=%s" (shell-quote-argument tramp-end-of-output)) t)
6587 (tramp-send-command vec "PS2=''" t) 6579 (tramp-send-command vec "PS2=''" t)
6588 (tramp-send-command vec "PS3=''" t) 6580 (tramp-send-command vec "PS3=''" t)
6589 (tramp-send-command vec "PROMPT_COMMAND=''" t) 6581 (tramp-send-command vec "PROMPT_COMMAND=''" t)))
6590 (tramp-message vec 5 "Setting remote shell prompt...done"))
6591 6582
6592 (t (tramp-message 6583 (t (tramp-message
6593 vec 5 "Remote `%s' groks tilde expansion, good" 6584 vec 5 "Remote `%s' groks tilde expansion, good"
@@ -7424,11 +7415,11 @@ connection if a previous connection has died for some reason."
7424 (tramp-get-buffer vec) 7415 (tramp-get-buffer vec)
7425 (if (zerop (length (tramp-file-name-user vec))) 7416 (if (zerop (length (tramp-file-name-user vec)))
7426 (tramp-message 7417 (tramp-message
7427 vec 3 "Opening connection for %s using %s..." 7418 vec 3 "Opening connection for %s using %s"
7428 (tramp-file-name-host vec) 7419 (tramp-file-name-host vec)
7429 (tramp-file-name-method vec)) 7420 (tramp-file-name-method vec))
7430 (tramp-message 7421 (tramp-message
7431 vec 3 "Opening connection for %s@%s using %s..." 7422 vec 3 "Opening connection for %s@%s using %s"
7432 (tramp-file-name-user vec) 7423 (tramp-file-name-user vec)
7433 (tramp-file-name-host vec) 7424 (tramp-file-name-host vec)
7434 (tramp-file-name-method vec))) 7425 (tramp-file-name-method vec)))
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog
index 7b55f97a21b..f157fc5d291 100644
--- a/lisp/org/ChangeLog
+++ b/lisp/org/ChangeLog
@@ -127,7 +127,7 @@
127 (org-ascii-replace-entities): New function. 127 (org-ascii-replace-entities): New function.
128 128
1292010-04-10 Carsten Dominik <carsten.dominik@gmail.com> 1292010-04-10 Carsten Dominik <carsten.dominik@gmail.com>
130 Ulf Stegemann <ulf@zeitform.de> 130 Ulf Stegemann <ulf@zeitform.de>
131 131
132 * org-entities.el: New file. 132 * org-entities.el: New file.
133 133
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index 56fc8032541..10267a6b2dc 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -1501,6 +1501,11 @@ defun."
1501 (interactive "p") 1501 (interactive "p")
1502 (or arg (setq arg 1)) 1502 (or arg (setq arg 1))
1503 1503
1504 (or (not (eq this-command 'c-beginning-of-defun))
1505 (eq last-command 'c-beginning-of-defun)
1506 (and transient-mark-mode mark-active)
1507 (push-mark))
1508
1504 (c-save-buffer-state 1509 (c-save-buffer-state
1505 (beginning-of-defun-function end-of-defun-function 1510 (beginning-of-defun-function end-of-defun-function
1506 (start (point)) 1511 (start (point))
@@ -1604,6 +1609,11 @@ the open-parenthesis that starts a defun; see `beginning-of-defun'."
1604 (interactive "p") 1609 (interactive "p")
1605 (or arg (setq arg 1)) 1610 (or arg (setq arg 1))
1606 1611
1612 (or (not (eq this-command 'c-end-of-defun))
1613 (eq last-command 'c-end-of-defun)
1614 (and transient-mark-mode mark-active)
1615 (push-mark))
1616
1607 (c-save-buffer-state 1617 (c-save-buffer-state
1608 (beginning-of-defun-function end-of-defun-function 1618 (beginning-of-defun-function end-of-defun-function
1609 (start (point)) 1619 (start (point))
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 610fa14489a..eca6d5fbe7b 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1480,7 +1480,7 @@ frequently editing existing scripts with different styles.")
1480;; mode-command and utility functions 1480;; mode-command and utility functions
1481 1481
1482;;;###autoload 1482;;;###autoload
1483(defun sh-mode () 1483(define-derived-mode sh-mode prog-mode "Shell-script"
1484 "Major mode for editing shell scripts. 1484 "Major mode for editing shell scripts.
1485This mode works for many shells, since they all have roughly the same syntax, 1485This mode works for many shells, since they all have roughly the same syntax,
1486as far as commands, arguments, variables, pipes, comments etc. are concerned. 1486as far as commands, arguments, variables, pipes, comments etc. are concerned.
@@ -1533,11 +1533,6 @@ indicate what shell it is use `sh-alias-alist' to translate.
1533 1533
1534If your shell gives error messages with line numbers, you can use \\[executable-interpret] 1534If your shell gives error messages with line numbers, you can use \\[executable-interpret]
1535with your script for an edit-interpret-debug cycle." 1535with your script for an edit-interpret-debug cycle."
1536 (interactive)
1537 (kill-all-local-variables)
1538 (setq major-mode 'sh-mode
1539 mode-name "Shell-script")
1540 (use-local-map sh-mode-map)
1541 (make-local-variable 'skeleton-end-hook) 1536 (make-local-variable 'skeleton-end-hook)
1542 (make-local-variable 'paragraph-start) 1537 (make-local-variable 'paragraph-start)
1543 (make-local-variable 'paragraph-separate) 1538 (make-local-variable 'paragraph-separate)
@@ -1613,8 +1608,7 @@ with your script for an edit-interpret-debug cycle."
1613 "sh") 1608 "sh")
1614 (t 1609 (t
1615 sh-shell-file)) 1610 sh-shell-file))
1616 nil nil) 1611 nil nil))
1617 (run-mode-hooks 'sh-mode-hook))
1618 1612
1619;;;###autoload 1613;;;###autoload
1620(defalias 'shell-script-mode 'sh-mode) 1614(defalias 'shell-script-mode 'sh-mode)
diff --git a/lisp/scroll-all.el b/lisp/scroll-all.el
index 458e2be07a1..4f9747cb90a 100644
--- a/lisp/scroll-all.el
+++ b/lisp/scroll-all.el
@@ -90,9 +90,9 @@
90 (call-interactively 'scroll-all-scroll-down-all)) 90 (call-interactively 'scroll-all-scroll-down-all))
91 ((eq this-command 'previous-line) 91 ((eq this-command 'previous-line)
92 (call-interactively 'scroll-all-scroll-up-all)) 92 (call-interactively 'scroll-all-scroll-up-all))
93 ((eq this-command 'scroll-up) 93 ((memq this-command '(scroll-up scroll-up-command))
94 (call-interactively 'scroll-all-page-down-all)) 94 (call-interactively 'scroll-all-page-down-all))
95 ((eq this-command 'scroll-down) 95 ((memq this-command '(scroll-down scroll-down-command))
96 (call-interactively 'scroll-all-page-up-all)) 96 (call-interactively 'scroll-all-page-up-all))
97 ((eq this-command 'beginning-of-buffer) 97 ((eq this-command 'beginning-of-buffer)
98 (call-interactively 'scroll-all-beginning-of-buffer-all)) 98 (call-interactively 'scroll-all-beginning-of-buffer-all))
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index c88b32f64cc..94eb721e4cf 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2630,11 +2630,22 @@ Keeps argument list for future ispell invocations for no async support."
2630 (or ispell-local-dictionary ispell-dictionary "default")) 2630 (or ispell-local-dictionary ispell-dictionary "default"))
2631 (sit-for 0) 2631 (sit-for 0)
2632 (setq ispell-library-directory (ispell-check-version) 2632 (setq ispell-library-directory (ispell-check-version)
2633 ispell-process-directory default-directory
2634 ispell-process (ispell-start-process) 2633 ispell-process (ispell-start-process)
2635 ispell-filter nil 2634 ispell-filter nil
2636 ispell-filter-continue nil 2635 ispell-filter-continue nil)
2637 ispell-process-buffer-name (buffer-name)) 2636 ;; When spellchecking minibuffer contents, make sure ispell process
2637 ;; is not restarted every time the minibuffer is killed.
2638 (if (window-minibuffer-p)
2639 (if (fboundp 'minibuffer-selected-window)
2640 ;; Assign ispell process to parent buffer
2641 (setq ispell-process-directory default-directory
2642 ispell-process-buffer-name (window-buffer (minibuffer-selected-window)))
2643 ;; Force `ispell-process-directory' to $HOME and use a dummy name
2644 (setq ispell-process-directory (expand-file-name "~/")
2645 ispell-process-buffer-name " * Minibuffer-has-spellcheck-enabled"))
2646 ;; Not in a minibuffer
2647 (setq ispell-process-directory default-directory
2648 ispell-process-buffer-name (buffer-name)))
2638 (if ispell-async-processp 2649 (if ispell-async-processp
2639 (set-process-filter ispell-process 'ispell-filter)) 2650 (set-process-filter ispell-process 'ispell-filter))
2640 ;; protect against bogus binding of `enable-multibyte-characters' in XEmacs 2651 ;; protect against bogus binding of `enable-multibyte-characters' in XEmacs
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index b9d52acdeba..6cd4121bd10 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -101,6 +101,11 @@ This takes effect when first loading the `sgml-mode' library.")
101 (define-key map "\C-c\^?" 'sgml-delete-tag) 101 (define-key map "\C-c\^?" 'sgml-delete-tag)
102 (define-key map "\C-c?" 'sgml-tag-help) 102 (define-key map "\C-c?" 'sgml-tag-help)
103 (define-key map "\C-c/" 'sgml-close-tag) 103 (define-key map "\C-c/" 'sgml-close-tag)
104
105 ;; Redundant keybindings, for consistency with TeX mode.
106 (define-key map "\C-c\C-o" 'sgml-tag)
107 (define-key map "\C-c\C-e" 'sgml-close-tag)
108
104 (define-key map "\C-c8" 'sgml-name-8bit-mode) 109 (define-key map "\C-c8" 'sgml-name-8bit-mode)
105 (define-key map "\C-c\C-v" 'sgml-validate) 110 (define-key map "\C-c\C-v" 'sgml-validate)
106 (when sgml-quick-keys 111 (when sgml-quick-keys
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 5fc92a92d37..da0c5396f2c 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -808,6 +808,11 @@ END is the position of the first delimiter after \verb."
808 (define-key map "\C-c\C-c" 'tex-compile) 808 (define-key map "\C-c\C-c" 'tex-compile)
809 (define-key map "\C-c\C-i" 'tex-bibtex-file) 809 (define-key map "\C-c\C-i" 'tex-bibtex-file)
810 (define-key map "\C-c\C-o" 'latex-insert-block) 810 (define-key map "\C-c\C-o" 'latex-insert-block)
811
812 ;; Redundant keybindings, for consistency with SGML mode.
813 (define-key map "\C-c\C-t" 'latex-insert-block)
814 (define-key map "\C-c/" 'latex-close-block)
815
811 (define-key map "\C-c\C-e" 'latex-close-block) 816 (define-key map "\C-c\C-e" 'latex-close-block)
812 (define-key map "\C-c\C-u" 'tex-goto-last-unclosed-latex-block) 817 (define-key map "\C-c\C-u" 'tex-goto-last-unclosed-latex-block)
813 (define-key map "\C-c\C-m" 'tex-feed-input) 818 (define-key map "\C-c\C-m" 'tex-feed-input)