aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorKenichi Handa2014-07-05 23:07:57 +0900
committerKenichi Handa2014-07-05 23:07:57 +0900
commitaeb894a9a06d84d29b93ca04432d7cbed366e665 (patch)
treee2b73f9a76bc826c7a443e9a8d4fb3b49bdf7332 /lisp
parent763a11d0d0dcf543e89a22c98f55ea07c40ceefa (diff)
parenta984543a4488ed08778eb775d62f7091db117945 (diff)
downloademacs-aeb894a9a06d84d29b93ca04432d7cbed366e665.tar.gz
emacs-aeb894a9a06d84d29b93ca04432d7cbed366e665.zip
merge trunk
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog138
-rw-r--r--lisp/cus-edit.el2
-rw-r--r--lisp/desktop.el9
-rw-r--r--lisp/ehelp.el2
-rw-r--r--lisp/emacs-lisp/lisp.el24
-rw-r--r--lisp/emacs-lisp/pp.el4
-rw-r--r--lisp/emulation/viper.el2
-rw-r--r--lisp/erc/erc.el4
-rw-r--r--lisp/finder.el2
-rw-r--r--lisp/help.el10
-rw-r--r--lisp/man.el272
-rw-r--r--lisp/mouse.el4
-rw-r--r--lisp/net/dbus.el22
-rw-r--r--lisp/net/gnutls.el2
-rw-r--r--lisp/net/tramp-adb.el4
-rw-r--r--lisp/net/tramp-sh.el19
-rw-r--r--lisp/net/tramp.el10
-rw-r--r--lisp/net/trampver.el6
-rw-r--r--lisp/progmodes/f90.el4
-rw-r--r--lisp/progmodes/hideif.el3
-rw-r--r--lisp/progmodes/idlw-complete-structtag.el4
-rw-r--r--lisp/progmodes/idlw-help.el2
-rw-r--r--lisp/progmodes/idlw-shell.el6
-rw-r--r--lisp/progmodes/idlw-toolbar.el2
-rw-r--r--lisp/progmodes/idlwave.el9
-rw-r--r--lisp/progmodes/pascal.el4
-rw-r--r--lisp/progmodes/python.el28
-rw-r--r--lisp/ps-def.el2
-rw-r--r--lisp/rect.el2
-rw-r--r--lisp/simple.el10
-rw-r--r--lisp/vc/ediff-mult.el4
-rw-r--r--lisp/vc/ediff-ptch.el2
-rw-r--r--lisp/vc/ediff.el2
-rw-r--r--lisp/vc/log-edit.el10
-rw-r--r--lisp/vc/vc-git.el4
-rw-r--r--lisp/xt-mouse.el19
36 files changed, 454 insertions, 199 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 0b90c3c98ad..5c91db50037 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,134 @@
12014-07-04 Michael Albinus <michael.albinus@gmx.de>
2
3 * net/dbus.el (dbus-peer-handler): New defun.
4 (dbus-register-service): Register it. (Bug#17858)
5 (dbus-managed-objects-handler): Fix docstring.
6
72014-07-04 Phil Sainty <psainty@orcon.net.nz> (tiny change)
8
9 * emacs-lisp/lisp.el (narrow-to-defun-include-comments): New var.
10 (narrow-to-defun): New arg include-comments, defaulting to it
11 (bug#16328).
12
132014-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
14
15 * rect.el (rectangle--highlight-for-redisplay): Don't pass `orig' with
16 different calling convention to rectangle--unhighlight-for-redisplay.
17
182014-07-03 Michael Albinus <michael.albinus@gmx.de>
19
20 * net/tramp.el (tramp-call-process): Handle error strings.
21
22 * net/tramp-adb.el (tramp-adb-sh-fix-ls-output): Use `bolp'.
23
24 * net/tramp-sh.el (tramp-sh-handle-set-visited-file-modtime)
25 (tramp-sh-handle-verify-visited-file-modtime): Use `point-at-eol'.
26
27 * net/trampver.el: Update release number.
28
292014-07-03 Juri Linkov <juri@jurta.org>
30
31 * desktop.el (desktop-save): Rename arg `auto-save' to
32 `only-if-changed'. Doc fix. (Bug#17873)
33
342014-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
35
36 * mouse.el (mouse-yank-primary, mouse-yank-secondary):
37 Use insert-for-yank (bug#17271).
38
392014-07-03 Leo Liu <sdl.web@gmail.com>
40
41 * emacs-lisp/pp.el (pp-eval-expression, pp-eval-last-sexp):
42 Support lexical-binding.
43
442014-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
45
46 * vc/log-edit.el (log-edit-goto-eoh): New function.
47 (log-edit--match-first-line): Use it (bug#17861).
48
492014-07-03 Glenn Morris <rgm@gnu.org>
50
51 * vc/log-edit.el (log-edit-hook): Add missing :version.
52
532014-07-03 Fabián Ezequiel Gallina <fgallina@gnu.org>
54
55 * progmodes/python.el (python-indent-post-self-insert-function):
56 Enhancements to electric indentation behavior inside
57 parens. (Bug#17658)
58
592014-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
60
61 * ps-def.el (ps-generate-postscript-with-faces1): Don't mess with
62 buffer-invisibility-spec (bug#17867).
63
642014-07-03 Andreas Schwab <schwab@linux-m68k.org>
65
66 * vc/vc-git.el (vc-git-checkin): When operating on the whole tree
67 pass "-a".
68
692014-07-03 Glenn Morris <rgm@gnu.org>
70
71 * cus-edit.el (help):
72 * finder.el (finder-known-keywords):
73 * help.el (help-for-help-internal):
74 * vc/ediff-mult.el (ediff-meta-buffer-verbose-message)
75 (ediff-redraw-registry-buffer):
76 * vc/ediff-ptch.el (ediff-patch-file-internal):
77 Doc fixes re "online" help. (Bug#17803)
78
79 * progmodes/idlwave.el (idlwave): Update url-link for custom group.
80 (idlwave-mode): Doc URL update.
81
822014-07-01 Juri Linkov <juri@jurta.org>
83
84 * man.el: Display man pages immediately and use process-filter
85 to format them asynchronously.
86 (Man-width): Doc fix.
87 (man): Doc fix.
88 (Man-start-calling): Use `with-selected-window' to get
89 `frame-width' and `window-width'.
90 (Man-getpage-in-background): Call `Man-notify-when-ready'
91 immediately after creating a new buffer. Call `Man-mode' and set
92 `mode-line-process' in the created buffer. Set process-filter to
93 `Man-bgproc-filter' in start-process branch. In call-process branch
94 call either `Man-fontify-manpage' or `Man-cleanup-manpage'.
95 Use `Man-start-calling' inside `with-current-buffer'.
96 (Man-fontify-manpage): Don't print messages. Fix boundary condition.
97 (Man-cleanup-manpage): Don't print messages.
98 (Man-bgproc-filter): New function.
99 (Man-bgproc-sentinel): Add `save-excursion' to keep point when
100 user moved it during asynchronous formatting. Move calls of
101 `Man-fontify-manpage' and `Man-cleanup-manpage' to
102 `Man-bgproc-filter'. Move the call of `Man-mode' to
103 `Man-getpage-in-background'. Use `quit-restore-window'
104 instead of `kill-buffer'. Use `message' instead of `error'
105 because errors are caught by process sentinel.
106 (Man-mode): Move calls of `Man-build-page-list',
107 `Man-strip-page-headers', `Man-unindent', `Man-goto-page' to
108 `Man-bgproc-sentinel'. Doc fix. (Bug#2588, bug#5054, bug#9084, bug#17831)
109
110 * man.el (Man-bgproc-sentinel): Use `Man-page-from-arguments'
111 for the message about the man page cleaned up.
112
1132014-07-01 Mario Lang <mlang@delysid.org>
114
115 * net/gnutls.el (gnutls-negotiate): Prevent destructive modification of
116 cosutomization option `gnutls-verify-error'.
117
1182014-07-01 Stefan Monnier <monnier@iro.umontreal.ca>
119
120 * simple.el (deactivate-mark, set-mark-command, handle-shift-selection):
121 Don't keep transient-mark-mode buffer-local when not needed (bug#6316).
122
123 * xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal)
124 (turn-off-xterm-mouse-tracking-on-terminal): Don't burp if the terminal
125 is suspended (bug#17857).
126
1272014-07-01 Michael Albinus <michael.albinus@gmx.de>
128
129 * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
130 Prefer utf-8 coding. (Bug#17859)
131
12014-06-30 Fabián Ezequiel Gallina <fgallina@gnu.org> 1322014-06-30 Fabián Ezequiel Gallina <fgallina@gnu.org>
2 133
3 * emacs-lisp/subr-x.el (string-reverse): Define as obsolete alias 134 * emacs-lisp/subr-x.el (string-reverse): Define as obsolete alias
@@ -35,8 +166,7 @@
35 Don't call c-parse-state when c++-template-syntax-table is active. 166 Don't call c-parse-state when c++-template-syntax-table is active.
36 * progmodes/cc-engine.el (c-guess-continued-construct CASE G) 167 * progmodes/cc-engine.el (c-guess-continued-construct CASE G)
37 (c-guess-basic-syntax CASE 5D.3): Rearrange so that 168 (c-guess-basic-syntax CASE 5D.3): Rearrange so that
38 c-syntactic-skip-backwards isn't called with the pertinent syntax 169 c-syntactic-skip-backwards isn't called with the pertinent syntax table.
39 table.
40 170
412014-06-28 Stephen Berman <stephen.berman@gmx.net> 1712014-06-28 Stephen Berman <stephen.berman@gmx.net>
42 172
@@ -1638,7 +1768,7 @@
1638 Remove HISTFILE and HISTSIZE; it's too late to set them here. 1768 Remove HISTFILE and HISTSIZE; it's too late to set them here.
1639 Add :version entry. 1769 Add :version entry.
1640 (tramp-open-shell): Do not let-bind `tramp-end-of-output'. 1770 (tramp-open-shell): Do not let-bind `tramp-end-of-output'.
1641 Add "HISTSIZE=/dev/null" to the shell's env arguments. Do not send 1771 Add "HISTFILE=/dev/null" to the shell's env arguments. Do not send
1642 extra "PSx=..." commands. 1772 extra "PSx=..." commands.
1643 (tramp-maybe-open-connection): Setenv HISTFILE to /dev/null. 1773 (tramp-maybe-open-connection): Setenv HISTFILE to /dev/null.
1644 (Bug#17295) 1774 (Bug#17295)
@@ -3338,7 +3468,7 @@
33382014-03-10 Michael Albinus <michael.albinus@gmx.de> 34682014-03-10 Michael Albinus <michael.albinus@gmx.de>
3339 3469
3340 * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): 3470 * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
3341 Do not add `nil' to the environment, when there's no remote `locale'. 3471 Do not add nil to the environment, when there's no remote `locale'.
3342 (tramp-find-inline-encoding): Check, that the remote host has 3472 (tramp-find-inline-encoding): Check, that the remote host has
3343 installed perl, before sending scripts. 3473 installed perl, before sending scripts.
3344 3474
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 212e29069eb..b54898a171c 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -324,7 +324,7 @@
324 :group 'emacs) 324 :group 'emacs)
325 325
326(defgroup help nil 326(defgroup help nil
327 "Support for on-line help systems." 327 "Support for Emacs help systems."
328 :group 'emacs) 328 :group 'emacs)
329 329
330(defgroup multimedia nil 330(defgroup multimedia nil
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 26d288bf9cd..4bb6fba3532 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -942,12 +942,13 @@ Frames with a non-nil `desktop-dont-save' parameter are not saved."
942 :predicate #'desktop--check-dont-save)))) 942 :predicate #'desktop--check-dont-save))))
943 943
944;;;###autoload 944;;;###autoload
945(defun desktop-save (dirname &optional release auto-save) 945(defun desktop-save (dirname &optional release only-if-changed)
946 "Save the desktop in a desktop file. 946 "Save the desktop in a desktop file.
947Parameter DIRNAME specifies where to save the desktop file. 947Parameter DIRNAME specifies where to save the desktop file.
948Optional parameter RELEASE says whether we're done with this desktop. 948Optional parameter RELEASE says whether we're done with this desktop.
949If AUTO-SAVE is non-nil, compare the saved contents to the one last saved, 949If ONLY-IF-CHANGED is non-nil, compare the current desktop information
950and don't save the buffer if they are the same." 950to that in the desktop file, and if the desktop information has not
951changed since it was last saved then do not rewrite the file."
951 (interactive (list 952 (interactive (list
952 ;; Or should we just use (car desktop-path)? 953 ;; Or should we just use (car desktop-path)?
953 (let ((default (if (member "." desktop-path) 954 (let ((default (if (member "." desktop-path)
@@ -1020,7 +1021,7 @@ and don't save the buffer if they are the same."
1020 1021
1021 (setq default-directory desktop-dirname) 1022 (setq default-directory desktop-dirname)
1022 ;; When auto-saving, avoid writing if nothing has changed since the last write. 1023 ;; When auto-saving, avoid writing if nothing has changed since the last write.
1023 (let* ((beg (and auto-save 1024 (let* ((beg (and only-if-changed
1024 (save-excursion 1025 (save-excursion
1025 (goto-char (point-min)) 1026 (goto-char (point-min))
1026 ;; Don't check the header with changing timestamp 1027 ;; Don't check the header with changing timestamp
diff --git a/lisp/ehelp.el b/lisp/ehelp.el
index dd6c6c4cb28..46db552c3f5 100644
--- a/lisp/ehelp.el
+++ b/lisp/ehelp.el
@@ -25,7 +25,7 @@
25;;; Commentary: 25;;; Commentary:
26 26
27;; This package provides a pre-packaged `Electric Help Mode' for 27;; This package provides a pre-packaged `Electric Help Mode' for
28;; browsing on-line help screens. There is one entry point, 28;; browsing Emacs help screens. There is one entry point,
29;; `with-electric-help'; all you have to give it is a no-argument 29;; `with-electric-help'; all you have to give it is a no-argument
30;; function that generates the actual text of the help into the current 30;; function that generates the actual text of the help into the current
31;; buffer. 31;; buffer.
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index 23b021df177..30fee64635c 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -522,11 +522,15 @@ it marks the next defun after the ones already marked."
522 (beginning-of-defun)) 522 (beginning-of-defun))
523 (re-search-backward "^\n" (- (point) 1) t))))) 523 (re-search-backward "^\n" (- (point) 1) t)))))
524 524
525(defun narrow-to-defun (&optional _arg) 525(defvar narrow-to-defun-include-comments nil
526 "If non-nil, `narrow-to-defun' will also show comments preceding the defun.")
527
528(defun narrow-to-defun (&optional include-comments)
526 "Make text outside current defun invisible. 529 "Make text outside current defun invisible.
527The defun visible is the one that contains point or follows point. 530The current defun is the one that contains point or follows point.
528Optional ARG is ignored." 531Preceding comments are included if INCLUDE-COMMENTS is non-nil.
529 (interactive) 532Interactively, the behavior depends on `narrow-to-defun-include-comments'."
533 (interactive (list narrow-to-defun-include-comments))
530 (save-excursion 534 (save-excursion
531 (widen) 535 (widen)
532 (let ((opoint (point)) 536 (let ((opoint (point))
@@ -562,6 +566,18 @@ Optional ARG is ignored."
562 (setq end (point)) 566 (setq end (point))
563 (beginning-of-defun) 567 (beginning-of-defun)
564 (setq beg (point))) 568 (setq beg (point)))
569 (when include-comments
570 (goto-char beg)
571 ;; Move back past all preceding comments (and whitespace).
572 (when (forward-comment -1)
573 (while (forward-comment -1))
574 ;; Move forwards past any page breaks within these comments.
575 (when (and page-delimiter (not (string= page-delimiter "")))
576 (while (re-search-forward page-delimiter beg t)))
577 ;; Lastly, move past any empty lines.
578 (skip-chars-forward "[:space:]\n")
579 (beginning-of-line)
580 (setq beg (point))))
565 (goto-char end) 581 (goto-char end)
566 (re-search-backward "^\n" (- (point) 1) t) 582 (re-search-backward "^\n" (- (point) 1) t)
567 (narrow-to-region beg end)))) 583 (narrow-to-region beg end))))
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el
index 0e4139e1aeb..dd012fab9da 100644
--- a/lisp/emacs-lisp/pp.el
+++ b/lisp/emacs-lisp/pp.el
@@ -129,7 +129,7 @@ Also add the value to the front of the list in the variable `values'."
129 (interactive 129 (interactive
130 (list (read--expression "Eval: "))) 130 (list (read--expression "Eval: ")))
131 (message "Evaluating...") 131 (message "Evaluating...")
132 (setq values (cons (eval expression) values)) 132 (setq values (cons (eval expression lexical-binding) values))
133 (pp-display-expression (car values) "*Pp Eval Output*")) 133 (pp-display-expression (car values) "*Pp Eval Output*"))
134 134
135;;;###autoload 135;;;###autoload
@@ -165,7 +165,7 @@ With argument, pretty-print output into current buffer.
165Ignores leading comment characters." 165Ignores leading comment characters."
166 (interactive "P") 166 (interactive "P")
167 (if arg 167 (if arg
168 (insert (pp-to-string (eval (pp-last-sexp)))) 168 (insert (pp-to-string (eval (pp-last-sexp) lexical-binding)))
169 (pp-eval-expression (pp-last-sexp)))) 169 (pp-eval-expression (pp-last-sexp))))
170 170
171;;;###autoload 171;;;###autoload
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index 650b8acbb81..d1353bdc8fa 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -107,7 +107,7 @@
107;; ---------------- 107;; ----------------
108;; Bug reports and ideas contributed by many users have helped 108;; Bug reports and ideas contributed by many users have helped
109;; improve Viper and the various versions of VIP. 109;; improve Viper and the various versions of VIP.
110;; See the on-line manual for a complete list of contributors. 110;; See the manual for a complete list of contributors.
111;; 111;;
112;; 112;;
113;;; Notes: 113;;; Notes:
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 8d2ea62b231..d43be54de2b 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -9,7 +9,7 @@
9;; Andreas Fuchs (afs@void.at) 9;; Andreas Fuchs (afs@void.at)
10;; Gergely Nagy (algernon@midgard.debian.net) 10;; Gergely Nagy (algernon@midgard.debian.net)
11;; David Edmondson (dme@dme.org) 11;; David Edmondson (dme@dme.org)
12;; Kelvin White <kelvin.white77@gmail.com> 12;; Kelvin White (kwhite@gnu.org)
13;; Maintainer: emacs-devel@gnu.org 13;; Maintainer: emacs-devel@gnu.org
14;; Keywords: IRC, chat, client, Internet 14;; Keywords: IRC, chat, client, Internet
15;; Version: 5.3 15;; Version: 5.3
@@ -4252,7 +4252,7 @@ also `erc-format-nick-function'."
4252 (let ((nick (erc-server-user-nickname user))) 4252 (let ((nick (erc-server-user-nickname user)))
4253 (concat (erc-propertize 4253 (concat (erc-propertize
4254 (erc-get-user-mode-prefix nick) 4254 (erc-get-user-mode-prefix nick)
4255 'face 'erc-nick-prefix-face) nick nick)))) 4255 'face 'erc-nick-prefix-face) nick))))
4256 4256
4257(defun erc-format-my-nick () 4257(defun erc-format-my-nick ()
4258 "Return the beginning of this user's message, correctly propertized." 4258 "Return the beginning of this user's message, correctly propertized."
diff --git a/lisp/finder.el b/lisp/finder.el
index 092a2ddd8a4..bb5b441e26d 100644
--- a/lisp/finder.el
+++ b/lisp/finder.el
@@ -52,7 +52,7 @@
52 (frames . "Emacs frames and window systems") 52 (frames . "Emacs frames and window systems")
53 (games . "games, jokes and amusements") 53 (games . "games, jokes and amusements")
54 (hardware . "interfacing with system hardware") 54 (hardware . "interfacing with system hardware")
55 (help . "on-line help systems") 55 (help . "Emacs help systems")
56 (hypermedia . "links between text or other media types") 56 (hypermedia . "links between text or other media types")
57 (i18n . "internationalization and character-set support") 57 (i18n . "internationalization and character-set support")
58 (internal . "code for Emacs internals, build process, defaults") 58 (internal . "code for Emacs internals, build process, defaults")
diff --git a/lisp/help.el b/lisp/help.el
index 8ba3d86004b..63a658f391c 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -23,7 +23,7 @@
23 23
24;;; Commentary: 24;;; Commentary:
25 25
26;; This code implements GNU Emacs's on-line help system, the one invoked by 26;; This code implements GNU Emacs's built-in help system, the one invoked by
27;; `M-x help-for-help'. 27;; `M-x help-for-help'.
28 28
29;;; Code: 29;;; Code:
@@ -198,13 +198,13 @@ d PATTERN Show a list of functions, variables, and other items whose
198 documentation matches the PATTERN (a list of words or a regexp). 198 documentation matches the PATTERN (a list of words or a regexp).
199e Go to the *Messages* buffer which logs echo-area messages. 199e Go to the *Messages* buffer which logs echo-area messages.
200f FUNCTION Display documentation for the given function. 200f FUNCTION Display documentation for the given function.
201F COMMAND Show the on-line manual's section that describes the command. 201F COMMAND Show the Emacs manual's section that describes the command.
202g Display information about the GNU project. 202g Display information about the GNU project.
203h Display the HELLO file which illustrates various scripts. 203h Display the HELLO file which illustrates various scripts.
204i Start the Info documentation reader: read on-line manuals. 204i Start the Info documentation reader: read included manuals.
205I METHOD Describe a specific input method, or RET for current. 205I METHOD Describe a specific input method, or RET for current.
206k KEYS Display the full documentation for the key sequence. 206k KEYS Display the full documentation for the key sequence.
207K KEYS Show the on-line manual's section for the command bound to KEYS. 207K KEYS Show the Emacs manual's section for the command bound to KEYS.
208l Show last 300 input keystrokes (lossage). 208l Show last 300 input keystrokes (lossage).
209L LANG-ENV Describes a specific language environment, or RET for current. 209L LANG-ENV Describes a specific language environment, or RET for current.
210m Display documentation of current minor modes and current major mode, 210m Display documentation of current minor modes and current major mode,
@@ -214,7 +214,7 @@ p TOPIC Find packages matching a given topic keyword.
214P PACKAGE Describe the given Emacs Lisp package. 214P PACKAGE Describe the given Emacs Lisp package.
215r Display the Emacs manual in Info mode. 215r Display the Emacs manual in Info mode.
216s Display contents of current syntax table, plus explanations. 216s Display contents of current syntax table, plus explanations.
217S SYMBOL Show the section for the given symbol in the on-line manual 217S SYMBOL Show the section for the given symbol in the Info manual
218 for the programming language used in this buffer. 218 for the programming language used in this buffer.
219t Start the Emacs learn-by-doing tutorial. 219t Start the Emacs learn-by-doing tutorial.
220v VARIABLE Display the given variable's documentation and value. 220v VARIABLE Display the given variable's documentation and value.
diff --git a/lisp/man.el b/lisp/man.el
index 35fab2040a5..4b235302f8b 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -173,13 +173,12 @@ Any other value of `Man-notify-method' is equivalent to `meek'."
173 173
174(defcustom Man-width nil 174(defcustom Man-width nil
175 "Number of columns for which manual pages should be formatted. 175 "Number of columns for which manual pages should be formatted.
176If nil, the width of the window selected at the moment of man 176If nil, use the width of the window where the manpage is displayed.
177invocation is used. If non-nil, the width of the frame selected 177If non-nil, use the width of the frame where the manpage is displayed.
178at the moment of man invocation is used. The value also can be a 178The value also can be a positive integer for a fixed width."
179positive integer."
180 :type '(choice (const :tag "Window width" nil) 179 :type '(choice (const :tag "Window width" nil)
181 (const :tag "Frame width" t) 180 (const :tag "Frame width" t)
182 (integer :tag "Specific width" :value 65)) 181 (integer :tag "Fixed width" :value 65))
183 :group 'man) 182 :group 'man)
184 183
185(defcustom Man-frame-parameters nil 184(defcustom Man-frame-parameters nil
@@ -930,12 +929,14 @@ test/automated/man-tests.el in the emacs bzr repository."
930;;;###autoload 929;;;###autoload
931(defun man (man-args) 930(defun man (man-args)
932 "Get a Un*x manual page and put it in a buffer. 931 "Get a Un*x manual page and put it in a buffer.
933This command is the top-level command in the man package. It 932This command is the top-level command in the man package.
934runs a Un*x command to retrieve and clean a manpage in the 933It runs a Un*x command to retrieve and clean a manpage in the
935background and places the results in a `Man-mode' browsing 934background and places the results in a `Man-mode' browsing
936buffer. See variable `Man-notify-method' for what happens when 935buffer. The variable `Man-width' defines the number of columns in
937the buffer is ready. If a buffer already exists for this man 936formatted manual pages. The buffer is displayed immediately.
938page, it will display immediately. 937The variable `Man-notify-method' defines how the buffer is displayed.
938If a buffer already exists for this man page, it will be displayed
939without running the man command.
939 940
940For a manpage from a particular section, use either of the 941For a manpage from a particular section, use either of the
941following. \"cat(1)\" is how cross-references appear and is 942following. \"cat(1)\" is how cross-references appear and is
@@ -1030,15 +1031,22 @@ names or descriptions. The pattern argument is usually an
1030 ;; ther is available). 1031 ;; ther is available).
1031 (when (or window-system 1032 (when (or window-system
1032 (not (or (getenv "MANWIDTH") (getenv "COLUMNS")))) 1033 (not (or (getenv "MANWIDTH") (getenv "COLUMNS"))))
1033 ;; This isn't strictly correct, since we don't know how 1034 ;; Since the page buffer is displayed beforehand,
1034 ;; the page will actually be displayed, but it seems 1035 ;; we can select its window and get the window/frame width.
1035 ;; reasonable.
1036 (setenv "COLUMNS" (number-to-string 1036 (setenv "COLUMNS" (number-to-string
1037 (cond 1037 (cond
1038 ((and (integerp Man-width) (> Man-width 0)) 1038 ((and (integerp Man-width) (> Man-width 0))
1039 Man-width) 1039 Man-width)
1040 (Man-width (frame-width)) 1040 (Man-width
1041 ((window-width)))))) 1041 (if (window-live-p (get-buffer-window (current-buffer) t))
1042 (with-selected-window (get-buffer-window (current-buffer) t)
1043 (frame-width))
1044 (frame-width)))
1045 (t
1046 (if (window-live-p (get-buffer-window (current-buffer) t))
1047 (with-selected-window (get-buffer-window (current-buffer) t)
1048 (window-width))
1049 (window-width)))))))
1042 ;; Since man-db 2.4.3-1, man writes plain text with no escape 1050 ;; Since man-db 2.4.3-1, man writes plain text with no escape
1043 ;; sequences when stdout is not a tty. In 2.5.0, the following 1051 ;; sequences when stdout is not a tty. In 2.5.0, the following
1044 ;; env-var was added to allow control of this (see Debian Bug#340673). 1052 ;; env-var was added to allow control of this (see Debian Bug#340673).
@@ -1057,33 +1065,45 @@ Return the buffer in which the manpage will appear."
1057 (message "Invoking %s %s in the background" manual-program man-args) 1065 (message "Invoking %s %s in the background" manual-program man-args)
1058 (setq buffer (generate-new-buffer bufname)) 1066 (setq buffer (generate-new-buffer bufname))
1059 (with-current-buffer buffer 1067 (with-current-buffer buffer
1068 (Man-notify-when-ready buffer)
1060 (setq buffer-undo-list t) 1069 (setq buffer-undo-list t)
1061 (setq Man-original-frame (selected-frame)) 1070 (setq Man-original-frame (selected-frame))
1062 (setq Man-arguments man-args)) 1071 (setq Man-arguments man-args)
1063 (Man-start-calling 1072 (Man-mode)
1064 (if (fboundp 'start-process) 1073 (setq mode-line-process
1065 (set-process-sentinel 1074 (concat " " (propertize (if Man-fontify-manpage-flag
1066 (start-process manual-program buffer 1075 "[formatting...]"
1067 (if (memq system-type '(cygwin windows-nt)) 1076 "[cleaning...]")
1068 shell-file-name 1077 'face 'mode-line-emphasis)))
1069 "sh") 1078 (Man-start-calling
1070 shell-command-switch 1079 (if (fboundp 'start-process)
1071 (format (Man-build-man-command) man-args)) 1080 (let ((proc (start-process
1072 'Man-bgproc-sentinel) 1081 manual-program buffer
1073 (let ((exit-status 1082 (if (memq system-type '(cygwin windows-nt))
1074 (call-process shell-file-name nil (list buffer nil) nil 1083 shell-file-name
1075 shell-command-switch 1084 "sh")
1076 (format (Man-build-man-command) man-args))) 1085 shell-command-switch
1077 (msg "")) 1086 (format (Man-build-man-command) man-args))))
1078 (or (and (numberp exit-status) 1087 (set-process-sentinel proc 'Man-bgproc-sentinel)
1079 (= exit-status 0)) 1088 (set-process-filter proc 'Man-bgproc-filter))
1080 (and (numberp exit-status) 1089 (let* ((inhibit-read-only t)
1081 (setq msg 1090 (exit-status
1082 (format "exited abnormally with code %d" 1091 (call-process shell-file-name nil (list buffer nil) nil
1083 exit-status))) 1092 shell-command-switch
1084 (setq msg exit-status)) 1093 (format (Man-build-man-command) man-args)))
1085 (Man-bgproc-sentinel bufname msg))))) 1094 (msg ""))
1086 buffer)) 1095 (or (and (numberp exit-status)
1096 (= exit-status 0))
1097 (and (numberp exit-status)
1098 (setq msg
1099 (format "exited abnormally with code %d"
1100 exit-status)))
1101 (setq msg exit-status))
1102 (if Man-fontify-manpage-flag
1103 (Man-fontify-manpage)
1104 (Man-cleanup-manpage))
1105 (Man-bgproc-sentinel bufname msg))))))
1106 buffer))
1087 1107
1088(defun Man-update-manpage () 1108(defun Man-update-manpage ()
1089 "Reformat current manpage by calling the man command again synchronously." 1109 "Reformat current manpage by calling the man command again synchronously."
@@ -1168,7 +1188,6 @@ See the variable `Man-notify-method' for the different notification behaviors."
1168 "Convert overstriking and underlining to the correct fonts. 1188 "Convert overstriking and underlining to the correct fonts.
1169Same for the ANSI bold and normal escape sequences." 1189Same for the ANSI bold and normal escape sequences."
1170 (interactive) 1190 (interactive)
1171 (message "Please wait: formatting the %s man page..." Man-arguments)
1172 (goto-char (point-min)) 1191 (goto-char (point-min))
1173 ;; Fontify ANSI escapes. 1192 ;; Fontify ANSI escapes.
1174 (let ((ansi-color-apply-face-function 1193 (let ((ansi-color-apply-face-function
@@ -1183,7 +1202,7 @@ Same for the ANSI bold and normal escape sequences."
1183 ;; Multibyte characters exist. 1202 ;; Multibyte characters exist.
1184 (progn 1203 (progn
1185 (goto-char (point-min)) 1204 (goto-char (point-min))
1186 (while (search-forward "__\b\b" nil t) 1205 (while (and (search-forward "__\b\b" nil t) (not (eobp)))
1187 (backward-delete-char 4) 1206 (backward-delete-char 4)
1188 (put-text-property (point) (1+ (point)) 'face 'Man-underline)) 1207 (put-text-property (point) (1+ (point)) 'face 'Man-underline))
1189 (goto-char (point-min)) 1208 (goto-char (point-min))
@@ -1191,7 +1210,7 @@ Same for the ANSI bold and normal escape sequences."
1191 (backward-delete-char 4) 1210 (backward-delete-char 4)
1192 (put-text-property (1- (point)) (point) 'face 'Man-underline)))) 1211 (put-text-property (1- (point)) (point) 'face 'Man-underline))))
1193 (goto-char (point-min)) 1212 (goto-char (point-min))
1194 (while (search-forward "_\b" nil t) 1213 (while (and (search-forward "_\b" nil t) (not (eobp)))
1195 (backward-delete-char 2) 1214 (backward-delete-char 2)
1196 (put-text-property (point) (1+ (point)) 'face 'Man-underline)) 1215 (put-text-property (point) (1+ (point)) 'face 'Man-underline))
1197 (goto-char (point-min)) 1216 (goto-char (point-min))
@@ -1223,8 +1242,7 @@ Same for the ANSI bold and normal escape sequences."
1223 (while (re-search-forward Man-heading-regexp nil t) 1242 (while (re-search-forward Man-heading-regexp nil t)
1224 (put-text-property (match-beginning 0) 1243 (put-text-property (match-beginning 0)
1225 (match-end 0) 1244 (match-end 0)
1226 'face 'Man-overstrike))) 1245 'face 'Man-overstrike))))
1227 (message "%s man page formatted" (Man-page-from-arguments Man-arguments)))
1228 1246
1229(defun Man-highlight-references (&optional xref-man-type) 1247(defun Man-highlight-references (&optional xref-man-type)
1230 "Highlight the references on mouse-over. 1248 "Highlight the references on mouse-over.
@@ -1286,8 +1304,6 @@ Normally skip any jobs that should have been done by the sed script,
1286but when called interactively, do those jobs even if the sed 1304but when called interactively, do those jobs even if the sed
1287script would have done them." 1305script would have done them."
1288 (interactive "p") 1306 (interactive "p")
1289 (message "Please wait: cleaning up the %s man page..."
1290 Man-arguments)
1291 (if (or interactive (not Man-sed-script)) 1307 (if (or interactive (not Man-sed-script))
1292 (progn 1308 (progn
1293 (goto-char (point-min)) 1309 (goto-char (point-min))
@@ -1309,8 +1325,35 @@ script would have done them."
1309 ;; their preceding chars (but don't put Man-overstrike). (Bug#5566) 1325 ;; their preceding chars (but don't put Man-overstrike). (Bug#5566)
1310 (goto-char (point-min)) 1326 (goto-char (point-min))
1311 (while (re-search-forward ".\b" nil t) (backward-delete-char 2)) 1327 (while (re-search-forward ".\b" nil t) (backward-delete-char 2))
1312 (Man-softhyphen-to-minus) 1328 (Man-softhyphen-to-minus))
1313 (message "%s man page cleaned up" Man-arguments)) 1329
1330(defun Man-bgproc-filter (process string)
1331 "Manpage background process filter.
1332When manpage command is run asynchronously, PROCESS is the process
1333object for the manpage command; when manpage command is run
1334synchronously, PROCESS is the name of the buffer where the manpage
1335command is run. Second argument STRING is the entire string of output."
1336 (save-excursion
1337 (let ((Man-buffer (process-buffer process)))
1338 (if (null (buffer-name Man-buffer)) ;; deleted buffer
1339 (set-process-buffer process nil)
1340
1341 (with-current-buffer Man-buffer
1342 (let ((inhibit-read-only t)
1343 (beg (marker-position (process-mark process))))
1344 (save-excursion
1345 (goto-char beg)
1346 (insert string)
1347 (save-restriction
1348 (narrow-to-region
1349 (save-excursion
1350 (goto-char beg)
1351 (line-beginning-position))
1352 (point))
1353 (if Man-fontify-manpage-flag
1354 (Man-fontify-manpage)
1355 (Man-cleanup-manpage)))
1356 (set-marker (process-mark process) (point-max)))))))))
1314 1357
1315(defun Man-bgproc-sentinel (process msg) 1358(defun Man-bgproc-sentinel (process msg)
1316 "Manpage background process sentinel. 1359 "Manpage background process sentinel.
@@ -1329,63 +1372,75 @@ manpage command."
1329 (set-process-buffer process nil)) 1372 (set-process-buffer process nil))
1330 1373
1331 (with-current-buffer Man-buffer 1374 (with-current-buffer Man-buffer
1332 (let ((case-fold-search nil)) 1375 (save-excursion
1333 (goto-char (point-min)) 1376 (let ((case-fold-search nil))
1334 (cond ((or (looking-at "No \\(manual \\)*entry for") 1377 (goto-char (point-min))
1335 (looking-at "[^\n]*: nothing appropriate$")) 1378 (cond ((or (looking-at "No \\(manual \\)*entry for")
1336 (setq err-mess (buffer-substring (point) 1379 (looking-at "[^\n]*: nothing appropriate$"))
1337 (progn 1380 (setq err-mess (buffer-substring (point)
1338 (end-of-line) (point))) 1381 (progn
1339 delete-buff t)) 1382 (end-of-line) (point)))
1340 1383 delete-buff t))
1341 ;; "-k foo", successful exit, but no output (from man-db) 1384
1342 ;; ENHANCE-ME: share the check for -k with 1385 ;; "-k foo", successful exit, but no output (from man-db)
1343 ;; `Man-highlight-references'. The \\s- bits here are 1386 ;; ENHANCE-ME: share the check for -k with
1344 ;; meant to allow for multiple options with -k among them. 1387 ;; `Man-highlight-references'. The \\s- bits here are
1345 ((and (string-match "\\(\\`\\|\\s-\\)-k\\s-" Man-arguments) 1388 ;; meant to allow for multiple options with -k among them.
1346 (eq (process-status process) 'exit) 1389 ((and (string-match "\\(\\`\\|\\s-\\)-k\\s-" Man-arguments)
1347 (= (process-exit-status process) 0) 1390 (eq (process-status process) 'exit)
1348 (= (point-min) (point-max))) 1391 (= (process-exit-status process) 0)
1349 (setq err-mess (format "%s: no matches" Man-arguments) 1392 (= (point-min) (point-max)))
1350 delete-buff t)) 1393 (setq err-mess (format "%s: no matches" Man-arguments)
1351 1394 delete-buff t))
1352 ((or (stringp process) 1395
1353 (not (and (eq (process-status process) 'exit) 1396 ((or (stringp process)
1354 (= (process-exit-status process) 0)))) 1397 (not (and (eq (process-status process) 'exit)
1355 (or (zerop (length msg)) 1398 (= (process-exit-status process) 0))))
1356 (progn 1399 (or (zerop (length msg))
1357 (setq err-mess 1400 (progn
1358 (concat (buffer-name Man-buffer) 1401 (setq err-mess
1359 ": process " 1402 (concat (buffer-name Man-buffer)
1360 (let ((eos (1- (length msg)))) 1403 ": process "
1361 (if (= (aref msg eos) ?\n) 1404 (let ((eos (1- (length msg))))
1362 (substring msg 0 eos) msg)))) 1405 (if (= (aref msg eos) ?\n)
1363 (goto-char (point-max)) 1406 (substring msg 0 eos) msg))))
1364 (insert (format "\nprocess %s" msg)))) 1407 (goto-char (point-max))
1365 )) 1408 (insert (format "\nprocess %s" msg))))
1366 (if delete-buff 1409 ))
1367 (kill-buffer Man-buffer) 1410 (if delete-buff
1368 (if Man-fontify-manpage-flag 1411 (if (window-live-p (get-buffer-window Man-buffer t))
1369 (Man-fontify-manpage) 1412 (quit-restore-window
1370 (Man-cleanup-manpage)) 1413 (get-buffer-window Man-buffer t) 'kill)
1371 1414 (kill-buffer Man-buffer))
1372 (run-hooks 'Man-cooked-hook) 1415
1373 (Man-mode) 1416 (run-hooks 'Man-cooked-hook)
1374 1417
1375 (if (not Man-page-list) 1418 (Man-build-page-list)
1376 (let ((args Man-arguments)) 1419 (Man-strip-page-headers)
1377 (kill-buffer (current-buffer)) 1420 (Man-unindent)
1378 (user-error "Can't find the %s manpage" 1421 (Man-goto-page 1 t)
1379 (Man-page-from-arguments args))) 1422
1380 (set-buffer-modified-p nil)))) 1423 (if (not Man-page-list)
1381 ;; Restore case-fold-search before calling 1424 (let ((args Man-arguments))
1382 ;; Man-notify-when-ready because it may switch buffers. 1425 (if (window-live-p (get-buffer-window (current-buffer) t))
1383 1426 (quit-restore-window
1384 (if (not delete-buff) 1427 (get-buffer-window (current-buffer) t) 'kill)
1385 (Man-notify-when-ready Man-buffer)) 1428 (kill-buffer (current-buffer)))
1429 (message "Can't find the %s manpage"
1430 (Man-page-from-arguments args)))
1431
1432 (if Man-fontify-manpage-flag
1433 (message "%s man page formatted"
1434 (Man-page-from-arguments Man-arguments))
1435 (message "%s man page cleaned up"
1436 (Man-page-from-arguments Man-arguments)))
1437 (unless (and (processp process)
1438 (not (eq (process-status process) 'exit)))
1439 (setq mode-line-process nil))
1440 (set-buffer-modified-p nil)))))
1386 1441
1387 (if err-mess 1442 (if err-mess
1388 (error "%s" err-mess)) 1443 (message "%s" err-mess))
1389 )))) 1444 ))))
1390 1445
1391(defun Man-page-from-arguments (args) 1446(defun Man-page-from-arguments (args)
@@ -1429,7 +1484,7 @@ The following man commands are available in the buffer. Try
1429The following variables may be of some use. Try 1484The following variables may be of some use. Try
1430\"\\[describe-variable] <variable-name> RET\" for more information: 1485\"\\[describe-variable] <variable-name> RET\" for more information:
1431 1486
1432`Man-notify-method' What happens when manpage formatting is done. 1487`Man-notify-method' What happens when manpage is ready to display.
1433`Man-downcase-section-letters-flag' Force section letters to lower case. 1488`Man-downcase-section-letters-flag' Force section letters to lower case.
1434`Man-circular-pages-flag' Treat multiple manpage list as circular. 1489`Man-circular-pages-flag' Treat multiple manpage list as circular.
1435`Man-section-translations-alist' List of section numbers and their Un*x equiv. 1490`Man-section-translations-alist' List of section numbers and their Un*x equiv.
@@ -1458,11 +1513,7 @@ The following key bindings are currently in effect in the buffer:
1458 (set (make-local-variable 'outline-regexp) Man-heading-regexp) 1513 (set (make-local-variable 'outline-regexp) Man-heading-regexp)
1459 (set (make-local-variable 'outline-level) (lambda () 1)) 1514 (set (make-local-variable 'outline-level) (lambda () 1))
1460 (set (make-local-variable 'bookmark-make-record-function) 1515 (set (make-local-variable 'bookmark-make-record-function)
1461 'Man-bookmark-make-record) 1516 'Man-bookmark-make-record))
1462 (Man-build-page-list)
1463 (Man-strip-page-headers)
1464 (Man-unindent)
1465 (Man-goto-page 1 t))
1466 1517
1467(defsubst Man-build-section-alist () 1518(defsubst Man-build-section-alist ()
1468 "Build the list of manpage sections." 1519 "Build the list of manpage sections."
@@ -1516,7 +1567,6 @@ The following key bindings are currently in effect in the buffer:
1516 (page-end (point-max)) 1567 (page-end (point-max))
1517 (header "")) 1568 (header ""))
1518 (goto-char page-start) 1569 (goto-char page-start)
1519 ;; (switch-to-buffer (current-buffer))(debug)
1520 (while (not (eobp)) 1570 (while (not (eobp))
1521 (setq header 1571 (setq header
1522 (if (looking-at Man-page-header-regexp) 1572 (if (looking-at Man-page-header-regexp)
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 7beea8e26e6..d3bcf02f217 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -1079,7 +1079,7 @@ regardless of where you click."
1079 (unless primary 1079 (unless primary
1080 (error "No selection is available")) 1080 (error "No selection is available"))
1081 (push-mark (point)) 1081 (push-mark (point))
1082 (insert primary))) 1082 (insert-for-yank primary)))
1083 1083
1084(defun mouse-kill-ring-save (click) 1084(defun mouse-kill-ring-save (click)
1085 "Copy the region between point and the mouse click in the kill ring. 1085 "Copy the region between point and the mouse click in the kill ring.
@@ -1361,7 +1361,7 @@ regardless of where you click."
1361 (or mouse-yank-at-point (mouse-set-point click)) 1361 (or mouse-yank-at-point (mouse-set-point click))
1362 (let ((secondary (x-get-selection 'SECONDARY))) 1362 (let ((secondary (x-get-selection 'SECONDARY)))
1363 (if secondary 1363 (if secondary
1364 (insert secondary) 1364 (insert-for-yank secondary)
1365 (error "No secondary selection")))) 1365 (error "No secondary selection"))))
1366 1366
1367(defun mouse-kill-secondary () 1367(defun mouse-kill-secondary ()
diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el
index 66170dafef8..582f54faf4e 100644
--- a/lisp/net/dbus.el
+++ b/lisp/net/dbus.el
@@ -544,6 +544,10 @@ placed in the queue.
544 544
545`:already-owner': Service is already the primary owner." 545`:already-owner': Service is already the primary owner."
546 546
547 ;; Add Peer handler.
548 (dbus-register-method
549 bus service nil dbus-interface-peer "Ping" 'dbus-peer-handler 'dont-register)
550
547 ;; Add ObjectManager handler. 551 ;; Add ObjectManager handler.
548 (dbus-register-method 552 (dbus-register-method
549 bus service nil dbus-interface-objectmanager "GetManagedObjects" 553 bus service nil dbus-interface-objectmanager "GetManagedObjects"
@@ -1151,6 +1155,22 @@ apply
1151 bus service dbus-path-dbus dbus-interface-peer "Ping"))) 1155 bus service dbus-path-dbus dbus-interface-peer "Ping")))
1152 (dbus-error nil))) 1156 (dbus-error nil)))
1153 1157
1158(defun dbus-peer-handler ()
1159 "Default handler for the \"org.freedesktop.DBus.Peer\" interface.
1160It will be registered for all objects created by `dbus-register-service'."
1161 (let* ((last-input-event last-input-event)
1162 (method (dbus-event-member-name last-input-event)))
1163 (cond
1164 ;; "Ping" does not return an output parameter.
1165 ((string-equal method "Ping")
1166 :ignore)
1167 ;; "GetMachineId" returns "s".
1168 ((string-equal method "GetMachineId")
1169 (signal
1170 'dbus-error
1171 (list
1172 (format "%s.GetMachineId not implemented" dbus-interface-peer)))))))
1173
1154 1174
1155;;; D-Bus introspection. 1175;;; D-Bus introspection.
1156 1176
@@ -1672,7 +1692,7 @@ and \"org.freedesktop.DBus.Properties.GetAll\", which is slow."
1672 1692
1673(defun dbus-managed-objects-handler () 1693(defun dbus-managed-objects-handler ()
1674 "Default handler for the \"org.freedesktop.DBus.ObjectManager\" interface. 1694 "Default handler for the \"org.freedesktop.DBus.ObjectManager\" interface.
1675It will be registered for all objects created by `dbus-register-method'." 1695It will be registered for all objects created by `dbus-register-service'."
1676 (let* ((last-input-event last-input-event) 1696 (let* ((last-input-event last-input-event)
1677 (bus (dbus-event-bus-name last-input-event)) 1697 (bus (dbus-event-bus-name last-input-event))
1678 (path (dbus-event-path-name last-input-event))) 1698 (path (dbus-event-path-name last-input-event)))
diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el
index ea4c0351be7..0c650f38d95 100644
--- a/lisp/net/gnutls.el
+++ b/lisp/net/gnutls.el
@@ -214,7 +214,7 @@ defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT."
214 (cl-mapcan 214 (cl-mapcan
215 (lambda (check) 215 (lambda (check)
216 (when (string-match (car check) hostname) 216 (when (string-match (car check) hostname)
217 (cdr check))) 217 (copy-sequence (cdr check))))
218 gnutls-verify-error)) 218 gnutls-verify-error))
219 ;; else it's nil 219 ;; else it's nil
220 (t nil)))) 220 (t nil))))
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index 4f6d5807ba5..16017eebba3 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -458,9 +458,7 @@ Emacs dired can't find files."
458 (insert " " (mapconcat 'identity sorted-lines "\n "))) 458 (insert " " (mapconcat 'identity sorted-lines "\n ")))
459 ;; Add final newline. 459 ;; Add final newline.
460 (goto-char (point-max)) 460 (goto-char (point-max))
461 (unless (= (point) (line-beginning-position)) 461 (unless (bolp) (insert "\n"))))
462 (insert "\n"))))
463
464 462
465(defun tramp-adb-ls-output-time-less-p (a b) 463(defun tramp-adb-ls-output-time-less-p (a b)
466 "Sort \"ls\" output by time, descending." 464 "Sort \"ls\" output by time, descending."
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 68f1ef472f1..315bc08d0ef 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1265,8 +1265,7 @@ target of the symlink differ."
1265 (format "%s -ild %s" 1265 (format "%s -ild %s"
1266 (tramp-get-ls-command v) 1266 (tramp-get-ls-command v)
1267 (tramp-shell-quote-argument localname))) 1267 (tramp-shell-quote-argument localname)))
1268 (setq attr (buffer-substring (point) 1268 (setq attr (buffer-substring (point) (point-at-eol))))
1269 (progn (end-of-line) (point)))))
1270 (tramp-set-file-property 1269 (tramp-set-file-property
1271 v localname "visited-file-modtime-ild" attr)) 1270 v localname "visited-file-modtime-ild" attr))
1272 (when (boundp 'last-coding-system-used) 1271 (when (boundp 'last-coding-system-used)
@@ -1317,8 +1316,7 @@ of."
1317 (tramp-get-ls-command v) 1316 (tramp-get-ls-command v)
1318 (tramp-shell-quote-argument localname))) 1317 (tramp-shell-quote-argument localname)))
1319 (with-current-buffer (tramp-get-buffer v) 1318 (with-current-buffer (tramp-get-buffer v)
1320 (setq attr (buffer-substring 1319 (setq attr (buffer-substring (point) (point-at-eol))))
1321 (point) (progn (end-of-line) (point)))))
1322 (equal 1320 (equal
1323 attr 1321 attr
1324 (tramp-get-file-property 1322 (tramp-get-file-property
@@ -3964,15 +3962,16 @@ process to set up. VEC specifies the connection."
3964 ;; Try to set up the coding system correctly. 3962 ;; Try to set up the coding system correctly.
3965 ;; CCC this can't be the right way to do it. Hm. 3963 ;; CCC this can't be the right way to do it. Hm.
3966 (tramp-message vec 5 "Determining coding system") 3964 (tramp-message vec 5 "Determining coding system")
3967 (tramp-send-command vec "echo foo ; echo bar" t)
3968 (with-current-buffer (process-buffer proc) 3965 (with-current-buffer (process-buffer proc)
3969 (goto-char (point-min))
3970 (if (featurep 'mule) 3966 (if (featurep 'mule)
3971 ;; Use MULE to select the right EOL convention for communicating 3967 ;; Use MULE to select the right EOL convention for communicating
3972 ;; with the process. 3968 ;; with the process.
3973 (let* ((cs (or (tramp-compat-funcall 'process-coding-system proc) 3969 (let ((cs (or (when (string-match
3974 (cons 'undecided 'undecided))) 3970 "utf8" (or (tramp-get-remote-locale vec) ""))
3975 cs-decode cs-encode) 3971 (cons 'utf-8 'utf-8))
3972 (tramp-compat-funcall 'process-coding-system proc)
3973 (cons 'undecided 'undecided)))
3974 cs-decode cs-encode)
3976 (when (symbolp cs) (setq cs (cons cs cs))) 3975 (when (symbolp cs) (setq cs (cons cs cs)))
3977 (setq cs-decode (car cs)) 3976 (setq cs-decode (car cs))
3978 (setq cs-encode (cdr cs)) 3977 (setq cs-encode (cdr cs))
@@ -3980,6 +3979,8 @@ process to set up. VEC specifies the connection."
3980 (unless cs-encode (setq cs-encode 'undecided)) 3979 (unless cs-encode (setq cs-encode 'undecided))
3981 (setq cs-encode (tramp-compat-coding-system-change-eol-conversion 3980 (setq cs-encode (tramp-compat-coding-system-change-eol-conversion
3982 cs-encode 'unix)) 3981 cs-encode 'unix))
3982 (tramp-send-command vec "echo foo ; echo bar" t)
3983 (goto-char (point-min))
3983 (when (search-forward "\r" nil t) 3984 (when (search-forward "\r" nil t)
3984 (setq cs-decode (tramp-compat-coding-system-change-eol-conversion 3985 (setq cs-decode (tramp-compat-coding-system-change-eol-conversion
3985 cs-decode 'dos))) 3986 cs-decode 'dos)))
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 6be737eb3f0..921c70135df 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -4127,10 +4127,9 @@ ALIST is of the form ((FROM . TO) ...)."
4127(defun tramp-call-process 4127(defun tramp-call-process
4128 (vec program &optional infile destination display &rest args) 4128 (vec program &optional infile destination display &rest args)
4129 "Calls `call-process' on the local host. 4129 "Calls `call-process' on the local host.
4130This is needed because for some Emacs flavors Tramp has 4130It always returns a return code. The Lisp error raised when
4131defadvised `call-process' to behave like `process-file'. The 4131PROGRAM is nil is trapped also, returning 1. Furthermore, traces
4132Lisp error raised when PROGRAM is nil is trapped also, returning 1. 4132are written with verbosity of 6."
4133Furthermore, traces are written with verbosity of 6."
4134 (let ((v (or vec 4133 (let ((v (or vec
4135 (vector tramp-current-method tramp-current-user 4134 (vector tramp-current-method tramp-current-user
4136 tramp-current-host nil nil))) 4135 tramp-current-host nil nil)))
@@ -4144,6 +4143,9 @@ Furthermore, traces are written with verbosity of 6."
4144 (setq result 4143 (setq result
4145 (apply 4144 (apply
4146 'call-process program infile (or destination t) display args)) 4145 'call-process program infile (or destination t) display args))
4146 ;; `result' could also be an error string.
4147 (when (stringp result)
4148 (signal 'file-error (list result)))
4147 (with-current-buffer 4149 (with-current-buffer
4148 (if (bufferp destination) destination (current-buffer)) 4150 (if (bufferp destination) destination (current-buffer))
4149 (tramp-message v 6 "%d\n%s" result (buffer-string)))) 4151 (tramp-message v 6 "%d\n%s" result (buffer-string))))
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index 9c0beb114bc..065c3f33ebe 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -24,14 +24,14 @@
24 24
25;;; Code: 25;;; Code:
26 26
27;; In the Tramp CVS repository, the version number and the bug report 27;; In the Tramp GIT repository, the version number and the bug report
28;; address are auto-frobbed from configure.ac, so you should edit that 28;; address are auto-frobbed from configure.ac, so you should edit that
29;; file and run "autoconf && ./configure" to change them. (X)Emacs 29;; file and run "autoconf && ./configure" to change them. (X)Emacs
30;; version check is defined in macro AC_EMACS_INFO of aclocal.m4; 30;; version check is defined in macro AC_EMACS_INFO of aclocal.m4;
31;; should be changed only there. 31;; should be changed only there.
32 32
33;;;###tramp-autoload 33;;;###tramp-autoload
34(defconst tramp-version "2.2.10" 34(defconst tramp-version "2.2.11-pre"
35 "This version of Tramp.") 35 "This version of Tramp.")
36 36
37;;;###tramp-autoload 37;;;###tramp-autoload
@@ -44,7 +44,7 @@
44 (= emacs-major-version 21) 44 (= emacs-major-version 21)
45 (>= emacs-minor-version 4))) 45 (>= emacs-minor-version 4)))
46 "ok" 46 "ok"
47 (format "Tramp 2.2.10 is not fit for %s" 47 (format "Tramp 2.2.11-pre is not fit for %s"
48 (when (string-match "^.*$" (emacs-version)) 48 (when (string-match "^.*$" (emacs-version))
49 (match-string 0 (emacs-version))))))) 49 (match-string 0 (emacs-version)))))))
50 (unless (string-match "\\`ok\\'" x) (error "%s" x))) 50 (unless (string-match "\\`ok\\'" x) (error "%s" x)))
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index 6431fa4aaf2..c7f018f5f15 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -71,8 +71,8 @@
71;; For example: 71;; For example:
72;; (add-to-list 'auto-mode-alist '("\\.f\\'" . f90-mode)) 72;; (add-to-list 'auto-mode-alist '("\\.f\\'" . f90-mode))
73 73
74;; Once you have entered f90-mode, you may get more info by using 74;; Once you have entered f90-mode, you can get more info by using
75;; the command describe-mode (C-h m). For online help use 75;; the command describe-mode (C-h m). For help use
76;; C-h f <Name of function you want described>, or 76;; C-h f <Name of function you want described>, or
77;; C-h v <Name of variable you want described>. 77;; C-h v <Name of variable you want described>.
78 78
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 6585668b927..f6562f32e94 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -138,7 +138,8 @@
138 138
139(defcustom hide-ifdef-exclude-define-regexp nil 139(defcustom hide-ifdef-exclude-define-regexp nil
140 "Ignore #define names if those names match this exclusion pattern." 140 "Ignore #define names if those names match this exclusion pattern."
141 :type 'string) 141 :type 'string
142 :version "24.5")
142 143
143(defvar hide-ifdef-mode-submap 144(defvar hide-ifdef-mode-submap
144 ;; Set up the submap that goes after the prefix key. 145 ;; Set up the submap that goes after the prefix key.
diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el
index 39951730ab3..6cb04a03b7e 100644
--- a/lisp/progmodes/idlw-complete-structtag.el
+++ b/lisp/progmodes/idlw-complete-structtag.el
@@ -49,14 +49,14 @@
49;; 49;;
50;; New versions of IDLWAVE, documentation, and more information available 50;; New versions of IDLWAVE, documentation, and more information available
51;; from: 51;; from:
52;; http://idlwave.org 52;; http://github.com/jdtsmith/idlwave
53;; 53;;
54;; INSTALLATION 54;; INSTALLATION
55;; ============ 55;; ============
56;; Put this file on the emacs load path and load it with the following 56;; Put this file on the emacs load path and load it with the following
57;; line in your init file: 57;; line in your init file:
58;; 58;;
59;; (add-hook 'idlwave-load-hook 59;; (add-hook 'idlwave-load-hook
60;; (lambda () (require 'idlw-complete-structtag))) 60;; (lambda () (require 'idlw-complete-structtag)))
61;; 61;;
62;; DESCRIPTION 62;; DESCRIPTION
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el
index b9c41c9d699..3d42fe231bd 100644
--- a/lisp/progmodes/idlw-help.el
+++ b/lisp/progmodes/idlw-help.el
@@ -32,7 +32,7 @@
32;; along with new versions of IDLWAVE, documentation, and more 32;; along with new versions of IDLWAVE, documentation, and more
33;; information, at: 33;; information, at:
34;; 34;;
35;; http://idlwave.org 35;; http://github.com/jdtsmith/idlwave
36;; 36;;
37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38 38
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index a0683d1c409..876695b0809 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -40,7 +40,7 @@
40;; 40;;
41;; New versions of IDLWAVE, documentation, and more information 41;; New versions of IDLWAVE, documentation, and more information
42;; available from: 42;; available from:
43;; http://idlwave.org 43;; http://github.com/jdtsmith/idlwave
44;; 44;;
45;; INSTALLATION: 45;; INSTALLATION:
46;; ============= 46;; =============
@@ -58,7 +58,7 @@
58;; The newest version of this file can be found on the maintainers 58;; The newest version of this file can be found on the maintainers
59;; web site. 59;; web site.
60;; 60;;
61;; http://idlwave.org 61;; http://github.com/jdtsmith/idlwave
62;; 62;;
63;; DOCUMENTATION 63;; DOCUMENTATION
64;; ============= 64;; =============
@@ -923,7 +923,7 @@ IDL has currently stepped.")
923 Info documentation for this package is available. Use \\[idlwave-info] 923 Info documentation for this package is available. Use \\[idlwave-info]
924 to display (complain to your sysadmin if that does not work). 924 to display (complain to your sysadmin if that does not work).
925 For PostScript and HTML versions of the documentation, check IDLWAVE's 925 For PostScript and HTML versions of the documentation, check IDLWAVE's
926 homepage at URL `http://idlwave.org'. 926 homepage at URL `http://github.com/jdtsmith/idlwave'.
927 IDLWAVE has customize support - see the group `idlwave'. 927 IDLWAVE has customize support - see the group `idlwave'.
928 928
9298. Keybindings 9298. Keybindings
diff --git a/lisp/progmodes/idlw-toolbar.el b/lisp/progmodes/idlw-toolbar.el
index 7844890c22a..45672be7d97 100644
--- a/lisp/progmodes/idlw-toolbar.el
+++ b/lisp/progmodes/idlw-toolbar.el
@@ -29,7 +29,7 @@
29 29
30;; New versions of IDLWAVE, documentation, and more information 30;; New versions of IDLWAVE, documentation, and more information
31;; available from: 31;; available from:
32;; http://idlwave.org 32;; http://github.com/jdtsmith/idlwave
33 33
34 34
35;;; Code: 35;;; Code:
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 86a16036e10..e66c9655df1 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -44,7 +44,7 @@
44;; 44;;
45;; New versions of IDLWAVE, documentation, and more information 45;; New versions of IDLWAVE, documentation, and more information
46;; available from: 46;; available from:
47;; http://idlwave.org 47;; http://github.com/jdtsmith/idlwave
48;; 48;;
49;; INSTALLATION 49;; INSTALLATION
50;; ============ 50;; ============
@@ -64,7 +64,7 @@
64;; The newest version of this file is available from the maintainer's 64;; The newest version of this file is available from the maintainer's
65;; Webpage: 65;; Webpage:
66;; 66;;
67;; http://idlwave.org 67;; http://github.com/jdtsmith/idlwave
68;; 68;;
69;; DOCUMENTATION 69;; DOCUMENTATION
70;; ============= 70;; =============
@@ -179,7 +179,7 @@
179 "Major mode for editing IDL .pro files." 179 "Major mode for editing IDL .pro files."
180 :tag "IDLWAVE" 180 :tag "IDLWAVE"
181 :link '(url-link :tag "Home Page" 181 :link '(url-link :tag "Home Page"
182 "http://idlwave.org") 182 "http://github.com/jdtsmith/idlwave")
183 :link '(emacs-commentary-link :tag "Commentary in idlw-shell.el" 183 :link '(emacs-commentary-link :tag "Commentary in idlw-shell.el"
184 "idlw-shell.el") 184 "idlw-shell.el")
185 :link '(emacs-commentary-link :tag "Commentary in idlwave.el" "idlwave.el") 185 :link '(emacs-commentary-link :tag "Commentary in idlwave.el" "idlwave.el")
@@ -1878,7 +1878,8 @@ The main features of this mode are
1878 Info documentation for this package is available. Use 1878 Info documentation for this package is available. Use
1879 \\[idlwave-info] to display (complain to your sysadmin if that does 1879 \\[idlwave-info] to display (complain to your sysadmin if that does
1880 not work). For Postscript, PDF, and HTML versions of the 1880 not work). For Postscript, PDF, and HTML versions of the
1881 documentation, check IDLWAVE's homepage at URL `http://idlwave.org'. 1881 documentation, check IDLWAVE's homepage at URL
1882 `http://github.com/jdtsmith/idlwave'.
1882 IDLWAVE has customize support - see the group `idlwave'. 1883 IDLWAVE has customize support - see the group `idlwave'.
1883 1884
188410.Keybindings 188510.Keybindings
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index cedc2986eda..f32d4641af0 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -26,8 +26,8 @@
26;; ===== 26;; =====
27 27
28;; Emacs should enter Pascal mode when you find a Pascal source file. 28;; Emacs should enter Pascal mode when you find a Pascal source file.
29;; When you have entered Pascal mode, you may get more info by pressing 29;; When you have entered Pascal mode, you can get more info by pressing
30;; C-h m. You may also get online help describing various functions by: 30;; C-h m. You can also get help describing various functions by:
31;; C-h f <Name of function you want described> 31;; C-h f <Name of function you want described>
32 32
33;; If you want to customize Pascal mode to fit you better, you may add 33;; If you want to customize Pascal mode to fit you better, you may add
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 743981b3714..065a182904f 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1096,16 +1096,28 @@ the line will be re-indented automatically if needed."
1096 (when (and electric-indent-mode 1096 (when (and electric-indent-mode
1097 (eq (char-before) last-command-event)) 1097 (eq (char-before) last-command-event))
1098 (cond 1098 (cond
1099 ((and (not (bolp)) 1099 ;; Electric indent inside parens
1100 (memq (char-after) '(?\) ?\] ?\}))) 1100 ((and
1101 (not (bolp))
1102 (let ((paren-start (python-syntax-context 'paren)))
1103 ;; Check that point is inside parens.
1104 (when paren-start
1105 (not
1106 ;; Filter the case where input is happening in the same
1107 ;; line where the open paren is.
1108 (= (line-number-at-pos)
1109 (line-number-at-pos paren-start)))))
1110 ;; When content has been added before the closing paren or a
1111 ;; comma has been inserted, it's ok to do the trick.
1112 (or
1113 (memq (char-after) '(?\) ?\] ?\}))
1114 (eq (char-before) ?,)))
1101 (save-excursion 1115 (save-excursion
1102 (goto-char (line-beginning-position)) 1116 (goto-char (line-beginning-position))
1103 ;; If after going to the beginning of line the point 1117 (let ((indentation (python-indent-calculate-indentation)))
1104 ;; is still inside a paren it's ok to do the trick 1118 (when (< (current-indentation) indentation)
1105 (when (python-syntax-context 'paren) 1119 (indent-line-to indentation)))))
1106 (let ((indentation (python-indent-calculate-indentation))) 1120 ;; Electric colon
1107 (when (< (current-indentation) indentation)
1108 (indent-line-to indentation))))))
1109 ((and (eq ?: last-command-event) 1121 ((and (eq ?: last-command-event)
1110 (memq ?: electric-indent-chars) 1122 (memq ?: electric-indent-chars)
1111 (not current-prefix-arg) 1123 (not current-prefix-arg)
diff --git a/lisp/ps-def.el b/lisp/ps-def.el
index 92a2e0b38cd..db0694549e1 100644
--- a/lisp/ps-def.el
+++ b/lisp/ps-def.el
@@ -325,8 +325,6 @@
325 ;; Emacs 325 ;; Emacs
326 (property-change from) 326 (property-change from)
327 (overlay-change from) 327 (overlay-change from)
328 (save-buffer-invisibility-spec buffer-invisibility-spec)
329 (buffer-invisibility-spec nil)
330 before-string after-string) 328 before-string after-string)
331 (while (< from to) 329 (while (< from to)
332 (and (< property-change to) ; Don't search for property change 330 (and (< property-change to) ; Don't search for property change
diff --git a/lisp/rect.el b/lisp/rect.el
index ac861a0824b..a2f8e4f6371 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -719,7 +719,7 @@ Ignores `line-move-visual'."
719 ((not rectangle-mark-mode) 719 ((not rectangle-mark-mode)
720 (funcall orig start end window rol)) 720 (funcall orig start end window rol))
721 (rectangle--inhibit-region-highlight 721 (rectangle--inhibit-region-highlight
722 (rectangle--unhighlight-for-redisplay orig rol) 722 (funcall redisplay-unhighlight-region-function rol)
723 nil) 723 nil)
724 ((and (eq 'rectangle (car-safe rol)) 724 ((and (eq 'rectangle (car-safe rol))
725 (eq (nth 1 rol) (buffer-chars-modified-tick)) 725 (eq (nth 1 rol) (buffer-chars-modified-tick))
diff --git a/lisp/simple.el b/lisp/simple.el
index a8689aaf2e3..6fd50197a10 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4527,9 +4527,11 @@ run `deactivate-mark-hook'."
4527 (when mark-active (force-mode-line-update)) ;Refresh toolbar (bug#16382). 4527 (when mark-active (force-mode-line-update)) ;Refresh toolbar (bug#16382).
4528 (cond 4528 (cond
4529 ((eq (car-safe transient-mark-mode) 'only) 4529 ((eq (car-safe transient-mark-mode) 'only)
4530 (setq transient-mark-mode (cdr transient-mark-mode))) 4530 (setq transient-mark-mode (cdr transient-mark-mode))
4531 (if (eq transient-mark-mode (default-value 'transient-mark-mode))
4532 (kill-local-variable 'transient-mark-mode)))
4531 ((eq transient-mark-mode 'lambda) 4533 ((eq transient-mark-mode 'lambda)
4532 (setq transient-mark-mode nil))) 4534 (kill-local-variable 'transient-mark-mode)))
4533 (setq mark-active nil) 4535 (setq mark-active nil)
4534 (run-hooks 'deactivate-mark-hook) 4536 (run-hooks 'deactivate-mark-hook)
4535 (redisplay--update-region-highlight (selected-window)))) 4537 (redisplay--update-region-highlight (selected-window))))
@@ -4756,7 +4758,7 @@ Novice Emacs Lisp programmers often try to use the mark for the wrong
4756purposes. See the documentation of `set-mark' for more information." 4758purposes. See the documentation of `set-mark' for more information."
4757 (interactive "P") 4759 (interactive "P")
4758 (cond ((eq transient-mark-mode 'lambda) 4760 (cond ((eq transient-mark-mode 'lambda)
4759 (setq transient-mark-mode nil)) 4761 (kill-local-variable 'transient-mark-mode))
4760 ((eq (car-safe transient-mark-mode) 'only) 4762 ((eq (car-safe transient-mark-mode) 'only)
4761 (deactivate-mark))) 4763 (deactivate-mark)))
4762 (cond 4764 (cond
@@ -4894,6 +4896,8 @@ its earlier value."
4894 (push-mark nil nil t))) 4896 (push-mark nil nil t)))
4895 ((eq (car-safe transient-mark-mode) 'only) 4897 ((eq (car-safe transient-mark-mode) 'only)
4896 (setq transient-mark-mode (cdr transient-mark-mode)) 4898 (setq transient-mark-mode (cdr transient-mark-mode))
4899 (if (eq transient-mark-mode (default-value 'transient-mark-mode))
4900 (kill-local-variable 'transient-mark-mode))
4897 (deactivate-mark)))) 4901 (deactivate-mark))))
4898 4902
4899(define-minor-mode transient-mark-mode 4903(define-minor-mode transient-mark-mode
diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el
index 9837c20b84d..56ff13fbbb6 100644
--- a/lisp/vc/ediff-mult.el
+++ b/lisp/vc/ediff-mult.el
@@ -140,7 +140,7 @@ Useful commands (type ? to hide them and free up screen):
140 uh/um:\tunmark all sessions marked for hiding/operation 140 uh/um:\tunmark all sessions marked for hiding/operation
141 n,SPC:\tnext session 141 n,SPC:\tnext session
142 p,DEL:\tprevious session 142 p,DEL:\tprevious session
143 E:\tbrowse Ediff on-line manual 143 E:\tbrowse Ediff manual
144 T:\ttoggle truncation of long file names 144 T:\ttoggle truncation of long file names
145 q:\tquit this session group 145 q:\tquit this session group
146") 146")
@@ -1464,7 +1464,7 @@ Useful commands:
1464 R in any Ediff session: display session registry 1464 R in any Ediff session: display session registry
1465 n,SPC: next session 1465 n,SPC: next session
1466 p,DEL: previous session 1466 p,DEL: previous session
1467 E: browse Ediff on-line manual 1467 E: browse Ediff manual
1468 q: bury registry 1468 q: bury registry
1469 1469
1470 1470
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index d1332351a74..bb6ab1062c1 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -735,7 +735,7 @@ The second problem might be due to an incompatibility among these settings:
735 ediff-patch-program = %S ediff-patch-options = %S 735 ediff-patch-program = %S ediff-patch-options = %S
736 ediff-backup-extension = %S ediff-backup-specs = %S 736 ediff-backup-extension = %S ediff-backup-specs = %S
737 737
738See Ediff on-line manual for more details on these variables. 738See Ediff manual for more details on these variables.
739In particular, check the documentation for `ediff-backup-specs'. 739In particular, check the documentation for `ediff-backup-specs'.
740 740
741In any of the above cases, Ediff doesn't compare files automatically. 741In any of the above cases, Ediff doesn't compare files automatically.
diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el
index 927a3ba7fb6..5418039143f 100644
--- a/lisp/vc/ediff.el
+++ b/lisp/vc/ediff.el
@@ -64,7 +64,7 @@
64;; compressed files. Details are given below. 64;; compressed files. Details are given below.
65 65
66;; Finally, Ediff supports directory-level comparison, merging and patching. 66;; Finally, Ediff supports directory-level comparison, merging and patching.
67;; See the on-line manual for details. 67;; See the Ediff manual for details.
68 68
69;; This package builds upon the ideas borrowed from emerge.el and several 69;; This package builds upon the ideas borrowed from emerge.el and several
70;; Ediff's functions are adaptations from emerge.el. Much of the functionality 70;; Ediff's functions are adaptations from emerge.el. Much of the functionality
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index e6bd897f4ac..1d75411ec1f 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -132,6 +132,8 @@ This applies when its SETUP argument is non-nil."
132 log-edit-insert-changelog 132 log-edit-insert-changelog
133 log-edit-show-files) 133 log-edit-show-files)
134 "Hook run at the end of `log-edit'." 134 "Hook run at the end of `log-edit'."
135 ;; Added log-edit-insert-message-template, moved log-edit-show-files.
136 :version "24.4"
135 :group 'log-edit 137 :group 'log-edit
136 :type '(hook :options (log-edit-insert-message-template 138 :type '(hook :options (log-edit-insert-message-template
137 log-edit-insert-cvs-rcstemplate 139 log-edit-insert-cvs-rcstemplate
@@ -355,9 +357,15 @@ The first subexpression is the actual text of the field.")
355 (set-match-data (list start (point))) 357 (set-match-data (list start (point)))
356 (point)))) 358 (point))))
357 359
360(defun log-edit-goto-eoh () ;FIXME: Almost rfc822-goto-eoh!
361 (goto-char (point-min))
362 (when (re-search-forward
363 "^\\([^[:alpha:]]\\|[[:alnum:]-]+[^[:alnum:]-:]\\)" nil 'move)
364 (goto-char (match-beginning 0))))
365
358(defun log-edit--match-first-line (limit) 366(defun log-edit--match-first-line (limit)
359 (let ((start (point))) 367 (let ((start (point)))
360 (rfc822-goto-eoh) 368 (log-edit-goto-eoh)
361 (skip-chars-forward "\n") 369 (skip-chars-forward "\n")
362 (and (< start (line-end-position)) 370 (and (< start (line-end-position))
363 (< (point) limit) 371 (< (point) limit)
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index c7cae8359bf..9c8ab3ba393 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -674,7 +674,7 @@ It is based on `log-edit-mode', and has Git-specific extensions.")
674 (cl-flet ((boolean-arg-fn 674 (cl-flet ((boolean-arg-fn
675 (argument) 675 (argument)
676 (lambda (value) (when (equal value "yes") (list argument))))) 676 (lambda (value) (when (equal value "yes") (list argument)))))
677 ;; When operating on the whole tree, better pass nil than ".", since "." 677 ;; When operating on the whole tree, better pass "-a" than ".", since "."
678 ;; fails when we're committing a merge. 678 ;; fails when we're committing a merge.
679 (apply 'vc-git-command nil 0 (if only files) 679 (apply 'vc-git-command nil 0 (if only files)
680 (nconc (list "commit" "-m") 680 (nconc (list "commit" "-m")
@@ -684,7 +684,7 @@ It is based on `log-edit-mode', and has Git-specific extensions.")
684 ("Amend" . ,(boolean-arg-fn "--amend")) 684 ("Amend" . ,(boolean-arg-fn "--amend"))
685 ("Sign-Off" . ,(boolean-arg-fn "--signoff"))) 685 ("Sign-Off" . ,(boolean-arg-fn "--signoff")))
686 comment) 686 comment)
687 (if only (list "--only" "--"))))))) 687 (if only (list "--only" "--") '("-a")))))))
688 688
689(defun vc-git-find-revision (file rev buffer) 689(defun vc-git-find-revision (file rev buffer)
690 (let* (process-file-side-effects 690 (let* (process-file-side-effects
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el
index f9e89880dae..e5e77405b02 100644
--- a/lisp/xt-mouse.el
+++ b/lisp/xt-mouse.el
@@ -312,7 +312,8 @@ terminals that support it.")
312 "Enable xterm mouse tracking on TERMINAL." 312 "Enable xterm mouse tracking on TERMINAL."
313 (when (and xterm-mouse-mode (eq t (terminal-live-p terminal)) 313 (when (and xterm-mouse-mode (eq t (terminal-live-p terminal))
314 ;; Avoid the initial terminal which is not a termcap device. 314 ;; Avoid the initial terminal which is not a termcap device.
315 ;; FIXME: is there more elegant way to detect the initial terminal? 315 ;; FIXME: is there more elegant way to detect the initial
316 ;; terminal?
316 (not (string= (terminal-name terminal) "initial_terminal"))) 317 (not (string= (terminal-name terminal) "initial_terminal")))
317 (unless (terminal-parameter terminal 'xterm-mouse-mode) 318 (unless (terminal-parameter terminal 'xterm-mouse-mode)
318 ;; Simulate selecting a terminal by selecting one of its frames 319 ;; Simulate selecting a terminal by selecting one of its frames
@@ -320,7 +321,13 @@ terminals that support it.")
320 (with-selected-frame (car (frames-on-display-list terminal)) 321 (with-selected-frame (car (frames-on-display-list terminal))
321 (define-key input-decode-map "\e[M" 'xterm-mouse-translate) 322 (define-key input-decode-map "\e[M" 'xterm-mouse-translate)
322 (define-key input-decode-map "\e[<" 'xterm-mouse-translate-extended)) 323 (define-key input-decode-map "\e[<" 'xterm-mouse-translate-extended))
323 (send-string-to-terminal xterm-mouse-tracking-enable-sequence terminal) 324 (condition-case err
325 (send-string-to-terminal xterm-mouse-tracking-enable-sequence
326 terminal)
327 ;; FIXME: This should use a dedicated error signal.
328 (error (if (equal (cadr err) "Terminal is currently suspended")
329 nil ;The sequence will be sent upon resume.
330 (signal (car err) (cdr err)))))
324 (push xterm-mouse-tracking-enable-sequence 331 (push xterm-mouse-tracking-enable-sequence
325 (terminal-parameter nil 'tty-mode-set-strings)) 332 (terminal-parameter nil 'tty-mode-set-strings))
326 (push xterm-mouse-tracking-disable-sequence 333 (push xterm-mouse-tracking-disable-sequence
@@ -338,7 +345,13 @@ terminals that support it.")
338 ;; command too many times (or to catch an unintended key sequence), than 345 ;; command too many times (or to catch an unintended key sequence), than
339 ;; to send it too few times (or to fail to let xterm-mouse events 346 ;; to send it too few times (or to fail to let xterm-mouse events
340 ;; pass by untranslated). 347 ;; pass by untranslated).
341 (send-string-to-terminal xterm-mouse-tracking-disable-sequence terminal) 348 (condition-case err
349 (send-string-to-terminal xterm-mouse-tracking-disable-sequence
350 terminal)
351 ;; FIXME: This should use a dedicated error signal.
352 (error (if (equal (cadr err) "Terminal is currently suspended")
353 nil
354 (signal (car err) (cdr err)))))
342 (setf (terminal-parameter nil 'tty-mode-set-strings) 355 (setf (terminal-parameter nil 'tty-mode-set-strings)
343 (remq xterm-mouse-tracking-enable-sequence 356 (remq xterm-mouse-tracking-enable-sequence
344 (terminal-parameter nil 'tty-mode-set-strings))) 357 (terminal-parameter nil 'tty-mode-set-strings)))