summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog60
-rw-r--r--lisp/Makefile.in1
-rw-r--r--lisp/dired.el2
-rw-r--r--lisp/emacs-lisp/cl-loaddefs.el2
-rw-r--r--lisp/files.el1
-rw-r--r--lisp/international/mule-cmds.el3
-rw-r--r--lisp/locate.el17
-rw-r--r--lisp/ls-lisp.el3
-rw-r--r--lisp/minibuffer.el13
-rw-r--r--lisp/net/tramp.el3
-rw-r--r--lisp/progmodes/python.el18
-rw-r--r--lisp/progmodes/tcl.el10
-rw-r--r--lisp/progmodes/verilog-mode.el43
-rw-r--r--lisp/server.el28
-rw-r--r--lisp/vc/vc-mtn.el6
15 files changed, 140 insertions, 70 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 33d50961912..fa3bdfc3780 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,65 @@
2010-11-09 Glenn Morris <rgm@gnu.org>
+ * progmodes/tcl.el (tcl-hairy-scan-for-comment): Doc fix.
+
+2010-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * minibuffer.el (minibuffer-completion-help): Specify the end of the
+ completion field (bug#7211).
+
+ * progmodes/python.el (python-font-lock-syntactic-keywords): (bug#7322)
+ Fix handling of backslash escapes.
+ (python-quote-syntax): Adjust accordingly.
+
+2010-11-09 Richard Levitte <richard@levitte.org> (tiny change)
+2010-11-09 Richard Levitte <richard@levitte.org> (tiny patch)
+
+ * vc-mtn.el (vc-mtn-working-revision, vc-mtn-after-dir-status)
+ (vc-mtn-workfile-branch): Adjust to new output format.
+
+2010-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * international/mule-cmds.el (princ-list): Mark as obsolete.
+
+2010-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/smie.el: New package.
+
+2010-11-09 Michael Albinus <michael.albinus@gmx.de>
+
+ * files.el (backup-by-copying-when-mismatch):
+ Set `permanent-local' property.
+
+ * net/tramp.el (tramp-handle-insert-file-contents): Do not set
+ `permanent-local' property for `backup-by-copying-when-mismatch'.
+
+2010-11-09 Eli Zaretskii <eliz@gnu.org>
+
+ * ls-lisp.el (insert-directory): Doc fix. (bug#7285)
+
+2010-11-09 Wilson Snyder <wsnyder@wsnyder.org>
+
+ * progmodes/verilog-mode.el (verilog-insert-one-definition)
+ (verilog-read-decls, verilog-read-sub-decls-sig): Fix AUTOWIRE and
+ AUTOINOUT for SV style multidimensional arrays, bug294.
+ Reported by Eric Mastromarchi.
+ (verilog-preprocess): Use with-current-buffer and
+ font-lock-fontify-buffer to cleanup style issues.
+
+2010-11-09 Glenn Morris <rgm@gnu.org>
+
+ * locate.el (locate, locate-mode): Doc fixes.
+
+2010-11-09 Chong Yidong <cyd@stupidchicken.com>
+
+ * server.el (server-start): New arg INHIBIT-PROMPT prevents asking
+ user for confirmation.
+ (server-force-stop): Use it.
+ (server-start): Use server-force-stop for kill-emacs-hook, to
+ avoid user interaction while killing Emacs.
+
+2010-11-09 Glenn Morris <rgm@gnu.org>
+
* progmodes/meta-mode.el: Remove leading `*' from defcustom docs.
(meta-indent-line): Simplify.
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 2b2081a25d0..7c42d1a94b1 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -180,6 +180,7 @@ TAGS TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptags
els=`echo $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) | sed -e "s,$(lisp)/[^ ]*loaddefs[^ ]*,," -e "s,$(lisp)/ldefs-boot[^ ]*,,"`; \
${ETAGS} -o $@ $$els
+ $(lisp)/emacs-lisp/smie.elc \
# The src/Makefile.in has its own set of dependencies and when they decide
# that one Lisp file needs to be re-compiled, we had better recompile it as
# well, otherwise every subsequent make will again call us, until we finally
diff --git a/lisp/dired.el b/lisp/dired.el
index 345956f029f..04ba6083c21 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3539,7 +3539,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
-;;;;;; dired-diff) "dired-aux" "dired-aux.el" "416d272299fd4774c47c2f677ee640a4")
+;;;;;; dired-diff) "dired-aux" "dired-aux.el" "1628b7a7d379fb4da8ae4bf29faad4b5")
;;; Generated autoloads from dired-aux.el
(autoload 'dired-diff "dired-aux" "\
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el
index 4bda6ceb759..b1d934f08e0 100644
--- a/lisp/emacs-lisp/cl-loaddefs.el
+++ b/lisp/emacs-lisp/cl-loaddefs.el
@@ -282,7 +282,7 @@ Not documented
;;;;;; do-all-symbols do-symbols dotimes dolist do* do loop return-from
;;;;;; return block etypecase typecase ecase case load-time-value
;;;;;; eval-when destructuring-bind function* defmacro* defun* gentemp
-;;;;;; gensym) "cl-macs" "cl-macs.el" "82f8370745a60dc26536a0237cba893f")
+;;;;;; gensym) "cl-macs" "cl-macs.el" "979862b54946a5fcbbccdd90fa3f84d8")
;;; Generated autoloads from cl-macs.el
(autoload 'gensym "cl-macs" "\
diff --git a/lisp/files.el b/lisp/files.el
index 0c5640d13a4..ca698cab33d 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -124,6 +124,7 @@ the default for a new file created there by you.
This variable is relevant only if `backup-by-copying' is nil."
:type 'boolean
:group 'backup)
+(put 'backup-by-copying-when-mismatch 'permanent-local t)
(defcustom backup-by-copying-when-privileged-mismatch 200
"Non-nil means create backups by copying to preserve a privileged owner.
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index a3609c0ccfc..2b193fbe42a 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -2033,10 +2033,11 @@ See `set-language-info-alist' for use in programs."
"Do various unibyte-mode setups for language environment LANGUAGE-NAME."
(set-display-table-and-terminal-coding-system language-name))
-(defsubst princ-list (&rest args)
+(defun princ-list (&rest args)
"Print all arguments with `princ', then print \"\\n\"."
(while args (princ (car args)) (setq args (cdr args)))
(princ "\n"))
+(make-obsolete 'princ-list "use mapc and princ instead" "23.3")
(put 'describe-specified-language-support 'apropos-inhibit t)
diff --git a/lisp/locate.el b/lisp/locate.el
index f1983a3e18a..f58b95710e2 100644
--- a/lisp/locate.el
+++ b/lisp/locate.el
@@ -270,7 +270,7 @@ that is, with a prefix arg, you get the default behavior."
(defun locate (search-string &optional filter arg)
"Run the program `locate', putting results in `*Locate*' buffer.
Pass it SEARCH-STRING as argument. Interactively, prompt for SEARCH-STRING.
-With prefix arg, prompt for the exact shell command to run instead.
+With prefix arg ARG, prompt for the exact shell command to run instead.
This program searches for those file names in a database that match
SEARCH-STRING and normally outputs all matching absolute file names,
@@ -286,7 +286,8 @@ the variables `locate-command' or `locate-make-command-line'.
The main use of FILTER is to implement `locate-with-filter'. See
the docstring of that function for its meaning.
-ARG is the interactive prefix arg."
+After preparing the results buffer, this runs `dired-mode-hook' and
+then `locate-post-command-hook'."
(interactive
(list
(locate-prompt-for-search-string)
@@ -300,8 +301,7 @@ ARG is the interactive prefix arg."
(locate-cmd-args (cdr locate-cmd-list))
(run-locate-command
(or (and arg (not locate-prompt-for-command))
- (and (not arg) locate-prompt-for-command)))
- )
+ (and (not arg) locate-prompt-for-command))))
;; Find the Locate buffer
(save-window-excursion
@@ -323,16 +323,13 @@ ARG is the interactive prefix arg."
(and filter
(locate-filter-output filter))
- (locate-do-setup search-string)
- ))
+ (locate-do-setup search-string)))
(and (not (string-equal (buffer-name) locate-buffer-name))
(pop-to-buffer locate-buffer-name))
(run-hooks 'dired-mode-hook)
(dired-next-line 3) ;move to first matching file.
- (run-hooks 'locate-post-command-hook)
- )
- )
+ (run-hooks 'locate-post-command-hook)))
;;;###autoload
(defun locate-with-filter (search-string filter &optional arg)
@@ -447,6 +444,7 @@ file name or is inside a subdirectory."
\\<locate-mode-map>\
In that buffer, you can use almost all the usual dired bindings.
\\[locate-find-directory] visits the directory of the file on the current line.
+This function runs `locate-mode-hook' before returning.
Operating on listed files works, but does not always
automatically update the buffer as in ordinary Dired.
@@ -687,5 +685,4 @@ the database on the command line."
(provide 'locate)
-;; arch-tag: 60c4d098-b5d5-4b3c-a3e0-51a2e9f43898
;;; locate.el ends here
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index f19143228c5..15299bc304e 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -220,7 +220,8 @@ The Lisp emulation does not run any external programs or shells. It
supports ordinary shell wildcards if `ls-lisp-support-shell-wildcards'
is non-nil; otherwise, it interprets wildcards as regular expressions
to match file names. It does not support all `ls' switches -- those
-that work are: A a c i r S s t u U X g G B C R n and F partly."
+that work are: A a B C c F G g h i n R r S s t U u X. The l switch
+is assumed to be always present and cannot be turned off."
(if ls-lisp-use-insert-directory-program
(funcall original-insert-directory
file switches wildcard full-directory-p)
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 2612dfd672c..0275dc1923b 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -42,7 +42,7 @@
;; provide the start info but not the end info in
;; completion-base-position.
;; - quoting is problematic. E.g. the double-dollar quoting used in
-;; substitie-in-file-name (and hence read-file-name-internal) bumps
+;; substitute-in-file-name (and hence read-file-name-internal) bumps
;; into various bugs:
;; - choose-completion doesn't know how to quote the text it inserts.
;; E.g. it fails to double the dollars in file-name completion, or
@@ -1133,6 +1133,7 @@ variables.")
(interactive)
(message "Making completion list...")
(lexical-let* ((start (field-beginning))
+ (end (field-end))
(string (field-string))
(completions (completion-all-completions
string
@@ -1164,10 +1165,12 @@ variables.")
completions)))
(with-current-buffer standard-output
(set (make-local-variable 'completion-base-position)
- ;; FIXME: We should provide the END part as well, but
- ;; currently completion-all-completions does not give
- ;; us the necessary information.
- (list (+ start base-size) nil)))
+ (list (+ start base-size)
+ ;; FIXME: We should pay attention to completion
+ ;; boundaries here, but currently
+ ;; completion-all-completions does not give us the
+ ;; necessary information.
+ end)))
(display-completion-list completions)))
;; If there are no completions, or if the current input is already the
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 1ca46d213d3..e5ebe81ce29 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2864,8 +2864,7 @@ User is always nil."
(set-buffer-modified-p nil)
;; For root, preserve owner and group when editing files.
(when (string-equal (file-remote-p filename 'user) "root")
- (set (make-local-variable 'backup-by-copying-when-mismatch) t)
- (put 'backup-by-copying-when-mismatch 'permanent-local t)))
+ (set (make-local-variable 'backup-by-copying-when-mismatch) t)))
(when (and (stringp local-copy)
(or remote-copy (null tramp-temp-buffer-file-name)))
(delete-file local-copy))
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index e72b18afd61..d2bb82e0580 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -171,21 +171,9 @@
;; string delimiters. Fixme: Is there a better way?
;; First avoid a sequence preceded by an odd number of backslashes.
(syntax-propertize-rules
- (;; (rx (not (any ?\\))
- ;; ?\\ (* (and ?\\ ?\\))
- ;; (group (syntax string-quote))
- ;; (backref 1)
- ;; (group (backref 1)))
- ;; ĦBackrefs don't work in syntax-propertize-rules!
- "[^\\]\\\\\\(\\\\\\\\\\)*\\(?:''\\('\\)\\|\"\"\\(?2:\"\\)\\)"
- (2 "\"")) ; dummy
- (;; (rx (optional (group (any "uUrR"))) ; prefix gets syntax property
- ;; (optional (any "rR")) ; possible second prefix
- ;; (group (syntax string-quote)) ; maybe gets property
- ;; (backref 2) ; per first quote
- ;; (group (backref 2))) ; maybe gets property
- ;; ĦBackrefs don't work in syntax-propertize-rules!
- "\\([RUru]\\)?[Rr]?\\(?:\\('\\)'\\('\\)\\|\\(?2:\"\\)\"\\(?3:\"\\)\\)"
+ (;; ĦBackrefs don't work in syntax-propertize-rules!
+ (concat "\\(?:\\([RUru]\\)[Rr]?\\|^\\|[^\\]\\(?:\\\\.\\)*\\)" ;Prefix.
+ "\\(?:\\('\\)'\\('\\)\\|\\(?2:\"\\)\"\\(?3:\"\\)\\)")
(3 (ignore (python-quote-syntax))))
;; This doesn't really help.
;;((rx (and ?\\ (group ?\n))) (1 " "))
diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el
index 10fe0e7885e..620d236078b 100644
--- a/lisp/progmodes/tcl.el
+++ b/lisp/progmodes/tcl.el
@@ -607,15 +607,11 @@ Commands:
(set (make-local-variable 'dabbrev-abbrev-skip-leading-regexp) "[$!]")
(set (make-local-variable 'dabbrev-abbrev-char-regexp) "\\sw\\|\\s_")
- ;; This can only be set to t in Emacs 19 and XEmacs.
- ;; Emacs 18 and Epoch lose.
(set (make-local-variable 'parse-sexp-ignore-comments) t)
;; XEmacs has defun-prompt-regexp, but I don't believe
;; that it works for end-of-defun -- only for
;; beginning-of-defun.
(set (make-local-variable 'defun-prompt-regexp) tcl-omit-ws-regexp)
- ;; The following doesn't work in Lucid Emacs 19.6, but maybe
- ;; it will appear in later versions.
(set (make-local-variable 'add-log-current-defun-function)
'tcl-add-log-defun)
@@ -1201,11 +1197,7 @@ semicolon, opening brace, or opening bracket on the same line."
"Determine if point is in a comment.
Returns a list of the form `(FLAG . STATE)'. STATE can be used
as input to future invocations. FLAG is nil if not in comment,
-t otherwise. If in comment, leaves point at beginning of comment.
-
-This function does not work in Emacs 18.
-See also `tcl-simple-scan-for-comment', a
-simpler version that is often right, and works in Emacs 18."
+t otherwise. If in comment, leaves point at beginning of comment."
(let ((bol (save-excursion
(goto-char end)
(line-beginning-position)))
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 2bd4021a85f..42527ff60eb 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -124,9 +124,9 @@
;;; Code:
;; This variable will always hold the version number of the mode
-(defconst verilog-mode-version "647"
+(defconst verilog-mode-version "650"
"Version of this Verilog mode.")
-(defconst verilog-mode-release-date "2010-10-20-GNU"
+(defconst verilog-mode-release-date "2010-11-05-GNU"
"Release date of this Verilog mode.")
(defconst verilog-mode-release-emacs t
"If non-nil, this version of Verilog mode was released with Emacs itself.")
@@ -4551,16 +4551,18 @@ FILENAME or defaults to `buffer-file-name`."
default nil nil
'verilog-preprocess-history default)))))
(unless command (setq command (verilog-expand-command verilog-preprocessor)))
- (let* ((dir (file-name-directory (or filename buffer-file-name)))
+ (let* ((fontlocked (and (boundp 'font-lock-mode) font-lock-mode))
+ (dir (file-name-directory (or filename buffer-file-name)))
(file (file-name-nondirectory (or filename buffer-file-name)))
(cmd (concat "cd " dir "; " command " " file)))
(with-output-to-temp-buffer "*Verilog-Preprocessed*"
- (save-excursion
- (set-buffer "*Verilog-Preprocessed*")
+ (with-current-buffer (get-buffer "*Verilog-Preprocessed*")
(insert (concat "// " cmd "\n"))
(shell-command cmd "*Verilog-Preprocessed*")
(verilog-mode)
- (font-lock-mode)))))
+ ;; Without this force, it takes a few idle seconds
+ ;; to get the color, which is very jarring
+ (when fontlocked (font-lock-fontify-buffer))))))
;;
@@ -7266,7 +7268,10 @@ Return a array of [outputs inouts inputs wire reg assign const]."
((looking-at "\\s-*\\(\\[[^]]+\\]\\)")
(goto-char (match-end 0))
(cond (newsig ; Memory, not just width. Patch last signal added's memory (nth 3)
- (setcar (cdr (cdr (cdr newsig))) (match-string 1)))
+ (setcar (cdr (cdr (cdr newsig)))
+ (if (verilog-sig-memory newsig)
+ (concat (verilog-sig-memory newsig) (match-string 1))
+ (match-string 1))))
(vec ;; Multidimensional
(setq multidim (cons vec multidim))
(setq vec (verilog-string-replace-matches
@@ -7404,7 +7409,9 @@ Return a array of [outputs inouts inputs wire reg assign const]."
(cons (verilog-sig-new
sig
(if dotname (verilog-sig-bits portdata) vec)
- (concat "To/From " comment) nil nil
+ (concat "To/From " comment)
+ (verilog-sig-memory portdata)
+ nil
(verilog-sig-signed portdata)
(verilog-sig-type portdata)
multidim nil)
@@ -7415,7 +7422,9 @@ Return a array of [outputs inouts inputs wire reg assign const]."
(cons (verilog-sig-new
sig
(if dotname (verilog-sig-bits portdata) vec)
- (concat "From " comment) nil nil
+ (concat "From " comment)
+ (verilog-sig-memory portdata)
+ nil
(verilog-sig-signed portdata)
(verilog-sig-type portdata)
multidim nil)
@@ -7426,7 +7435,9 @@ Return a array of [outputs inouts inputs wire reg assign const]."
(cons (verilog-sig-new
sig
(if dotname (verilog-sig-bits portdata) vec)
- (concat "To " comment) nil nil
+ (concat "To " comment)
+ (verilog-sig-memory portdata)
+ nil
(verilog-sig-signed portdata)
(verilog-sig-type portdata)
multidim nil)
@@ -7436,7 +7447,9 @@ Return a array of [outputs inouts inputs wire reg assign const]."
(cons (verilog-sig-new
sig
(if dotname (verilog-sig-bits portdata) vec)
- (concat "To/From " comment) nil nil
+ (concat "To/From " comment)
+ (verilog-sig-memory portdata)
+ nil
(verilog-sig-signed portdata)
(verilog-sig-type portdata)
multidim nil)
@@ -7448,7 +7461,9 @@ Return a array of [outputs inouts inputs wire reg assign const]."
(cons (verilog-sig-new
sig
(if dotname (verilog-sig-bits portdata) vec)
- (concat "To/From " comment) nil nil
+ (concat "To/From " comment)
+ (verilog-sig-memory portdata)
+ nil
(verilog-sig-signed portdata)
(verilog-sig-type portdata)
multidim nil)
@@ -8862,7 +8877,9 @@ with appropriate INDENT-PT indentation."
(indent-to (max 24 (+ indent-pt 16)))
(unless (= (char-syntax (preceding-char)) ?\ )
(insert " ")) ; Need space between "]name" if indent-to did nothing
- (insert (verilog-sig-name sig)))
+ (insert (verilog-sig-name sig))
+ (when (verilog-sig-memory sig)
+ (insert " " (verilog-sig-memory sig))))
(defun verilog-insert-definition (sigs direction indent-pt v2k &optional dont-sort)
"Print out a definition for a list of SIGS of the given DIRECTION,
diff --git a/lisp/server.el b/lisp/server.el
index 6fbef70768d..ecc9b16cce7 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -498,7 +498,7 @@ See variable `server-auth-dir' for details."
(error "The directory `%s' is unsafe" dir)))))
;;;###autoload
-(defun server-start (&optional leave-dead)
+(defun server-start (&optional leave-dead inhibit-prompt)
"Allow this Emacs process to be a server for client processes.
This starts a server communications subprocess through which
client \"editors\" can send your editing commands to this Emacs
@@ -508,7 +508,10 @@ Emacs distribution as your standard \"editor\".
Optional argument LEAVE-DEAD (interactively, a prefix arg) means just
kill any existing server communications subprocess.
-If a server is already running, the server is not started.
+If a server is already running, restart it. If clients are
+running, ask the user for confirmation first, unless optional
+argument INHIBIT-PROMPT is non-nil.
+
To force-start a server, do \\[server-force-delete] and then
\\[server-start]."
(interactive "P")
@@ -516,12 +519,14 @@ To force-start a server, do \\[server-force-delete] and then
;; Ask the user before deleting existing clients---except
;; when we can't get user input, which may happen when
;; doing emacsclient --eval "(kill-emacs)" in daemon mode.
- (if (and (daemonp)
- (null (cdr (frame-list)))
- (eq (selected-frame) terminal-frame))
- leave-dead
- (yes-or-no-p
- "The current server still has clients; delete them? ")))
+ (cond
+ ((and (daemonp)
+ (null (cdr (frame-list)))
+ (eq (selected-frame) terminal-frame))
+ leave-dead)
+ (inhibit-prompt t)
+ (t (yes-or-no-p
+ "The current server still has clients; delete them? "))))
(let* ((server-dir (if server-use-tcp server-auth-dir server-socket-dir))
(server-file (expand-file-name server-name server-dir)))
(when server-process
@@ -560,7 +565,7 @@ server or call `M-x server-force-delete' to forcibly disconnect it.")
(add-hook 'delete-frame-functions 'server-handle-delete-frame)
(add-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
(add-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function)
- (add-hook 'kill-emacs-hook (lambda () (server-mode -1))) ;Cleanup upon exit.
+ (add-hook 'kill-emacs-hook 'server-force-stop) ;Cleanup upon exit.
(setq server-process
(apply #'make-network-process
:name server-name
@@ -601,6 +606,11 @@ server or call `M-x server-force-delete' to forcibly disconnect it.")
" " (number-to-string (emacs-pid)) ; Kept for compatibility
"\n" auth-key)))))))))
+(defun server-force-stop ()
+ "Kill all connections to the current server.
+This function is meant to be called from `kill-emacs-hook'."
+ (server-start nil t))
+
;;;###autoload
(defun server-force-delete (&optional name)
"Unconditionally delete connection file for server NAME.
diff --git a/lisp/vc/vc-mtn.el b/lisp/vc/vc-mtn.el
index 3d76d34f3d8..a1ca6ab4d65 100644
--- a/lisp/vc/vc-mtn.el
+++ b/lisp/vc/vc-mtn.el
@@ -110,7 +110,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
(defun vc-mtn-after-dir-status (update-function)
(let (result)
(goto-char (point-min))
- (re-search-forward "Current branch: \\(.*\\)\nChanges against parent \\(.*\\)" nil t)
+ (re-search-forward "\\(?:Current b\\|B\\)ranch: *\\(.*\\)\n?\nChanges against parent \\(.*\\)" nil t)
(while (re-search-forward
"^ \\(?:\\(patched \\)\\|\\(added \\)\\)\\(.*\\)$" nil t)
(cond ((match-end 1) (push (list (match-string 3) 'edited) result))
@@ -129,7 +129,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
(with-temp-buffer
(vc-mtn-command t 0 file "status")
(goto-char (point-min))
- (re-search-forward "Current branch: \\(.*\\)\nChanges against parent \\(.*\\)")
+ (re-search-forward "\\(?:Current b\\|B\\)ranch: *\\(.*\\)\n?\nChanges against parent \\(.*\\)")
(match-string 2))))
(defun vc-mtn-workfile-branch (file)
@@ -139,7 +139,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
(with-temp-buffer
(vc-mtn-command t 0 file "status")
(goto-char (point-min))
- (re-search-forward "Current branch: \\(.*\\)\nChanges against parent \\(.*\\)")
+ (re-search-forward "\\(?:Current b\\|B\\)ranch: *\\(.*\\)\n?\nChanges against parent \\(.*\\)")
(match-string 1))))
(defun vc-mtn-workfile-unchanged-p (file)