aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorChong Yidong2010-07-10 15:01:01 -0400
committerChong Yidong2010-07-10 15:01:01 -0400
commit7ac1c664547ca88fd6c0ff65ef5e780b1c5efcb0 (patch)
tree301c219611060db34a983f5b7dba58cf1fa93b69 /lisp
parent481044622937b001ee07a6f8c3f81c1e73ef9eaf (diff)
parent2ec1b5ee3464999a18b8197101e8bf08a3c564a8 (diff)
downloademacs-7ac1c664547ca88fd6c0ff65ef5e780b1c5efcb0.tar.gz
emacs-7ac1c664547ca88fd6c0ff65ef5e780b1c5efcb0.zip
Merge changes from emacs-23 branch.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog137
-rw-r--r--lisp/arc-mode.el9
-rw-r--r--lisp/bs.el2
-rw-r--r--lisp/comint.el8
-rw-r--r--lisp/descr-text.el2
-rw-r--r--lisp/dnd.el7
-rw-r--r--lisp/emacs-lisp/cl-loaddefs.el2
-rw-r--r--lisp/emacs-lisp/rx.el3
-rw-r--r--lisp/emulation/cua-base.el2
-rw-r--r--lisp/emulation/pc-select.el2
-rw-r--r--lisp/generic-x.el3
-rw-r--r--lisp/help.el5
-rw-r--r--lisp/hl-line.el6
-rw-r--r--lisp/htmlfontify.el2
-rw-r--r--lisp/mouse.el1
-rw-r--r--lisp/net/zeroconf.el27
-rw-r--r--lisp/play/zone.el6
-rw-r--r--lisp/progmodes/cc-mode.el7
-rw-r--r--lisp/progmodes/idlwave.el2
-rw-r--r--lisp/progmodes/js.el9
-rw-r--r--lisp/progmodes/python.el18
-rw-r--r--lisp/subr.el11
-rw-r--r--lisp/url/ChangeLog2
-rw-r--r--lisp/vc/vc-annotate.el13
-rw-r--r--lisp/vc/vc-dir.el36
-rw-r--r--lisp/vc/vc-git.el30
-rw-r--r--lisp/vc/vc.el9
-rw-r--r--lisp/wid-edit.el11
-rw-r--r--lisp/x-dnd.el4
-rw-r--r--lisp/xml.el26
30 files changed, 296 insertions, 106 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index f793f91a932..01ecaab86b6 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -17,6 +17,12 @@
17 (ispell-complete-word): Use ispell-complete-word-dict or 17 (ispell-complete-word): Use ispell-complete-word-dict or
18 ispell-alternate-dictionary. 18 ispell-alternate-dictionary.
19 19
202010-07-07 Christoph Scholtes <cschol2112@gmail.com>
21
22 * progmodes/python.el (python-font-lock-keywords): Add Python 2.7
23 builtins (BufferError, BytesWarning, WindowsError; callables
24 bin, bytearray, bytes, format, memoryview, next, print; __package__).
25
202010-07-07 Glenn Morris <rgm@gnu.org> 262010-07-07 Glenn Morris <rgm@gnu.org>
21 27
22 * play/zone.el (top-level): Do not require timer, tabify, or cl. 28 * play/zone.el (top-level): Do not require timer, tabify, or cl.
@@ -207,6 +213,75 @@
207 213
2082010-06-21 Karl Fogel <kfogel@red-bean.com> 2142010-06-21 Karl Fogel <kfogel@red-bean.com>
209 215
216 * play/zone.el (zone-fall-through-ws): Fix next-line ->
217 forward-line fallout.
218
2192010-07-06 Chong Yidong <cyd@stupidchicken.com>
220
221 * mouse.el (mouse-appearance-menu): Add docstring.
222
223 * help.el (describe-key): Print up-event using key-description.
224
2252010-07-03 Michael Albinus <michael.albinus@gmx.de>
226
227 * net/zeroconf.el (zeroconf-resolve-service)
228 (zeroconf-service-resolver-handler): Use
229 `dbus-byte-array-to-string'.
230 (zeroconf-publish-service): Use `dbus-string-to-byte-array'.
231
2322010-07-03 Jan Moringen <jan.moringen@uni-bielefeld.de>
233
234 * net/zeroconf.el (zeroconf-service-remove-hook): New defun.
235
2362010-06-30 Dan Nicolaescu <dann@ics.uci.edu>
237
238 Avoid displaying files with a nil state in vc-dir.
239 * vc-dir.el (vc-dir-update): Obey the noinsert argument in all
240 cases that cause insertion.
241 (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
242 with a nil state.
243
2442010-06-30 Chong Yidong <cyd@stupidchicken.com>
245
246 * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
247
2482010-06-29 Leo <sdl.web@gmail.com>
249
250 * emacs-lisp/rx.el (rx): Doc fix. (Bug#6537)
251
2522010-06-27 Oleksandr Gavenko <gavenkoa@gmail.com> (tiny change)
253
254 * generic-x.el (bat-generic-mode): Fix regexp for command line
255 switches (Bug#5719).
256
2572010-06-27 Masatake YAMATO <yamato@redhat.com>
258
259 * htmlfontify.el (hfy-face-attr-for-class): Use append instead
260 of nconc to avoid pure storage error (Bug#6239).
261
2622010-06-27 Christoph <cschol2112@googlemail.com> (tiny change)
263
264 * bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window)
265 (bookmark-bmenu-other-window-with-mouse): Remove unnecessary
266 bindings of bookmark-automatically-show-annotations (Bug#6515).
267
2682010-06-25 Eli Zaretskii <eliz@gnu.org>
269
270 * arc-mode.el (archive-zip-extract): Don't quote the file name on
271 MS-Windows and MS-DOS. (Bug#6467, Bug#6144)
272
2732010-06-24 ล tฤ›pรกn Nฤ›mec <stepnem@gmail.com> (tiny change)
274
275 * comint.el (make-comint, make-comint-in-buffer): Mention return
276 value in the docstrings. (Bug#6498)
277
2782010-06-24 Yoni Rabkin <yoni@rabkins.net>
279
280 * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
281 since it is not present when using some non-default switches.
282
2832010-06-23 Karl Fogel <kfogel@red-bean.com>
284
210 * simple.el (compose-mail): Fix doc string to refer to 285 * simple.el (compose-mail): Fix doc string to refer to
211 `compose-mail-user-agent-warnings', instead of to the 286 `compose-mail-user-agent-warnings', instead of to the
212 nonexistent `compose-mail-check-user-agent'. 287 nonexistent `compose-mail-check-user-agent'.
@@ -320,6 +395,66 @@
320 395
321 * emacs-lisp/package.el: New file. 396 * emacs-lisp/package.el: New file.
322 397
3982010-06-22 Dan Nicolaescu <dann@ics.uci.edu>
399
400 Fix vc-annotate for renamed files when using Git.
401 * vc-git.el (vc-git-find-revision): Deal with empty results from
402 ls-files. Doe not pass the object as a file name to cat-file, it
403 is not a file name.
404 (vc-git-annotate-command): Pass the file name using -- to avoid
405 ambiguity with the revision.
406 (vc-git-previous-revision): Pass a relative file name.
407
4082010-06-22 Glenn Morris <rgm@gnu.org>
409
410 * progmodes/js.el (js-mode-map): Use standard capitalization and
411 ellipses for menu entries.
412
413 * wid-edit.el (widget-complete): Doc fix.
414
4152010-06-22 Jรผrgen Hรถtzel <juergen@hoetzel.info> (tiny change)
416
417 * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
418
4192010-06-22 Dan Nicolaescu <dann@ics.uci.edu>
420
421 Fix annotating other revisions for renamed files in vc-annotate.
422 * vc-annotate.el (vc-annotate): Add an optional argument for the
423 VC backend. Use it when non-nil.
424 (vc-annotate-warp-revision): Pass the VC backend to vc-annotate. (Bug#6487)
425
426 Fix vc-annotate-show-changeset-diff-revision-at-line for git.
427 * vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
428 Do not pass the file name to the 'previous-revision call when we
429 don't want a file diff. (Bug#6489)
430
4312010-06-21 Dan Nicolaescu <dann@ics.uci.edu>
432
433 Fix finding revisions for renamed files in vc-annotate.
434 * vc.el (vc-find-revision): Add an optional argument for
435 the VC backend. Use it when non-nil.
436 * vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
437 backend to vc-find-revision. (Bug#6487)
438
4392010-06-21 Dan Nicolaescu <dann@ics.uci.edu>
440
441 Fix reading file names in Git annotate buffers.
442 * vc-git.el (vc-git-annotate-extract-revision-at-line): Remove
443 trailing whitespace. Suggested by Eric Hanchrow. (Bug#6481)
444
4452010-06-20 Alan Mackenzie <acm@muc.de>
446
447 * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
448 in file local variables, set it first.
449
4502010-06-19 Glenn Morris <rgm@gnu.org>
451
452 * descr-text.el (describe-char-unicode-data): Insert separating
453 space when needed. (Bug#6422)
454
455 * progmodes/idlwave.el (idlwave-action-and-binding):
456 Fix typo in 2009-12-03 change. (Bug#6450)
457
3232010-06-17 Stefan Monnier <monnier@iro.umontreal.ca> 4582010-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
324 459
325 * emacs-lisp/macroexp.el (macroexpand-all-1): Put back special 460 * emacs-lisp/macroexp.el (macroexpand-all-1): Put back special
@@ -335,6 +470,8 @@
335 * facemenu.el (list-colors-display): Call `pop-to-buffer' before 470 * facemenu.el (list-colors-display): Call `pop-to-buffer' before
336 `list-colors-print'. (Bug#6332) 471 `list-colors-print'. (Bug#6332)
337 472
473 * subr.el (read-quoted-char): Fix up last change (bug#6290).
474
3382010-06-16 Stefan Monnier <monnier@iro.umontreal.ca> 4752010-06-16 Stefan Monnier <monnier@iro.umontreal.ca>
339 476
340 * emacs-lisp/macroexp.el (macroexpand-all-1): Don't handle `lambda' 477 * emacs-lisp/macroexp.el (macroexpand-all-1): Don't handle `lambda'
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index fb6155dfd41..6dda7b2e40b 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -1811,10 +1811,13 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
1811 (t 1811 (t
1812 (archive-extract-by-stdout 1812 (archive-extract-by-stdout
1813 archive 1813 archive
1814 ;; unzip expands wildcards in NAME, so we need to quote it. 1814 ;; unzip expands wildcards in NAME, so we need to quote it. But
1815 ;; not on DOS/Windows, since that fails extraction on those
1816 ;; systems, and file names with wildcards in zip archives don't
1817 ;; work there anyway.
1815 ;; FIXME: Does pkunzip need similar treatment? 1818 ;; FIXME: Does pkunzip need similar treatment?
1816 ;; (7z doesn't need to quote wildcards) 1819 (if (and (not (memq system-type '(windows-nt ms-dos)))
1817 (if (equal (car archive-zip-extract) "unzip") 1820 (equal (car archive-zip-extract) "unzip"))
1818 (shell-quote-argument name) 1821 (shell-quote-argument name)
1819 name) 1822 name)
1820 archive-zip-extract)))) 1823 archive-zip-extract))))
diff --git a/lisp/bs.el b/lisp/bs.el
index 3fa91b49178..0ce7670201d 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -195,7 +195,7 @@ return a string representing the column's value."
195 'font-lock-constant-face 195 'font-lock-constant-face
196 'font-lock-comment-face)) 196 'font-lock-comment-face))
197 ;; Dired-Buffers 197 ;; Dired-Buffers
198 '("^..\\(.*Dired by .*\\)$" 1 font-lock-function-name-face) 198 '("^..\\(.*Dired .*\\)$" 1 font-lock-function-name-face)
199 ;; the star for modified buffers 199 ;; the star for modified buffers
200 '("^.\\(\\*\\) +[^\\*]" 1 font-lock-comment-face)) 200 '("^.\\(\\*\\) +[^\\*]" 1 font-lock-comment-face))
201 "Default font lock expressions for Buffer Selection Menu.") 201 "Default font lock expressions for Buffer Selection Menu.")
diff --git a/lisp/comint.el b/lisp/comint.el
index b097baad189..071537ffd89 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -701,7 +701,9 @@ a running process in that buffer, it is not restarted. Optional fourth arg
701STARTFILE is the name of a file, whose contents are sent to the 701STARTFILE is the name of a file, whose contents are sent to the
702process as its initial input. 702process as its initial input.
703 703
704If PROGRAM is a string, any more args are arguments to PROGRAM." 704If PROGRAM is a string, any more args are arguments to PROGRAM.
705
706Returns the (possibly newly created) process buffer."
705 (or (fboundp 'start-file-process) 707 (or (fboundp 'start-file-process)
706 (error "Multi-processing is not supported for this system")) 708 (error "Multi-processing is not supported for this system"))
707 (setq buffer (get-buffer-create (or buffer (concat "*" name "*")))) 709 (setq buffer (get-buffer-create (or buffer (concat "*" name "*"))))
@@ -725,7 +727,9 @@ a running process in that buffer, it is not restarted. Optional third arg
725STARTFILE is the name of a file, whose contents are sent to the 727STARTFILE is the name of a file, whose contents are sent to the
726process as its initial input. 728process as its initial input.
727 729
728If PROGRAM is a string, any more args are arguments to PROGRAM." 730If PROGRAM is a string, any more args are arguments to PROGRAM.
731
732Returns the (possibly newly created) process buffer."
729 (apply #'make-comint-in-buffer name nil program startfile switches)) 733 (apply #'make-comint-in-buffer name nil program startfile switches))
730 734
731;;;###autoload 735;;;###autoload
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 735023ceb02..93c69e0eea5 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -301,7 +301,7 @@ This function is semi-obsolete. Use `get-char-code-property'."
301 (lambda (arg) 301 (lambda (arg)
302 (string (string-to-number arg 16))) 302 (string (string-to-number arg 16)))
303 parts " ")) 303 parts " "))
304 (concat info parts)))) 304 (concat info (if info " ") parts))))
305 (list "Decimal digit value" 305 (list "Decimal digit value"
306 (nth 5 fields)) 306 (nth 5 fields))
307 (list "Digit value" 307 (list "Digit value"
diff --git a/lisp/dnd.el b/lisp/dnd.el
index c064aa9897a..d7cbb641bab 100644
--- a/lisp/dnd.el
+++ b/lisp/dnd.el
@@ -1,8 +1,9 @@
1;;; dnd.el --- drag and drop support. 1;;; dnd.el --- drag and drop support. -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
4;; Free Software Foundation, Inc.
4 5
5;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 6;; Author: Jan Djรคrv <jan.h.d@swipnet.se>
6;; Maintainer: FSF 7;; Maintainer: FSF
7;; Keywords: window, drag, drop 8;; Keywords: window, drag, drop
8 9
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el
index b14c879fcf7..ff0fa599985 100644
--- a/lisp/emacs-lisp/cl-loaddefs.el
+++ b/lisp/emacs-lisp/cl-loaddefs.el
@@ -282,7 +282,7 @@ Not documented
282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist 282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
283;;;;;; do* do loop return-from return block etypecase typecase ecase 283;;;;;; do* do loop return-from return block etypecase typecase ecase
284;;;;;; case load-time-value eval-when destructuring-bind function* 284;;;;;; case load-time-value eval-when destructuring-bind function*
285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "36cafd5054969b5bb0b1ce6a21605fed") 285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "49b7d96626dd8ba5d39551909edbd4c7")
286;;; Generated autoloads from cl-macs.el 286;;; Generated autoloads from cl-macs.el
287 287
288(autoload 'gensym "cl-macs" "\ 288(autoload 'gensym "cl-macs" "\
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
index 5d04494ecb6..85fe3514b01 100644
--- a/lisp/emacs-lisp/rx.el
+++ b/lisp/emacs-lisp/rx.el
@@ -1053,9 +1053,6 @@ CHAR
1053 like `and', but makes the match accessible with `match-end', 1053 like `and', but makes the match accessible with `match-end',
1054 `match-beginning', and `match-string'. 1054 `match-beginning', and `match-string'.
1055 1055
1056`(group SEXP1 SEXP2 ...)'
1057 another name for `submatch'.
1058
1059`(or SEXP1 SEXP2 ...)' 1056`(or SEXP1 SEXP2 ...)'
1060`(| SEXP1 SEXP2 ...)' 1057`(| SEXP1 SEXP2 ...)'
1061 matches anything that matches SEXP1 or SEXP2, etc. If all 1058 matches anything that matches SEXP1 or SEXP2, etc. If all
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index c2ac7e3b3d0..f6749cd9e97 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -4,7 +4,7 @@
4;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5 5
6;; Author: Kim F. Storm <storm@cua.dk> 6;; Author: Kim F. Storm <storm@cua.dk>
7;; Keywords: keyboard emulation convenience cua 7;; Keywords: keyboard emulations convenience cua
8 8
9;; This file is part of GNU Emacs. 9;; This file is part of GNU Emacs.
10 10
diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el
index 529ba290cb8..857f94cb5f5 100644
--- a/lisp/emulation/pc-select.el
+++ b/lisp/emulation/pc-select.el
@@ -6,7 +6,7 @@
6;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 6;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
7 7
8;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE> 8;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
9;; Keywords: convenience emulation 9;; Keywords: convenience emulations
10;; Created: 26 Sep 1995 10;; Created: 26 Sep 1995
11 11
12;; This file is part of GNU Emacs. 12;; This file is part of GNU Emacs.
diff --git a/lisp/generic-x.el b/lisp/generic-x.el
index a96ab5cbbe9..0083989c75a 100644
--- a/lisp/generic-x.el
+++ b/lisp/generic-x.el
@@ -508,8 +508,7 @@ like an INI file. You can add this hook to `find-file-hook'."
508 '("^[ \t]*\\(:\\sw+\\)" 1 font-lock-function-name-face t) 508 '("^[ \t]*\\(:\\sw+\\)" 1 font-lock-function-name-face t)
509 '("\\(%\\sw+%\\)" 1 font-lock-variable-name-face t) 509 '("\\(%\\sw+%\\)" 1 font-lock-variable-name-face t)
510 '("\\(%[0-9]\\)" 1 font-lock-variable-name-face t) 510 '("\\(%[0-9]\\)" 1 font-lock-variable-name-face t)
511 '("\\(/[^/ \"\t\n]+\\)" 1 font-lock-type-face) 511 '("[\t ]+\\([+-/][^\t\n\" ]+\\)" 1 font-lock-type-face)
512 '("[\t ]+\\([+-][^\t\n\" ]+\\)" 1 font-lock-type-face)
513 '("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?" 512 '("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
514 (1 font-lock-keyword-face) 513 (1 font-lock-keyword-face)
515 (2 font-lock-function-name-face nil t)) 514 (2 font-lock-function-name-face nil t))
diff --git a/lisp/help.el b/lisp/help.el
index 899547aa0a1..9434201797e 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -768,9 +768,10 @@ temporarily enables it to allow getting help on disabled items and buttons."
768 768
769----------------- up-event %s---------------- 769----------------- up-event %s----------------
770 770
771<%S>%s%s runs the command %S, which is " 771%s%s%s runs the command %S, which is "
772 (if mouse-1-tricky "(short click) " "") 772 (if mouse-1-tricky "(short click) " "")
773 ev-type mouse-msg 773 (key-description (vector up-event))
774 mouse-msg
774 (if mouse-1-remapped 775 (if mouse-1-remapped
775 " is remapped to <mouse-2>, which" "") 776 " is remapped to <mouse-2>, which" "")
776 defn-up)) 777 defn-up))
diff --git a/lisp/hl-line.el b/lisp/hl-line.el
index 755ff696453..9a791076002 100644
--- a/lisp/hl-line.el
+++ b/lisp/hl-line.el
@@ -1,12 +1,12 @@
1;;; hl-line.el --- highlight the current line 1;;; hl-line.el --- highlight the current line
2 2
3;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 3;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
4;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4;; 2008, 2009, 2010 Free Software Foundation, Inc.
5 5
6;; Author: Dave Love <fx@gnu.org> 6;; Author: Dave Love <fx@gnu.org>
7;; Maintainer: FSF 7;; Maintainer: FSF
8;; Created: 1998-09-13 8;; Created: 1998-09-13
9;; Keywords: faces, frames, emulation 9;; Keywords: faces, frames, emulations
10 10
11;; This file is part of GNU Emacs. 11;; This file is part of GNU Emacs.
12 12
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index 12e54972461..035b6d384e7 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -926,7 +926,7 @@ See also `hfy-display-class' for details of valid values for CLASS."
926 new-spec))))) 926 new-spec)))))
927 (if (or (memq :inherit face-spec) (eq 'default face)) 927 (if (or (memq :inherit face-spec) (eq 'default face))
928 face-spec 928 face-spec
929 (nconc face-spec (list :inherit 'default))) )) 929 (append face-spec (list :inherit 'default)))))
930 930
931;; construct an assoc of (css-tag-name . css-tag-value) pairs 931;; construct an assoc of (css-tag-name . css-tag-value) pairs
932;; from a face or assoc of face attributes: 932;; from a face or assoc of face attributes:
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 53818635511..0b2d7fbf83b 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -2357,6 +2357,7 @@ choose a font."
2357(declare-function font-face-attributes "font.c" (font &optional frame)) 2357(declare-function font-face-attributes "font.c" (font &optional frame))
2358 2358
2359(defun mouse-appearance-menu (event) 2359(defun mouse-appearance-menu (event)
2360 "Show a menu for changing the default face in the current buffer."
2360 (interactive "@e") 2361 (interactive "@e")
2361 (require 'face-remap) 2362 (require 'face-remap)
2362 (when (display-multi-font-p) 2363 (when (display-multi-font-p)
diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el
index b0b98fc57f3..e49a45c8a48 100644
--- a/lisp/net/zeroconf.el
+++ b/lisp/net/zeroconf.el
@@ -336,6 +336,23 @@ The attributes of SERVICE can be retrieved via the functions
336 (puthash type l-hook zeroconf-service-removed-hooks-hash))) 336 (puthash type l-hook zeroconf-service-removed-hooks-hash)))
337 (t (error "EVENT must be either `:new' or `:removed'")))) 337 (t (error "EVENT must be either `:new' or `:removed'"))))
338 338
339(defun zeroconf-service-remove-hook (type event function)
340 "Remove FUNCTION from the hook of service type TYPE.
341
342EVENT must be either :new or :removed and has to match the event
343type used when registering FUNCTION."
344 (let* ((table (cond
345 ((equal event :new)
346 zeroconf-service-added-hooks-hash)
347 ((equal event :removed)
348 zeroconf-service-removed-hooks-hash)
349 (t (error "EVENT must be either `:new' or `:removed'"))))
350 (l-hook (gethash type table nil)))
351 (remove-hook 'l-hook function)
352 (if l-hook
353 (puthash type l-hook table)
354 (remhash type table))))
355
339(defun zeroconf-get-host () 356(defun zeroconf-get-host ()
340 "Returns the local host name as string." 357 "Returns the local host name as string."
341 (dbus-call-method 358 (dbus-call-method
@@ -407,7 +424,7 @@ TYPE. The resulting list has the format
407 (elt (nth 9 result))) ;; TXT. 424 (elt (nth 9 result))) ;; TXT.
408 ;; The TXT field has the signature "aay". Transform to "as". 425 ;; The TXT field has the signature "aay". Transform to "as".
409 (while elt 426 (while elt
410 (setcar elt (apply 'string (car elt))) 427 (setcar elt (dbus-byte-array-to-string (car elt)))
411 (setq elt (cdr elt))) 428 (setq elt (cdr elt)))
412 429
413 (when nil ;; We discard it, no use so far. 430 (when nil ;; We discard it, no use so far.
@@ -599,7 +616,7 @@ DOMAIN is nil, the local domain is used."
599 ;; The "TXT" field has the signature "aay". Transform to "as". 616 ;; The "TXT" field has the signature "aay". Transform to "as".
600 (let ((elt (nth 9 val))) 617 (let ((elt (nth 9 val)))
601 (while elt 618 (while elt
602 (setcar elt (apply 'string (car elt))) 619 (setcar elt (dbus-byte-array-to-string (car elt)))
603 (setq elt (cdr elt)))) 620 (setq elt (cdr elt))))
604 (when zeroconf-debug 621 (when zeroconf-debug
605 (message "zeroconf-service-resolver-handler: %s %S" 622 (message "zeroconf-service-resolver-handler: %s %S"
@@ -641,11 +658,7 @@ For the description of arguments, see `zeroconf-resolved-services-hash'."
641 658
642 ;; The TXT field has the signature "as". Transform to "aay". 659 ;; The TXT field has the signature "as". Transform to "aay".
643 (dolist (elt txt) 660 (dolist (elt txt)
644 (let (args) 661 (add-to-list 'result (dbus-string-to-byte-array elt)))
645 (add-to-list
646 'result
647 (dolist (elt1 (string-to-list elt) (append '(:array) args))
648 (setq args (append args (list :byte elt1)))))))
649 662
650 ;; Add the service. 663 ;; Add the service.
651 (dbus-call-method 664 (dbus-call-method
diff --git a/lisp/play/zone.el b/lisp/play/zone.el
index 568d4cf2a19..4fa5a8c3920 100644
--- a/lisp/play/zone.el
+++ b/lisp/play/zone.el
@@ -478,8 +478,10 @@ If the element is a function or a list of a function and a number,
478 (wait 0.15) 478 (wait 0.15)
479 newpos fall-p) 479 newpos fall-p)
480 (while (when (save-excursion 480 (while (when (save-excursion
481 (forward-line 1) 481 (and (zerop (forward-line 1))
482 (and (= col (current-column)) 482 (progn
483 (forward-char col)
484 (= col (current-column)))
483 (setq newpos (point)) 485 (setq newpos (point))
484 (string= spaces (buffer-substring-no-properties 486 (string= spaces (buffer-substring-no-properties
485 newpos (+ newpos cw-ceil))) 487 newpos (+ newpos cw-ceil)))
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 9044b42a838..ed769158a50 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -669,8 +669,13 @@ They are set only when, respectively, the pseudo variables
669 669
670This function is called from the hook `before-hack-local-variables-hook'." 670This function is called from the hook `before-hack-local-variables-hook'."
671 (when c-buffer-is-cc-mode 671 (when c-buffer-is-cc-mode
672 (let ((stile (cdr (assq 'c-file-style file-local-variables-alist))) 672 (let ((mode-cons (assq 'mode file-local-variables-alist))
673 (stile (cdr (assq 'c-file-style file-local-variables-alist)))
673 (offsets (cdr (assq 'c-file-offsets file-local-variables-alist)))) 674 (offsets (cdr (assq 'c-file-offsets file-local-variables-alist))))
675 (when mode-cons
676 (hack-one-local-variable (car mode-cons) (cdr mode-cons))
677 (setq file-local-variables-alist
678 (delq mode-cons file-local-variables-alist)))
674 (when stile 679 (when stile
675 (or (stringp stile) (error "c-file-style is not a string")) 680 (or (stringp stile) (error "c-file-style is not a string"))
676 (c-set-style stile)) 681 (c-set-style stile))
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 402893c5946..1d042c99451 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -1602,7 +1602,7 @@ Capitalize system variables - action only
1602 `(lambda () 1602 `(lambda ()
1603 (interactive) 1603 (interactive)
1604 (self-insert-command 1) 1604 (self-insert-command 1)
1605 ,@(if (listp cmd) cmd (list cmd)))))) 1605 ,(if (listp cmd) cmd (list cmd))))))
1606 1606
1607;; Set action and key bindings. 1607;; Set action and key bindings.
1608;; See description of the function `idlwave-action-and-binding'. 1608;; See description of the function `idlwave-action-and-binding'.
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 6bd8fbc2442..60ed14afbac 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -474,8 +474,7 @@ for preventing Firefox from stealing the keyboard focus."
474(defcustom js-js-tmpdir 474(defcustom js-js-tmpdir
475 "~/.emacs.d/js/js" 475 "~/.emacs.d/js/js"
476 "Temporary directory used by `js-mode' to communicate with Mozilla. 476 "Temporary directory used by `js-mode' to communicate with Mozilla.
477This directory must be readable and writable by both Mozilla and 477This directory must be readable and writable by both Mozilla and Emacs."
478Emacs."
479 :type 'directory 478 :type 'directory
480 :group 'js) 479 :group 'js)
481 480
@@ -499,11 +498,11 @@ getting timeout messages."
499 (define-key keymap [(meta ?.)] #'js-find-symbol) 498 (define-key keymap [(meta ?.)] #'js-find-symbol)
500 (easy-menu-define nil keymap "Javascript Menu" 499 (easy-menu-define nil keymap "Javascript Menu"
501 '("Javascript" 500 '("Javascript"
502 ["Select new Mozilla contextโ€ฆ" js-set-js-context 501 ["Select New Mozilla Context..." js-set-js-context
503 (fboundp #'inferior-moz-process)] 502 (fboundp #'inferior-moz-process)]
504 ["Evaluate expression in Mozilla contextโ€ฆ" js-eval 503 ["Evaluate Expression in Mozilla Context..." js-eval
505 (fboundp #'inferior-moz-process)] 504 (fboundp #'inferior-moz-process)]
506 ["Send current function to Mozillaโ€ฆ" js-eval-defun 505 ["Send Current Function to Mozilla..." js-eval-defun
507 (fboundp #'inferior-moz-process)])) 506 (fboundp #'inferior-moz-process)]))
508 keymap) 507 keymap)
509 "Keymap for `js-mode'.") 508 "Keymap for `js-mode'.")
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 4e0f326e2d4..2b09e346331 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -93,7 +93,7 @@
93 93
94(defvar python-font-lock-keywords 94(defvar python-font-lock-keywords
95 `(,(rx symbol-start 95 `(,(rx symbol-start
96 ;; From v 2.5 reference, ง keywords. 96 ;; From v 2.7 reference, ง keywords.
97 ;; def and class dealt with separately below 97 ;; def and class dealt with separately below
98 (or "and" "as" "assert" "break" "continue" "del" "elif" "else" 98 (or "and" "as" "assert" "break" "continue" "del" "elif" "else"
99 "except" "exec" "finally" "for" "from" "global" "if" 99 "except" "exec" "finally" "for" "from" "global" "if"
@@ -102,7 +102,7 @@
102 ;; Not real keywords, but close enough to be fontified as such 102 ;; Not real keywords, but close enough to be fontified as such
103 "self" "True" "False") 103 "self" "True" "False")
104 symbol-end) 104 symbol-end)
105 (,(rx symbol-start "None" symbol-end) ; see ง Keywords in 2.5 manual 105 (,(rx symbol-start "None" symbol-end) ; see ง Keywords in 2.7 manual
106 . font-lock-constant-face) 106 . font-lock-constant-face)
107 ;; Definitions 107 ;; Definitions
108 (,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_)))) 108 (,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_))))
@@ -117,7 +117,7 @@
117 (0+ "." (1+ (or word ?_))))) 117 (0+ "." (1+ (or word ?_)))))
118 (1 font-lock-type-face)) 118 (1 font-lock-type-face))
119 ;; Built-ins. (The next three blocks are from 119 ;; Built-ins. (The next three blocks are from
120 ;; `__builtin__.__dict__.keys()' in Python 2.5.1.) These patterns 120 ;; `__builtin__.__dict__.keys()' in Python 2.7) These patterns
121 ;; are debateable, but they at least help to spot possible 121 ;; are debateable, but they at least help to spot possible
122 ;; shadowing of builtins. 122 ;; shadowing of builtins.
123 (,(rx symbol-start (or 123 (,(rx symbol-start (or
@@ -135,7 +135,9 @@
135 "SystemExit" "TabError" "TypeError" "UnboundLocalError" 135 "SystemExit" "TabError" "TypeError" "UnboundLocalError"
136 "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError" 136 "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError"
137 "UnicodeTranslateError" "UnicodeWarning" "UserWarning" 137 "UnicodeTranslateError" "UnicodeWarning" "UserWarning"
138 "ValueError" "Warning" "ZeroDivisionError") symbol-end) 138 "ValueError" "Warning" "ZeroDivisionError"
139 ;; Python 2.7
140 "BufferError" "BytesWarning" "WindowsError") symbol-end)
139 . font-lock-type-face) 141 . font-lock-type-face)
140 (,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start 142 (,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start
141 (group (or 143 (group (or
@@ -152,12 +154,16 @@
152 "range" "raw_input" "reduce" "reload" "repr" "reversed" 154 "range" "raw_input" "reduce" "reload" "repr" "reversed"
153 "round" "set" "setattr" "slice" "sorted" "staticmethod" 155 "round" "set" "setattr" "slice" "sorted" "staticmethod"
154 "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars" 156 "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars"
155 "xrange" "zip")) symbol-end) 157 "xrange" "zip"
158 ;; Python 2.7.
159 "bin" "bytearray" "bytes" "format" "memoryview" "next" "print"
160 )) symbol-end)
156 (1 font-lock-builtin-face)) 161 (1 font-lock-builtin-face))
157 (,(rx symbol-start (or 162 (,(rx symbol-start (or
158 ;; other built-ins 163 ;; other built-ins
159 "True" "False" "None" "Ellipsis" 164 "True" "False" "None" "Ellipsis"
160 "_" "__debug__" "__doc__" "__import__" "__name__") symbol-end) 165 "_" "__debug__" "__doc__" "__import__" "__name__" "__package__")
166 symbol-end)
161 . font-lock-builtin-face))) 167 . font-lock-builtin-face)))
162 168
163(defconst python-font-lock-syntactic-keywords 169(defconst python-font-lock-syntactic-keywords
diff --git a/lisp/subr.el b/lisp/subr.el
index 16ba45f1c74..9fb737fd038 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1874,12 +1874,11 @@ any other non-digit terminates the character code and is then used as input."))
1874 ;; Note: `read-char' does it using the `ascii-character' property. 1874 ;; Note: `read-char' does it using the `ascii-character' property.
1875 ;; We should try and use read-key instead. 1875 ;; We should try and use read-key instead.
1876 (let ((translation (lookup-key local-function-key-map (vector char)))) 1876 (let ((translation (lookup-key local-function-key-map (vector char))))
1877 (if (arrayp translation) 1877 (setq translated (if (arrayp translation)
1878 (setq translated (aref translation 0)))) 1878 (aref translation 0)
1879 (setq translated 1879 char)))
1880 (if (integerp char) 1880 (if (integerp translated)
1881 (char-resolve-modifiers char) 1881 (setq translated (char-resolve-modifiers translated)))
1882 char))
1883 (cond ((null translated)) 1882 (cond ((null translated))
1884 ((not (integerp translated)) 1883 ((not (integerp translated))
1885 (setq unread-command-events (list char) 1884 (setq unread-command-events (list char)
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 1de6f93416a..24fa2c0c064 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -806,7 +806,7 @@
806 (url-http-parse-headers): Use it. 806 (url-http-parse-headers): Use it.
807 (url-http-handle-authentication): Use subst-char-in-string. 807 (url-http-handle-authentication): Use subst-char-in-string.
808 808
8092005-11-16 Juergen Hoetzel <emacs@hoetzel.info> (tiny change) 8092005-11-16 Jรผrgen Hรถtzel <emacs@hoetzel.info> (tiny change)
810 810
811 * url-handlers.el (url-insert-file-contents): Use the charset info 811 * url-handlers.el (url-insert-file-contents): Use the charset info
812 provided by the HTTP server, if any. 812 provided by the HTTP server, if any.
diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el
index d0951bdd404..c95fe54d04a 100644
--- a/lisp/vc/vc-annotate.el
+++ b/lisp/vc/vc-annotate.el
@@ -315,7 +315,7 @@ use; you may override this using the second optional arg MODE."
315 vc-annotate-display-mode)))) 315 vc-annotate-display-mode))))
316 316
317;;;###autoload 317;;;###autoload
318(defun vc-annotate (file rev &optional display-mode buf move-point-to) 318(defun vc-annotate (file rev &optional display-mode buf move-point-to vc-bk)
319 "Display the edit history of the current FILE using colors. 319 "Display the edit history of the current FILE using colors.
320 320
321This command creates a buffer that shows, for each line of the current 321This command creates a buffer that shows, for each line of the current
@@ -336,6 +336,8 @@ age, and everything that is older than that is shown in blue.
336 336
337If MOVE-POINT-TO is given, move the point to that line. 337If MOVE-POINT-TO is given, move the point to that line.
338 338
339If VC-BK is given used that VC backend.
340
339Customization variables: 341Customization variables:
340 342
341`vc-annotate-menu-elements' customizes the menu elements of the 343`vc-annotate-menu-elements' customizes the menu elements of the
@@ -376,7 +378,7 @@ mode-specific menu. `vc-annotate-color-map' and
376 ;; In case it had to be uniquified. 378 ;; In case it had to be uniquified.
377 (setq temp-buffer-name (buffer-name)))) 379 (setq temp-buffer-name (buffer-name))))
378 (with-output-to-temp-buffer temp-buffer-name 380 (with-output-to-temp-buffer temp-buffer-name
379 (let ((backend (vc-backend file)) 381 (let ((backend (or vc-bk (vc-backend file)))
380 (coding-system-for-read buffer-file-coding-system)) 382 (coding-system-for-read buffer-file-coding-system))
381 (vc-call-backend backend 'annotate-command file 383 (vc-call-backend backend 'annotate-command file
382 (get-buffer temp-buffer-name) rev) 384 (get-buffer temp-buffer-name) rev)
@@ -462,7 +464,7 @@ Return a cons (REV . FILENAME)."
462 (if (not rev-at-line) 464 (if (not rev-at-line)
463 (message "Cannot extract revision number from the current line") 465 (message "Cannot extract revision number from the current line")
464 (switch-to-buffer-other-window 466 (switch-to-buffer-other-window
465 (vc-find-revision (cdr rev-at-line) (car rev-at-line))))))) 467 (vc-find-revision (cdr rev-at-line) (car rev-at-line) vc-annotate-backend))))))
466 468
467(defun vc-annotate-revision-previous-to-line () 469(defun vc-annotate-revision-previous-to-line ()
468 "Visit the annotation of the revision before the revision at line." 470 "Visit the annotation of the revision before the revision at line."
@@ -527,7 +529,7 @@ the file in question, search for the log entry required and move point ."
527 (message "Cannot extract revision number from the current line") 529 (message "Cannot extract revision number from the current line")
528 (setq prev-rev 530 (setq prev-rev
529 (vc-call-backend vc-annotate-backend 'previous-revision 531 (vc-call-backend vc-annotate-backend 'previous-revision
530 fname rev)) 532 (if filediff fname nil) rev))
531 (if (not prev-rev) 533 (if (not prev-rev)
532 (message "Cannot diff from any revision prior to %s" rev) 534 (message "Cannot diff from any revision prior to %s" rev)
533 (save-window-excursion 535 (save-window-excursion
@@ -597,7 +599,8 @@ describes a revision number, so warp to that revision."
597 ;; place the point in the line. 599 ;; place the point in the line.
598 (min oldline (progn (goto-char (point-max)) 600 (min oldline (progn (goto-char (point-max))
599 (forward-line -1) 601 (forward-line -1)
600 (line-number-at-pos)))))))) 602 (line-number-at-pos)))
603 vc-annotate-backend)))))
601 604
602(defun vc-annotate-compcar (threshold a-list) 605(defun vc-annotate-compcar (threshold a-list)
603 "Test successive cons cells of A-LIST against THRESHOLD. 606 "Test successive cons cells of A-LIST against THRESHOLD.
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 161013fbae0..9cacef2f71b 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -412,22 +412,24 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc."
412 (setq entry (car entries)) 412 (setq entry (car entries))
413 (setq node (ewoc-next vc-ewoc node))) 413 (setq node (ewoc-next vc-ewoc node)))
414 (t 414 (t
415 (ewoc-enter-before vc-ewoc node 415 (unless noinsert
416 (apply 'vc-dir-create-fileinfo entry)) 416 (ewoc-enter-before vc-ewoc node
417 (apply 'vc-dir-create-fileinfo entry)))
417 (setq entries (cdr entries)) 418 (setq entries (cdr entries))
418 (setq entry (car entries)))))) 419 (setq entry (car entries))))))
419 (t 420 (t
420 ;; We might need to insert a directory node if the 421 (unless noinsert
421 ;; previous node was in a different directory. 422 ;; We might need to insert a directory node if the
422 (let* ((rd (file-relative-name entrydir)) 423 ;; previous node was in a different directory.
423 (prev-node (ewoc-prev vc-ewoc node)) 424 (let* ((rd (file-relative-name entrydir))
424 (prev-dir (vc-dir-node-directory prev-node))) 425 (prev-node (ewoc-prev vc-ewoc node))
425 (unless (string-equal entrydir prev-dir) 426 (prev-dir (vc-dir-node-directory prev-node)))
426 (ewoc-enter-before 427 (unless (string-equal entrydir prev-dir)
427 vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir)))) 428 (ewoc-enter-before
428 ;; Now insert the node itself. 429 vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir))))
429 (ewoc-enter-before vc-ewoc node 430 ;; Now insert the node itself.
430 (apply 'vc-dir-create-fileinfo entry)) 431 (ewoc-enter-before vc-ewoc node
432 (apply 'vc-dir-create-fileinfo entry)))
431 (setq entries (cdr entries) entry (car entries)))))) 433 (setq entries (cdr entries) entry (car entries))))))
432 ;; We're past the last node, all remaining entries go to the end. 434 ;; We're past the last node, all remaining entries go to the end.
433 (unless (or node noinsert) 435 (unless (or node noinsert)
@@ -902,10 +904,12 @@ If it is a file, return the corresponding cons for the file itself."
902 (vc-dir-resync-directory-files file) 904 (vc-dir-resync-directory-files file)
903 (ewoc-set-hf vc-ewoc 905 (ewoc-set-hf vc-ewoc
904 (vc-dir-headers vc-dir-backend default-directory) "")) 906 (vc-dir-headers vc-dir-backend default-directory) ""))
905 (let ((state (vc-dir-recompute-file-state file ddir))) 907 (let* ((complete-state (vc-dir-recompute-file-state file ddir))
908 (state (cadr complete-state)))
906 (vc-dir-update 909 (vc-dir-update
907 (list state) 910 (list complete-state)
908 status-buf (eq (cadr state) 'up-to-date)))))))))) 911 status-buf (or (not state)
912 (eq state 'up-to-date)))))))))))
909 ;; Remove out-of-date entries from vc-dir-buffers. 913 ;; Remove out-of-date entries from vc-dir-buffers.
910 (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers))))) 914 (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers)))))
911 915
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 6129b21c324..cccccbdfd02 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -563,13 +563,18 @@ or an empty string if none."
563 (let* (process-file-side-effects 563 (let* (process-file-side-effects
564 (coding-system-for-read 'binary) 564 (coding-system-for-read 'binary)
565 (coding-system-for-write 'binary) 565 (coding-system-for-write 'binary)
566 (fullname (substring 566 (fullname
567 (vc-git--run-command-string 567 (let ((fn (vc-git--run-command-string
568 file "ls-files" "-z" "--full-name" "--") 568 file "ls-files" "-z" "--full-name" "--")))
569 0 -1))) 569 ;; ls-files does not return anything when looking for a
570 ;; revision of a file that has been renamed or removed.
571 (if (string= fn "")
572 (file-relative-name file (vc-git-root default-directory))
573 (substring fn 0 -1)))))
570 (vc-git-command 574 (vc-git-command
571 buffer 0 575 buffer 0
572 (concat (if rev rev "HEAD") ":" fullname) "cat-file" "blob"))) 576 nil
577 "cat-file" "blob" (concat (if rev rev "HEAD") ":" fullname))))
573 578
574(defun vc-git-checkout (file &optional editable rev) 579(defun vc-git-checkout (file &optional editable rev)
575 (vc-git-command nil 0 file "checkout" (or rev "HEAD"))) 580 (vc-git-command nil 0 file "checkout" (or rev "HEAD")))
@@ -723,7 +728,7 @@ or BRANCH^ (where \"^\" can be repeated)."
723 728
724(defun vc-git-annotate-command (file buf &optional rev) 729(defun vc-git-annotate-command (file buf &optional rev)
725 (let ((name (file-relative-name file))) 730 (let ((name (file-relative-name file)))
726 (vc-git-command buf 'async name "blame" "--date=iso" "-C" "-C" rev))) 731 (vc-git-command buf 'async nil "blame" "--date=iso" "-C" "-C" rev "--" name)))
727 732
728(declare-function vc-annotate-convert-time "vc-annotate" (time)) 733(declare-function vc-annotate-convert-time "vc-annotate" (time))
729 734
@@ -740,8 +745,12 @@ or BRANCH^ (where \"^\" can be repeated)."
740 (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?") 745 (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?")
741 (let ((revision (match-string-no-properties 1))) 746 (let ((revision (match-string-no-properties 1)))
742 (if (match-beginning 2) 747 (if (match-beginning 2)
743 (cons revision (expand-file-name (match-string-no-properties 3) 748 (let ((fname (match-string-no-properties 3)))
744 (vc-git-root default-directory))) 749 ;; Remove trailing whitespace from the file name.
750 (when (string-match " +\\'" fname)
751 (setq fname (substring fname 0 (match-beginning 0))))
752 (cons revision
753 (expand-file-name fname (vc-git-root default-directory))))
745 revision))))) 754 revision)))))
746 755
747;;; TAG SYSTEM 756;;; TAG SYSTEM
@@ -765,11 +774,10 @@ or BRANCH^ (where \"^\" can be repeated)."
765(defun vc-git-previous-revision (file rev) 774(defun vc-git-previous-revision (file rev)
766 "Git-specific version of `vc-previous-revision'." 775 "Git-specific version of `vc-previous-revision'."
767 (if file 776 (if file
768 (let* ((default-directory (file-name-directory (expand-file-name file))) 777 (let* ((fname (file-relative-name file))
769 (file (file-name-nondirectory file))
770 (prev-rev (with-temp-buffer 778 (prev-rev (with-temp-buffer
771 (and 779 (and
772 (vc-git--out-ok "rev-list" "-2" rev "--" file) 780 (vc-git--out-ok "rev-list" "-2" rev "--" fname)
773 (goto-char (point-max)) 781 (goto-char (point-max))
774 (bolp) 782 (bolp)
775 (zerop (forward-line -1)) 783 (zerop (forward-line -1))
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 23dd6f0f7ae..434c2a10e14 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1700,8 +1700,9 @@ If `F.~REV~' already exists, use it instead of checking it out again."
1700 rev))) 1700 rev)))
1701 (switch-to-buffer-other-window (vc-find-revision file revision)))) 1701 (switch-to-buffer-other-window (vc-find-revision file revision))))
1702 1702
1703(defun vc-find-revision (file revision) 1703(defun vc-find-revision (file revision &optional backend)
1704 "Read REVISION of FILE into a buffer and return the buffer." 1704 "Read REVISION of FILE into a buffer and return the buffer.
1705Use BACKEND as the VC backend if specified."
1705 (let ((automatic-backup (vc-version-backup-file-name file revision)) 1706 (let ((automatic-backup (vc-version-backup-file-name file revision))
1706 (filebuf (or (get-file-buffer file) (current-buffer))) 1707 (filebuf (or (get-file-buffer file) (current-buffer)))
1707 (filename (vc-version-backup-file-name file revision 'manual))) 1708 (filename (vc-version-backup-file-name file revision 'manual)))
@@ -1719,7 +1720,9 @@ If `F.~REV~' already exists, use it instead of checking it out again."
1719 ;; Change buffer to get local value of 1720 ;; Change buffer to get local value of
1720 ;; vc-checkout-switches. 1721 ;; vc-checkout-switches.
1721 (with-current-buffer filebuf 1722 (with-current-buffer filebuf
1722 (vc-call find-revision file revision outbuf)))) 1723 (if backend
1724 (vc-call-backend backend 'find-revision file revision outbuf)
1725 (vc-call find-revision file revision outbuf)))))
1723 (setq failed nil)) 1726 (setq failed nil))
1724 (when (and failed (file-exists-p filename)) 1727 (when (and failed (file-exists-p filename))
1725 (delete-file filename)))) 1728 (delete-file filename))))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 5e67c07957e..dfeb6371f5e 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1156,14 +1156,17 @@ the field."
1156 (if field 1156 (if field
1157 (narrow-to-region (line-beginning-position) (line-end-position))))) 1157 (narrow-to-region (line-beginning-position) (line-end-position)))))
1158 1158
1159;; This used to say:
1160;; "When not inside a field, move to the previous button or field."
1161;; but AFAICS, it has always just thrown an error.
1159(defun widget-complete () 1162(defun widget-complete ()
1160 "Complete content of editable field from point. 1163 "Complete content of editable field from point.
1161When not inside a field, move to the previous button or field." 1164When not inside a field, signal an error."
1162 (interactive) 1165 (interactive)
1163 (let ((field (widget-field-find (point)))) 1166 (let ((field (widget-field-find (point))))
1164 (when field 1167 (if field
1165 (widget-apply field :complete)) 1168 (widget-apply field :complete)
1166 (error "Not in an editable field"))) 1169 (error "Not in an editable field"))))
1167 1170
1168;;; Setting up the buffer. 1171;;; Setting up the buffer.
1169 1172
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el
index 328eb569c6f..6d38fd043fe 100644
--- a/lisp/x-dnd.el
+++ b/lisp/x-dnd.el
@@ -1,9 +1,9 @@
1;;; x-dnd.el --- drag and drop support for X. 1;;; x-dnd.el --- drag and drop support for X -*- coding: utf-8 -*-
2 2
3;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 3;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5 5
6;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 6;; Author: Jan Djรคrv <jan.h.d@swipnet.se>
7;; Maintainer: FSF 7;; Maintainer: FSF
8;; Keywords: window, drag, drop 8;; Keywords: window, drag, drop
9 9
diff --git a/lisp/xml.el b/lisp/xml.el
index 20b595fd2d7..8e8981ac439 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -321,18 +321,20 @@ If PARSE-NS is non-nil, then QNAMES are expanded."
321 (progn 321 (progn
322 (forward-char -1) 322 (forward-char -1)
323 (setq result (xml-parse-tag parse-dtd parse-ns)) 323 (setq result (xml-parse-tag parse-dtd parse-ns))
324 (if (and xml result (not xml-sub-parser)) 324 (cond
325 ;; translation of rule [1] of XML specifications 325 ((null result)
326 (error "XML: (Not Well-Formed) Only one root tag allowed") 326 ;; Not looking at an xml start tag.
327 (cond 327 (forward-char 1))
328 ((null result)) 328 ((and xml (not xml-sub-parser))
329 ((and (listp (car result)) 329 ;; Translation of rule [1] of XML specifications
330 parse-dtd) 330 (error "XML: (Not Well-Formed) Only one root tag allowed"))
331 (setq dtd (car result)) 331 ((and (listp (car result))
332 (if (cdr result) ; possible leading comment 332 parse-dtd)
333 (add-to-list 'xml (cdr result)))) 333 (setq dtd (car result))
334 (t 334 (if (cdr result) ; possible leading comment
335 (add-to-list 'xml result))))) 335 (add-to-list 'xml (cdr result))))
336 (t
337 (add-to-list 'xml result))))
336 (goto-char (point-max)))) 338 (goto-char (point-max))))
337 (if parse-dtd 339 (if parse-dtd
338 (cons dtd (nreverse xml)) 340 (cons dtd (nreverse xml))