aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-02-10 17:32:13 -0800
committerPaul Eggert2011-02-10 17:32:13 -0800
commit78998ca9cf65cc65579c8b756d35a2db9d3c8ef7 (patch)
treed897294f854a85c547b4630fcc3d2bab96285a88
parent2098fd549f4c8a00246324a35de6af8144f5b628 (diff)
parent5708ce5e83340d735ca9b87f028caf0bf5709b6e (diff)
downloademacs-78998ca9cf65cc65579c8b756d35a2db9d3c8ef7.tar.gz
emacs-78998ca9cf65cc65579c8b756d35a2db9d3c8ef7.zip
Merge from mainline.
-rw-r--r--lisp/ChangeLog21
-rw-r--r--lisp/emacs-lisp/edebug.el2
-rw-r--r--lisp/emacs-lisp/smie.el16
-rw-r--r--lisp/gnus/ChangeLog17
-rw-r--r--lisp/gnus/gnus-sum.el6
-rw-r--r--lisp/gnus/message.el10
-rw-r--r--lisp/net/rcirc.el2
-rw-r--r--lisp/progmodes/grep.el6
-rw-r--r--lisp/server.el230
-rw-r--r--lisp/vc/vc-dir.el6
10 files changed, 176 insertions, 140 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c942f9c52ca..392510c63d0 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,26 @@
12011-02-11 Juanma Barranquero <lekktu@gmail.com>
2
3 * net/rcirc.el (rcirc-send-ctcp): Remove spurious arg to `format'.
4
12011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> 52011-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
2 6
7 * server.el (server-process-filter): Use pcase.
8
9 * emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two
10 conflicting ways.
11 (smie-indent--parent): Extend to "parent of arg".
12 (smie-indent-inside-string): New function.
13 (smie-indent-functions): Use it.
14
15 * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
16 bzr locking race condition.
17
18 * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is
19 still valid before using it.
20
21 * progmodes/grep.el (grep-mode-font-lock-keywords): Adjust to
22 `message' -> `compilation-message' rename (bug#8004).
23
3 Move keymap initialization into declaration. 24 Move keymap initialization into declaration.
4 * textmodes/enriched.el (enriched-mode-map): 25 * textmodes/enriched.el (enriched-mode-map):
5 * textmodes/bib-mode.el (bib-mode-map): 26 * textmodes/bib-mode.el (bib-mode-map):
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index f281521841c..70a7983dbea 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -3394,7 +3394,7 @@ go to the end of the last sexp, or if that is the same point, then step."
3394 ;; Return the function symbol, or nil if not instrumented. 3394 ;; Return the function symbol, or nil if not instrumented.
3395 (let ((func-marker (get func 'edebug))) 3395 (let ((func-marker (get func 'edebug)))
3396 (cond 3396 (cond
3397 ((markerp func-marker) 3397 ((and (markerp func-marker) (marker-buffer func-marker))
3398 ;; It is uninstrumented, so instrument it. 3398 ;; It is uninstrumented, so instrument it.
3399 (with-current-buffer (marker-buffer func-marker) 3399 (with-current-buffer (marker-buffer func-marker)
3400 (goto-char func-marker) 3400 (goto-char func-marker)
diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
index 702e8d880ba..e81a8b37981 100644
--- a/lisp/emacs-lisp/smie.el
+++ b/lisp/emacs-lisp/smie.el
@@ -915,7 +915,7 @@ This uses SMIE's tables and is expected to be placed on `post-self-insert-hook'.
915 ;; anything else than this trigger char, lest we'd blink 915 ;; anything else than this trigger char, lest we'd blink
916 ;; both when inserting the trigger char and when 916 ;; both when inserting the trigger char and when
917 ;; inserting a subsequent trigger char like SPC. 917 ;; inserting a subsequent trigger char like SPC.
918 (or (eq (point) pos) 918 (or (eq (char-before) last-command-event)
919 (not (memq (char-before) 919 (not (memq (char-before)
920 smie-blink-matching-triggers))) 920 smie-blink-matching-triggers)))
921 (or smie-blink-matching-inners 921 (or smie-blink-matching-inners
@@ -998,7 +998,10 @@ the beginning of a line."
998 (unless (numberp (cadr (assoc tok smie-grammar))) 998 (unless (numberp (cadr (assoc tok smie-grammar)))
999 (goto-char pos)) 999 (goto-char pos))
1000 (setq smie--parent 1000 (setq smie--parent
1001 (smie-backward-sexp 'halfsexp)))))) 1001 (or (smie-backward-sexp 'halfsexp)
1002 (let (res)
1003 (while (null (setq res (smie-backward-sexp))))
1004 (list nil (point) (nth 2 res)))))))))
1002 1005
1003(defun smie-rule-parent-p (&rest parents) 1006(defun smie-rule-parent-p (&rest parents)
1004 "Return non-nil if the current token's parent is among PARENTS. 1007 "Return non-nil if the current token's parent is among PARENTS.
@@ -1403,6 +1406,10 @@ should not be computed on the basis of the following token."
1403 (and (nth 4 (syntax-ppss)) 1406 (and (nth 4 (syntax-ppss))
1404 'noindent)) 1407 'noindent))
1405 1408
1409(defun smie-indent-inside-string ()
1410 (and (nth 3 (syntax-ppss))
1411 'noindent))
1412
1406(defun smie-indent-after-keyword () 1413(defun smie-indent-after-keyword ()
1407 ;; Indentation right after a special keyword. 1414 ;; Indentation right after a special keyword.
1408 (save-excursion 1415 (save-excursion
@@ -1476,8 +1483,9 @@ should not be computed on the basis of the following token."
1476 1483
1477(defvar smie-indent-functions 1484(defvar smie-indent-functions
1478 '(smie-indent-fixindent smie-indent-bob smie-indent-close 1485 '(smie-indent-fixindent smie-indent-bob smie-indent-close
1479 smie-indent-comment smie-indent-comment-continue smie-indent-comment-close 1486 smie-indent-comment smie-indent-comment-continue smie-indent-comment-close
1480 smie-indent-comment-inside smie-indent-keyword smie-indent-after-keyword 1487 smie-indent-comment-inside smie-indent-inside-string
1488 smie-indent-keyword smie-indent-after-keyword
1481 smie-indent-exps) 1489 smie-indent-exps)
1482 "Functions to compute the indentation. 1490 "Functions to compute the indentation.
1483Each function is called with no argument, shouldn't move point, and should 1491Each function is called with no argument, shouldn't move point, and should
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index ba4d270951b..8781ab3c0ec 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,12 @@
12011-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * message.el (message-bury): Don't pop up a new window when selected
4 window is dedicated.
5
62011-02-10 Antoine Levitt <antoine.levitt@gmail.com> (tiny change)
7
8 * gnus-sum.el (gnus-summary-save-parts): Use read-directory-name.
9
12011-02-09 Lars Ingebrigtsen <larsi@gnus.org> 102011-02-09 Lars Ingebrigtsen <larsi@gnus.org>
2 11
3 * nntp.el (nntp-retrieve-group-data-early-disabled): Disable the async 12 * nntp.el (nntp-retrieve-group-data-early-disabled): Disable the async
@@ -22,7 +31,7 @@
22 (nnimap-update-info): Clean up slightly. 31 (nnimap-update-info): Clean up slightly.
23 (nnimap-quirk): Add quirk for Gmail IMAP which bugs out on NUL 32 (nnimap-quirk): Add quirk for Gmail IMAP which bugs out on NUL
24 characters. 33 characters.
25 (nnimap-process-quirk): Renamed function to avoid collision. 34 (nnimap-process-quirk): Rename function to avoid collision.
26 (nnimap-update-info): Fix macrology bug-out. 35 (nnimap-update-info): Fix macrology bug-out.
27 (nnimap-update-info): Simplify split history test. 36 (nnimap-update-info): Simplify split history test.
28 37
@@ -43,7 +52,7 @@
43 * message.el (message-setup-1): Remove the read-only stuff, since it 52 * message.el (message-setup-1): Remove the read-only stuff, since it
44 doesn't work under XEmacs, for some reason. 53 doesn't work under XEmacs, for some reason.
45 54
46 * gnus-sum.el (gnus-user-date): Renamed back from 55 * gnus-sum.el (gnus-user-date): Rename back from
47 gnus-summary-user-date since user code refers to it. 56 gnus-summary-user-date since user code refers to it.
48 57
49 * shr.el (shr-render-td): Store the actual background colour used. 58 * shr.el (shr-render-td): Store the actual background colour used.
@@ -228,8 +237,8 @@
228 237
2292011-01-28 Daiki Ueno <ueno@unixuser.org> 2382011-01-28 Daiki Ueno <ueno@unixuser.org>
230 239
231 * mml2015.el (mml2015-epg-sign, mml2015-epg-encrypt): Give 240 * mml2015.el (mml2015-epg-sign, mml2015-epg-encrypt):
232 mml2015-signers higher precedence over mml2015-sign-with-sender. 241 Give mml2015-signers higher precedence over mml2015-sign-with-sender.
233 242
2342011-01-27 Lars Ingebrigtsen <larsi@gnus.org> 2432011-01-27 Lars Ingebrigtsen <larsi@gnus.org>
235 244
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 8221667ab65..8fac5021df3 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -12087,9 +12087,9 @@ If REVERSE, save parts that do not match TYPE."
12087 gnus-summary-save-parts-default-mime) 12087 gnus-summary-save-parts-default-mime)
12088 'gnus-summary-save-parts-type-history) 12088 'gnus-summary-save-parts-type-history)
12089 (setq gnus-summary-save-parts-last-directory 12089 (setq gnus-summary-save-parts-last-directory
12090 (read-file-name "Save to directory: " 12090 (read-directory-name "Save to directory: "
12091 gnus-summary-save-parts-last-directory 12091 gnus-summary-save-parts-last-directory
12092 nil t)) 12092 nil t))
12093 current-prefix-arg)) 12093 current-prefix-arg))
12094 (gnus-summary-iterate n 12094 (gnus-summary-iterate n
12095 (let ((gnus-display-mime-function nil) 12095 (let ((gnus-display-mime-function nil)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index e30f7f2c973..42b61950986 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4011,11 +4011,11 @@ Instead, just auto-save the buffer and then bury it."
4011 4011
4012(defun message-bury (buffer) 4012(defun message-bury (buffer)
4013 "Bury this mail BUFFER." 4013 "Bury this mail BUFFER."
4014 (let ((newbuf (other-buffer buffer))) 4014 (if message-return-action
4015 (bury-buffer buffer) 4015 (progn
4016 (if message-return-action 4016 (bury-buffer buffer)
4017 (apply (car message-return-action) (cdr message-return-action)) 4017 (apply (car message-return-action) (cdr message-return-action)))
4018 (switch-to-buffer newbuf)))) 4018 (with-current-buffer buffer (bury-buffer))))
4019 4019
4020(defun message-send (&optional arg) 4020(defun message-send (&optional arg)
4021 "Send the message in the current buffer. 4021 "Send the message in the current buffer.
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 8e4ded624de..c3e4f3d6169 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -720,7 +720,7 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.")
720(defun rcirc-send-ctcp (process target request &optional args) 720(defun rcirc-send-ctcp (process target request &optional args)
721 (let ((args (if args (concat " " args) ""))) 721 (let ((args (if args (concat " " args) "")))
722 (rcirc-send-privmsg process target 722 (rcirc-send-privmsg process target
723 (format "\C-a%s%s\C-a" request args "")))) 723 (format "\C-a%s%s\C-a" request args))))
724 724
725(defun rcirc-buffer-process (&optional buffer) 725(defun rcirc-buffer-process (&optional buffer)
726 "Return the process associated with channel BUFFER. 726 "Return the process associated with channel BUFFER.
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 4bab8a18dee..32ab52228f9 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -388,13 +388,13 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies
388 1 grep-error-face) 388 1 grep-error-face)
389 ;; remove match from grep-regexp-alist before fontifying 389 ;; remove match from grep-regexp-alist before fontifying
390 ("^Grep[/a-zA-z]* started.*" 390 ("^Grep[/a-zA-z]* started.*"
391 (0 '(face nil message nil help-echo nil mouse-face nil) t)) 391 (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t))
392 ("^Grep[/a-zA-z]* finished \\(?:(\\(matches found\\))\\|with \\(no matches found\\)\\).*" 392 ("^Grep[/a-zA-z]* finished \\(?:(\\(matches found\\))\\|with \\(no matches found\\)\\).*"
393 (0 '(face nil message nil help-echo nil mouse-face nil) t) 393 (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t)
394 (1 compilation-info-face nil t) 394 (1 compilation-info-face nil t)
395 (2 compilation-warning-face nil t)) 395 (2 compilation-warning-face nil t))
396 ("^Grep[/a-zA-z]* \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*" 396 ("^Grep[/a-zA-z]* \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*"
397 (0 '(face nil message nil help-echo nil mouse-face nil) t) 397 (0 '(face nil compilation-message nil help-echo nil mouse-face nil) t)
398 (1 grep-error-face) 398 (1 grep-error-face)
399 (2 grep-error-face nil t)) 399 (2 grep-error-face nil t))
400 ("^.+?-[0-9]+-.*\n" (0 grep-context-face)) 400 ("^.+?-[0-9]+-.*\n" (0 grep-context-face))
diff --git a/lisp/server.el b/lisp/server.el
index 62c59b41cee..df8cae0a6af 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -937,126 +937,122 @@ The following commands are accepted by the client:
937 tty-type ; string. 937 tty-type ; string.
938 files 938 files
939 filepos 939 filepos
940 command-line-args-left 940 args-left)
941 arg)
942 ;; Remove this line from STRING. 941 ;; Remove this line from STRING.
943 (setq string (substring string (match-end 0))) 942 (setq string (substring string (match-end 0)))
944 (setq command-line-args-left 943 (setq args-left
945 (mapcar 'server-unquote-arg (split-string request " " t))) 944 (mapcar 'server-unquote-arg (split-string request " " t)))
946 (while (setq arg (pop command-line-args-left)) 945 (while args-left
947 (cond 946 (pcase (pop args-left)
948 ;; -version CLIENT-VERSION: obsolete at birth. 947 ;; -version CLIENT-VERSION: obsolete at birth.
949 ((and (equal "-version" arg) command-line-args-left) 948 (`"-version" (pop args-left))
950 (pop command-line-args-left)) 949
951 950 ;; -nowait: Emacsclient won't wait for a result.
952 ;; -nowait: Emacsclient won't wait for a result. 951 (`"-nowait" (setq nowait t))
953 ((equal "-nowait" arg) (setq nowait t)) 952
954 953 ;; -current-frame: Don't create frames.
955 ;; -current-frame: Don't create frames. 954 (`"-current-frame" (setq use-current-frame t))
956 ((equal "-current-frame" arg) (setq use-current-frame t)) 955
957 956 ;; -display DISPLAY:
958 ;; -display DISPLAY: 957 ;; Open X frames on the given display instead of the default.
959 ;; Open X frames on the given display instead of the default. 958 (`"-display"
960 ((and (equal "-display" arg) command-line-args-left) 959 (setq display (pop args-left))
961 (setq display (pop command-line-args-left)) 960 (if (zerop (length display)) (setq display nil)))
962 (if (zerop (length display)) (setq display nil))) 961
963 962 ;; -parent-id ID:
964 ;; -parent-id ID: 963 ;; Open X frame within window ID, via XEmbed.
965 ;; Open X frame within window ID, via XEmbed. 964 (`"-parent-id"
966 ((and (equal "-parent-id" arg) command-line-args-left) 965 (setq parent-id (pop args-left))
967 (setq parent-id (pop command-line-args-left)) 966 (if (zerop (length parent-id)) (setq parent-id nil)))
968 (if (zerop (length parent-id)) (setq parent-id nil))) 967
969 968 ;; -window-system: Open a new X frame.
970 ;; -window-system: Open a new X frame. 969 (`"-window-system"
971 ((equal "-window-system" arg) 970 (setq dontkill t)
972 (setq dontkill t) 971 (setq tty-name 'window-system))
973 (setq tty-name 'window-system)) 972
974 973 ;; -resume: Resume a suspended tty frame.
975 ;; -resume: Resume a suspended tty frame. 974 (`"-resume"
976 ((equal "-resume" arg) 975 (lexical-let ((terminal (process-get proc 'terminal)))
977 (lexical-let ((terminal (process-get proc 'terminal))) 976 (setq dontkill t)
978 (setq dontkill t) 977 (push (lambda ()
979 (push (lambda () 978 (when (eq (terminal-live-p terminal) t)
980 (when (eq (terminal-live-p terminal) t) 979 (resume-tty terminal)))
981 (resume-tty terminal))) 980 commands)))
982 commands))) 981
983 982 ;; -suspend: Suspend the client's frame. (In case we
984 ;; -suspend: Suspend the client's frame. (In case we 983 ;; get out of sync, and a C-z sends a SIGTSTP to
985 ;; get out of sync, and a C-z sends a SIGTSTP to 984 ;; emacsclient.)
986 ;; emacsclient.) 985 (`"-suspend"
987 ((equal "-suspend" arg) 986 (lexical-let ((terminal (process-get proc 'terminal)))
988 (lexical-let ((terminal (process-get proc 'terminal))) 987 (setq dontkill t)
989 (setq dontkill t) 988 (push (lambda ()
990 (push (lambda () 989 (when (eq (terminal-live-p terminal) t)
991 (when (eq (terminal-live-p terminal) t) 990 (suspend-tty terminal)))
992 (suspend-tty terminal))) 991 commands)))
993 commands))) 992
994 993 ;; -ignore COMMENT: Noop; useful for debugging emacsclient.
995 ;; -ignore COMMENT: Noop; useful for debugging emacsclient. 994 ;; (The given comment appears in the server log.)
996 ;; (The given comment appears in the server log.) 995 (`"-ignore"
997 ((and (equal "-ignore" arg) command-line-args-left 996 (setq dontkill t)
998 (setq dontkill t) 997 (pop args-left))
999 (pop command-line-args-left))) 998
1000 999 ;; -tty DEVICE-NAME TYPE: Open a new tty frame at the client.
1001 ;; -tty DEVICE-NAME TYPE: Open a new tty frame at the client. 1000 (`"-tty"
1002 ((and (equal "-tty" arg) 1001 (setq tty-name (pop args-left)
1003 (cdr command-line-args-left)) 1002 tty-type (pop args-left)
1004 (setq tty-name (pop command-line-args-left) 1003 dontkill (or dontkill
1005 tty-type (pop command-line-args-left) 1004 (not use-current-frame))))
1006 dontkill (or dontkill 1005
1007 (not use-current-frame)))) 1006 ;; -position LINE[:COLUMN]: Set point to the given
1008 1007 ;; position in the next file.
1009 ;; -position LINE[:COLUMN]: Set point to the given 1008 (`"-position"
1010 ;; position in the next file. 1009 (if (not (string-match "\\+\\([0-9]+\\)\\(?::\\([0-9]+\\)\\)?"
1011 ((and (equal "-position" arg) 1010 (car args-left)))
1012 command-line-args-left 1011 (error "Invalid -position command in client args"))
1013 (string-match "\\+\\([0-9]+\\)\\(?::\\([0-9]+\\)\\)?" 1012 (let ((arg (pop args-left)))
1014 (car command-line-args-left))) 1013 (setq filepos
1015 (setq arg (pop command-line-args-left)) 1014 (cons (string-to-number (match-string 1 arg))
1016 (setq filepos 1015 (string-to-number (or (match-string 2 arg)
1017 (cons (string-to-number (match-string 1 arg)) 1016 ""))))))
1018 (string-to-number (or (match-string 2 arg) ""))))) 1017
1019 1018 ;; -file FILENAME: Load the given file.
1020 ;; -file FILENAME: Load the given file. 1019 (`"-file"
1021 ((and (equal "-file" arg) 1020 (let ((file (pop args-left)))
1022 command-line-args-left) 1021 (if coding-system
1023 (let ((file (pop command-line-args-left))) 1022 (setq file (decode-coding-string file coding-system)))
1024 (if coding-system 1023 (setq file (expand-file-name file dir))
1025 (setq file (decode-coding-string file coding-system))) 1024 (push (cons file filepos) files)
1026 (setq file (expand-file-name file dir)) 1025 (server-log (format "New file: %s %s"
1027 (push (cons file filepos) files) 1026 file (or filepos "")) proc))
1028 (server-log (format "New file: %s %s" 1027 (setq filepos nil))
1029 file (or filepos "")) proc)) 1028
1030 (setq filepos nil)) 1029 ;; -eval EXPR: Evaluate a Lisp expression.
1031 1030 (`"-eval"
1032 ;; -eval EXPR: Evaluate a Lisp expression. 1031 (if use-current-frame
1033 ((and (equal "-eval" arg) 1032 (setq use-current-frame 'always))
1034 command-line-args-left) 1033 (lexical-let ((expr (pop args-left)))
1035 (if use-current-frame 1034 (if coding-system
1036 (setq use-current-frame 'always)) 1035 (setq expr (decode-coding-string expr coding-system)))
1037 (lexical-let ((expr (pop command-line-args-left))) 1036 (push (lambda () (server-eval-and-print expr proc))
1038 (if coding-system 1037 commands)
1039 (setq expr (decode-coding-string expr coding-system))) 1038 (setq filepos nil)))
1040 (push (lambda () (server-eval-and-print expr proc)) 1039
1041 commands) 1040 ;; -env NAME=VALUE: An environment variable.
1042 (setq filepos nil))) 1041 (`"-env"
1043 1042 (let ((var (pop args-left)))
1044 ;; -env NAME=VALUE: An environment variable. 1043 ;; XXX Variables should be encoded as in getenv/setenv.
1045 ((and (equal "-env" arg) command-line-args-left) 1044 (process-put proc 'env
1046 (let ((var (pop command-line-args-left))) 1045 (cons var (process-get proc 'env)))))
1047 ;; XXX Variables should be encoded as in getenv/setenv. 1046
1048 (process-put proc 'env 1047 ;; -dir DIRNAME: The cwd of the emacsclient process.
1049 (cons var (process-get proc 'env))))) 1048 (`"-dir"
1050 1049 (setq dir (pop args-left))
1051 ;; -dir DIRNAME: The cwd of the emacsclient process. 1050 (if coding-system
1052 ((and (equal "-dir" arg) command-line-args-left) 1051 (setq dir (decode-coding-string dir coding-system)))
1053 (setq dir (pop command-line-args-left)) 1052 (setq dir (command-line-normalize-file-name dir)))
1054 (if coding-system 1053
1055 (setq dir (decode-coding-string dir coding-system))) 1054 ;; Unknown command.
1056 (setq dir (command-line-normalize-file-name dir))) 1055 (arg (error "Unknown command: %s" arg))))
1057
1058 ;; Unknown command.
1059 (t (error "Unknown command: %s" arg))))
1060 1056
1061 (setq frame 1057 (setq frame
1062 (cond 1058 (cond
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 5f386bcee76..38fbaaedd32 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -1061,6 +1061,9 @@ Throw an error if another update process is in progress."
1061 (unless (vc-dir-fileinfo->directory info) 1061 (unless (vc-dir-fileinfo->directory info)
1062 (setf (vc-dir-fileinfo->needs-update info) t) nil)) 1062 (setf (vc-dir-fileinfo->needs-update info) t) nil))
1063 vc-ewoc) 1063 vc-ewoc)
1064 ;; Bzr has serious locking problems, so setup the headers first (this is
1065 ;; synchronous) rather than doing it while dir-status is running.
1066 (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "")
1064 (lexical-let ((buffer (current-buffer))) 1067 (lexical-let ((buffer (current-buffer)))
1065 (with-current-buffer vc-dir-process-buffer 1068 (with-current-buffer vc-dir-process-buffer
1066 (cd def-dir) 1069 (cd def-dir)
@@ -1081,8 +1084,7 @@ Throw an error if another update process is in progress."
1081 (vc-dir-refresh-files 1084 (vc-dir-refresh-files
1082 (mapcar 'vc-dir-fileinfo->name remaining) 1085 (mapcar 'vc-dir-fileinfo->name remaining)
1083 'up-to-date) 1086 'up-to-date)
1084 (setq mode-line-process nil))))))))) 1087 (setq mode-line-process nil))))))))))))
1085 (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) ""))))
1086 1088
1087(defun vc-dir-show-fileentry (file) 1089(defun vc-dir-show-fileentry (file)
1088 "Insert an entry for a specific file into the current *VC-dir* listing. 1090 "Insert an entry for a specific file into the current *VC-dir* listing.