summaryrefslogtreecommitdiff
path: root/lisp/files.el
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2007-01-29 22:21:19 +0000
committerKaroly Lorentey <lorentey@elte.hu>2007-01-29 22:21:19 +0000
commit93afd0f1d463bec0fc8d3127c1d34ccaa4dbe99b (patch)
tree6e4e3bec20b8c65eb1f78b0ad302fa6c1977d355 /lisp/files.el
parent38db5c8d522cc1faa8190e77dbc932a5560e6aad (diff)
parent5c4a60523827062803ab9a55b4325358225d66bf (diff)
downloademacs-93afd0f1d463bec0fc8d3127c1d34ccaa4dbe99b.tar.gz
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-599 Merge from erc--main--0 * emacs@sv.gnu.org/emacs--devo--0--patch-600 Merge from erc--main--0 * emacs@sv.gnu.org/emacs--devo--0--patch-601 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-602 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-603 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-604 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-605 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-606 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-607 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-608 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-609 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-610 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-611 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-612 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-613 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-614 Make byte compiler correctly write circular constants * emacs@sv.gnu.org/emacs--devo--0--patch-615 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-616 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-617 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-618 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-192 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-193 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-194 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-195 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-196 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-594
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el27
1 files changed, 17 insertions, 10 deletions
diff --git a/lisp/files.el b/lisp/files.el
index 3b28f28b59b..e32fa42795e 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2,7 +2,7 @@
;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996,
;; 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-;; 2006 Free Software Foundation, Inc.
+;; 2006, 2007 Free Software Foundation, Inc.
;; Maintainer: FSF
@@ -1223,11 +1223,11 @@ killed."
(unless (run-hook-with-args-until-failure 'kill-buffer-query-functions)
(error "Aborted"))
(when (and (buffer-modified-p) (buffer-file-name))
- (if (yes-or-no-p (format "Buffer %s is modified; save it first? "
+ (if (yes-or-no-p (format "Buffer %s is modified; kill anyway? "
(buffer-name)))
- (save-buffer)
- (unless (yes-or-no-p "Kill and replace the buffer without saving it? ")
- (error "Aborted"))))
+ (unless (yes-or-no-p "Kill and replace the buffer without saving it? ")
+ (error "Aborted"))
+ (save-buffer)))
(let ((obuf (current-buffer))
(ofile buffer-file-name)
(onum buffer-file-number)
@@ -2506,6 +2506,7 @@ n -- to ignore the local variables list.")
", or C-v to scroll")))
(goto-char (point-min))
(let ((cursor-in-echo-area t)
+ (executing-kbd-macro executing-kbd-macro)
(exit-chars
(if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g)))
done)
@@ -2513,11 +2514,17 @@ n -- to ignore the local variables list.")
(message prompt)
(setq char (read-event))
(if (numberp char)
- (if (eq char ?\C-v)
- (condition-case nil
- (scroll-up)
- (error (goto-char (point-min))))
- (setq done (memq (downcase char) exit-chars))))))
+ (cond ((eq char ?\C-v)
+ (condition-case nil
+ (scroll-up)
+ (error (goto-char (point-min)))))
+ ;; read-event returns -1 if we are in a kbd
+ ;; macro and there are no more events in the
+ ;; macro. In that case, attempt to get an
+ ;; event interactively.
+ ((and executing-kbd-macro (= char -1))
+ (setq executing-kbd-macro nil))
+ (t (setq done (memq (downcase char) exit-chars)))))))
(setq char (downcase char))
(when (and offer-save (= char ?!) unsafe-vars)
(dolist (elt unsafe-vars)