changeset 112140:3dd4ed701664

Merge from mainline.
author Paul Eggert <eggert@cs.ucla.edu>
date Fri, 07 Jan 2011 10:52:37 -0800
parents 3d3d7ef762fd (current diff) 8d03223bf479 (diff)
children b82158d91482
files etc/themes/dev-tsdh-dark-theme.el etc/themes/dev-tsdh-light-theme.el etc/themes/tsdh-dark-theme.el etc/themes/tsdh-light-theme.el
diffstat 16 files changed, 232 insertions(+), 182 deletions(-) [+]
line wrap: on
line diff
--- a/etc/ChangeLog	Thu Jan 06 21:16:15 2011 -0800
+++ b/etc/ChangeLog	Fri Jan 07 10:52:37 2011 -0800
@@ -1,3 +1,9 @@
+2011-01-07  Tassilo Horn  <tassilo@member.fsf.org>
+
+	* themes/tsdh-light-theme.el, themes/tsdh-dark-theme.el: Remove
+	dev-prefix from file names, so that the files don't clash on 8x3
+	filesystems.
+
 2011-01-06  Tassilo Horn  <tassilo@member.fsf.org>
 
 	* themes/dev-tsdh-light-theme.el (dev-tsdh-light): New theme.
--- a/etc/NEWS	Thu Jan 06 21:16:15 2011 -0800
+++ b/etc/NEWS	Fri Jan 07 10:52:37 2011 -0800
@@ -662,6 +662,8 @@
 
 * Lisp changes in Emacs 24.1
 
+** `y-or-n-p' and `yes-or-no-p' now accept format string arguments.
+
 ** `image-library-alist' is renamed to `dynamic-library-alist'.
 The variable is now used to load all kind of supported dynamic libraries,
 not just image libraries.  The previous name is still available as an
--- a/etc/themes/dev-tsdh-dark-theme.el	Thu Jan 06 21:16:15 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-;;; dev-tsdh-dark-theme.el --- Tassilo's dark custom theme
-
-;; Copyright (C) 2011 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(deftheme dev-tsdh-dark
-  "Theme with dark background used and created by Tassilo Horn.")
-
-(custom-theme-set-faces
- 'dev-tsdh-dark
- '(default ((t (:background "gray20" :foreground "white smoke"))))
- '(diff-added ((t (:inherit diff-changed :background "light green"))))
- '(diff-changed ((t (:background "light steel blue"))))
- '(diff-indicator-added ((t (:inherit diff-indicator-changed))))
- '(diff-indicator-changed ((t (:weight bold))))
- '(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
- '(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
- '(hl-line ((t (:background "grey28"))))
- '(message-header-subject ((t (:foreground "SkyBlue"))))
- '(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold))))
- '(mode-line ((t (:box (:line-width -1 :color "red" :style released-button) :family "DejaVu Sans"))))
- '(mode-line-inactive ((t (:inherit mode-line :foreground "dim gray"))))
- '(org-agenda-date ((t (:inherit org-agenda-structure))))
- '(org-agenda-date-today ((t (:inherit org-agenda-date :underline t))))
- '(org-agenda-date-weekend ((t (:inherit org-agenda-date :foreground "dark green"))))
- '(org-agenda-structure ((t (:foreground "SkyBlue" :weight bold))))
- '(org-hide ((t (:foreground "gray30"))))
- '(org-tag ((t (:weight bold))))
- '(outline-1 ((t (:inherit font-lock-function-name-face :weight bold))))
- '(outline-2 ((t (:inherit font-lock-variable-name-face :weight bold))))
- '(outline-3 ((t (:inherit font-lock-keyword-face :weight bold))))
- '(outline-4 ((t (:inherit font-lock-comment-face :weight bold))))
- '(outline-5 ((t (:inherit font-lock-type-face :weight bold))))
- '(outline-6 ((t (:inherit font-lock-constant-face :weight bold))))
- '(outline-7 ((t (:inherit font-lock-builtin-face :weight bold))))
- '(outline-8 ((t (:inherit font-lock-string-face :weight bold))))
- '(region ((t (:background "SteelBlue4"))))
- '(show-paren-match ((t (:background "DarkGreen"))))
- '(show-paren-mismatch ((t (:background "deep pink"))))
- '(window-number-face ((t (:foreground "red" :weight bold)))))
-
-(provide-theme 'dev-tsdh-dark)
-
--- a/etc/themes/dev-tsdh-light-theme.el	Thu Jan 06 21:16:15 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-;;; dev-tsdh-light-theme.el --- Tassilo's light custom theme
-
-;; Copyright (C) 2011 Free Software Foundation, Inc.
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(deftheme dev-tsdh-light
-  "Black on white theme used and created by Tassilo Horn.")
-
-(custom-theme-set-faces
- 'dev-tsdh-light
- '(default ((t (:background "white" :foreground "black"))))
- '(diff-added ((t (:inherit diff-changed :background "light green"))))
- '(diff-changed ((t (:background "light steel blue"))))
- '(diff-indicator-added ((t (:inherit diff-indicator-changed))))
- '(diff-indicator-changed ((t (:weight bold))))
- '(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
- '(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
- '(hl-line ((t (:background "grey95"))))
- '(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold))))
- '(mode-line ((t (:box (:line-width -1 :color "red" :style released-button) :family "DejaVu Sans"))))
- '(mode-line-inactive ((t (:inherit mode-line :foreground "dim gray"))))
- '(org-agenda-date ((t (:inherit org-agenda-structure))))
- '(org-agenda-date-today ((t (:inherit org-agenda-date :underline t))))
- '(org-agenda-date-weekend ((t (:inherit org-agenda-date :foreground "dark green"))))
- '(org-agenda-structure ((t (:foreground "Blue1" :weight bold :height 1.1 :family "DeJaVu Sans"))))
- '(org-hide ((t (:foreground "white"))))
- '(org-tag ((t (:weight bold))))
- '(outline-1 ((t (:inherit font-lock-function-name-face :weight bold))))
- '(outline-2 ((t (:inherit font-lock-variable-name-face :weight bold))))
- '(outline-3 ((t (:inherit font-lock-keyword-face :weight bold))))
- '(outline-4 ((t (:inherit font-lock-comment-face :weight bold))))
- '(outline-5 ((t (:inherit font-lock-type-face :weight bold))))
- '(outline-6 ((t (:inherit font-lock-constant-face :weight bold))))
- '(outline-7 ((t (:inherit font-lock-builtin-face :weight bold))))
- '(outline-8 ((t (:inherit font-lock-string-face :weight bold))))
- '(region ((t (:background "lightgoldenrod1"))))
- '(show-paren-match ((t (:background "LightCyan2"))))
- '(show-paren-mismatch ((t (:background "deep pink"))))
- '(window-number-face ((t (:foreground "red" :weight bold)))))
-
-(provide-theme 'dev-tsdh-light)
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/themes/tsdh-dark-theme.el	Fri Jan 07 10:52:37 2011 -0800
@@ -0,0 +1,59 @@
+;;; dev-tsdh-dark-theme.el --- Tassilo's dark custom theme
+
+;; Copyright (C) 2011 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(deftheme dev-tsdh-dark
+  "Theme with dark background used and created by Tassilo Horn.")
+
+(custom-theme-set-faces
+ 'dev-tsdh-dark
+ '(default ((t (:background "gray20" :foreground "white smoke"))))
+ '(diff-added ((t (:inherit diff-changed :background "light green"))))
+ '(diff-changed ((t (:background "light steel blue"))))
+ '(diff-indicator-added ((t (:inherit diff-indicator-changed))))
+ '(diff-indicator-changed ((t (:weight bold))))
+ '(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
+ '(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
+ '(hl-line ((t (:background "grey28"))))
+ '(message-header-subject ((t (:foreground "SkyBlue"))))
+ '(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold))))
+ '(mode-line ((t (:box (:line-width -1 :color "red" :style released-button) :family "DejaVu Sans"))))
+ '(mode-line-inactive ((t (:inherit mode-line :foreground "dim gray"))))
+ '(org-agenda-date ((t (:inherit org-agenda-structure))))
+ '(org-agenda-date-today ((t (:inherit org-agenda-date :underline t))))
+ '(org-agenda-date-weekend ((t (:inherit org-agenda-date :foreground "dark green"))))
+ '(org-agenda-structure ((t (:foreground "SkyBlue" :weight bold))))
+ '(org-hide ((t (:foreground "gray30"))))
+ '(org-tag ((t (:weight bold))))
+ '(outline-1 ((t (:inherit font-lock-function-name-face :weight bold))))
+ '(outline-2 ((t (:inherit font-lock-variable-name-face :weight bold))))
+ '(outline-3 ((t (:inherit font-lock-keyword-face :weight bold))))
+ '(outline-4 ((t (:inherit font-lock-comment-face :weight bold))))
+ '(outline-5 ((t (:inherit font-lock-type-face :weight bold))))
+ '(outline-6 ((t (:inherit font-lock-constant-face :weight bold))))
+ '(outline-7 ((t (:inherit font-lock-builtin-face :weight bold))))
+ '(outline-8 ((t (:inherit font-lock-string-face :weight bold))))
+ '(region ((t (:background "SteelBlue4"))))
+ '(show-paren-match ((t (:background "DarkGreen"))))
+ '(show-paren-mismatch ((t (:background "deep pink"))))
+ '(window-number-face ((t (:foreground "red" :weight bold)))))
+
+(provide-theme 'dev-tsdh-dark)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/themes/tsdh-light-theme.el	Fri Jan 07 10:52:37 2011 -0800
@@ -0,0 +1,58 @@
+;;; dev-tsdh-light-theme.el --- Tassilo's light custom theme
+
+;; Copyright (C) 2011 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Code:
+
+(deftheme dev-tsdh-light
+  "Black on white theme used and created by Tassilo Horn.")
+
+(custom-theme-set-faces
+ 'dev-tsdh-light
+ '(default ((t (:background "white" :foreground "black"))))
+ '(diff-added ((t (:inherit diff-changed :background "light green"))))
+ '(diff-changed ((t (:background "light steel blue"))))
+ '(diff-indicator-added ((t (:inherit diff-indicator-changed))))
+ '(diff-indicator-changed ((t (:weight bold))))
+ '(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
+ '(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
+ '(hl-line ((t (:background "grey95"))))
+ '(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold))))
+ '(mode-line ((t (:box (:line-width -1 :color "red" :style released-button) :family "DejaVu Sans"))))
+ '(mode-line-inactive ((t (:inherit mode-line :foreground "dim gray"))))
+ '(org-agenda-date ((t (:inherit org-agenda-structure))))
+ '(org-agenda-date-today ((t (:inherit org-agenda-date :underline t))))
+ '(org-agenda-date-weekend ((t (:inherit org-agenda-date :foreground "dark green"))))
+ '(org-agenda-structure ((t (:foreground "Blue1" :weight bold :height 1.1 :family "DeJaVu Sans"))))
+ '(org-hide ((t (:foreground "white"))))
+ '(org-tag ((t (:weight bold))))
+ '(outline-1 ((t (:inherit font-lock-function-name-face :weight bold))))
+ '(outline-2 ((t (:inherit font-lock-variable-name-face :weight bold))))
+ '(outline-3 ((t (:inherit font-lock-keyword-face :weight bold))))
+ '(outline-4 ((t (:inherit font-lock-comment-face :weight bold))))
+ '(outline-5 ((t (:inherit font-lock-type-face :weight bold))))
+ '(outline-6 ((t (:inherit font-lock-constant-face :weight bold))))
+ '(outline-7 ((t (:inherit font-lock-builtin-face :weight bold))))
+ '(outline-8 ((t (:inherit font-lock-string-face :weight bold))))
+ '(region ((t (:background "lightgoldenrod1"))))
+ '(show-paren-match ((t (:background "LightCyan2"))))
+ '(show-paren-mismatch ((t (:background "deep pink"))))
+ '(window-number-face ((t (:foreground "red" :weight bold)))))
+
+(provide-theme 'dev-tsdh-light)
+
--- a/lisp/ChangeLog	Thu Jan 06 21:16:15 2011 -0800
+++ b/lisp/ChangeLog	Fri Jan 07 10:52:37 2011 -0800
@@ -1,3 +1,7 @@
+2011-01-07  Chong Yidong  <cyd@stupidchicken.com>
+
+	* subr.el (y-or-n-p): Accept format string args.
+
 2011-01-07  Glenn Morris  <rgm@gnu.org>
 
 	* Makefile.in (EMACSOPT): Add --no-site-lisp.
--- a/lisp/gnus/ChangeLog	Thu Jan 06 21:16:15 2011 -0800
+++ b/lisp/gnus/ChangeLog	Fri Jan 07 10:52:37 2011 -0800
@@ -1,3 +1,11 @@
+2011-01-07  Daiki Ueno  <ueno@unixuser.org>
+
+	* mml2015.el (epg-sub-key-fingerprint): Autoload.
+	(mml2015-epg-find-usable-secret-key): New function.
+	(mml2015-epg-sign): Use mml2015-epg-find-usable-secret-key instead of
+	mml2015-epg-find-usable-key (Bug#7797).
+	(mml2015-epg-encrypt): Ditto.
+
 2011-01-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
 	* flow-fill.el (fill-flowed-encode): Do encoding citation-aware.
--- a/lisp/gnus/mml2015.el	Thu Jan 06 21:16:15 2011 -0800
+++ b/lisp/gnus/mml2015.el	Fri Jan 07 10:52:37 2011 -0800
@@ -742,6 +742,7 @@
 (autoload 'epg-key-sub-key-list "epg")
 (autoload 'epg-sub-key-capability "epg")
 (autoload 'epg-sub-key-validity "epg")
+(autoload 'epg-sub-key-fingerprint "epg")
 (autoload 'epg-configuration "epg-config")
 (autoload 'epg-expand-group "epg-config")
 (autoload 'epa-select-keys "epa")
@@ -784,6 +785,24 @@
 	  (setq pointer (cdr pointer))))
       (setq keys (cdr keys)))))
 
+;; XXX: since gpg --list-secret-keys does not return validity of each
+;; key, `mml2015-epg-find-usable-key' defined above is not enough for
+;; secret keys.  The function `mml2015-epg-find-usable-secret-key'
+;; below looks at appropriate public keys to check usability.
+(defun mml2015-epg-find-usable-secret-key (context name usage)
+  (let ((secret-keys (epg-list-keys context name t))
+	secret-key)
+    (while (and (not secret-key) secret-keys)
+      (if (mml2015-epg-find-usable-key
+	   (epg-list-keys context (epg-sub-key-fingerprint
+				   (car (epg-key-sub-key-list
+					 (car secret-keys)))))
+	   usage)
+	  (setq secret-key (car secret-keys)
+		secret-keys nil)
+	(setq secret-keys (cdr secret-keys))))
+    secret-key))
+
 (defun mml2015-epg-decrypt (handle ctl)
   (catch 'error
     (let ((inhibit-redisplay t)
@@ -960,9 +979,9 @@
 		     (delq nil
 			   (mapcar
 			    (lambda (signer)
-			      (setq signer-key (mml2015-epg-find-usable-key
-						(epg-list-keys context signer t)
-						'sign))
+			      (setq signer-key
+				    (mml2015-epg-find-usable-secret-key
+				     context signer 'sign))
 			      (unless (or signer-key
 					  (y-or-n-p
 					   (format
@@ -1081,9 +1100,9 @@
 		       (delq nil
 			     (mapcar
 			      (lambda (signer)
-				(setq signer-key (mml2015-epg-find-usable-key
-						  (epg-list-keys context signer t)
-						  'sign))
+				(setq signer-key
+				      (mml2015-epg-find-usable-secret-key
+				       context signer 'sign))
 				(unless (or signer-key
 					    (y-or-n-p
 					     (format
--- a/lisp/subr.el	Thu Jan 06 21:16:15 2011 -0800
+++ b/lisp/subr.el	Fri Jan 07 10:52:37 2011 -0800
@@ -2011,6 +2011,55 @@
 	    (push read unread-command-events)
 	    nil))))))
 (set-advertised-calling-convention 'sit-for '(seconds &optional nodisp) "22.1")
+
+(defun y-or-n-p (prompt &rest args)
+  "Ask user a \"y or n\" question.  Return t if answer is \"y\".
+The argument PROMPT is the string to display to ask the question.
+It should end in a space; `y-or-n-p' adds `(y or n) ' to it.
+No confirmation of the answer is requested; a single character is enough.
+Also accepts Space to mean yes, or Delete to mean no.  \(Actually, it uses
+the bindings in `query-replace-map'; see the documentation of that variable
+for more information.  In this case, the useful bindings are `act', `skip',
+`recenter', and `quit'.\)
+
+Under a windowing system a dialog box will be used if `last-nonmenu-event'
+is nil and `use-dialog-box' is non-nil."
+  ;; ¡Beware! when I tried to edebug this code, Emacs got into a weird state
+  ;; where all the keys were unbound (i.e. it somehow got triggered
+  ;; within read-key, apparently).  I had to kill it.
+  (let ((answer 'recenter))
+    (if (and (display-popup-menus-p)
+             (listp last-nonmenu-event)
+             use-dialog-box)
+        (setq answer
+              (x-popup-dialog t `(,prompt ("yes" . act) ("No" . skip))))
+      (setq prompt (concat (apply 'format prompt args)
+                           (if (eq ?\s (aref prompt (1- (length prompt))))
+                               "" " ")
+                           "(y or n) "))
+      (while
+          (let* ((key
+                  (let ((cursor-in-echo-area t))
+                    (when minibuffer-auto-raise
+                      (raise-frame (window-frame (minibuffer-window))))
+                    (read-key (propertize (if (eq answer 'recenter)
+                                              prompt
+                                            (concat "Please answer y or n.  "
+                                                    prompt))
+                                          'face 'minibuffer-prompt)))))
+            (setq answer (lookup-key query-replace-map (vector key) t))
+            (cond
+             ((memq answer '(skip act)) nil)
+             ((eq answer 'recenter) (recenter) t)
+             ((memq answer '(exit-prefix quit)) (signal 'quit nil) t)
+             (t t)))
+        (ding)
+        (discard-input)))
+    (let ((ret (eq answer 'act)))
+      (unless noninteractive
+        (message "%s %s" prompt (if ret "y" "n")))
+      ret)))
+
 
 ;;; Atomic change groups.
 
@@ -3305,56 +3354,6 @@
     (overlay-put ol2 'evaporate t)
     (overlay-put ol2 'text-clones dups)))
 
-;;;; Misc functions moved over from the C side.
-
-(defun y-or-n-p (prompt)
-  "Ask user a \"y or n\" question.  Return t if answer is \"y\".
-The argument PROMPT is the string to display to ask the question.
-It should end in a space; `y-or-n-p' adds `(y or n) ' to it.
-No confirmation of the answer is requested; a single character is enough.
-Also accepts Space to mean yes, or Delete to mean no.  \(Actually, it uses
-the bindings in `query-replace-map'; see the documentation of that variable
-for more information.  In this case, the useful bindings are `act', `skip',
-`recenter', and `quit'.\)
-
-Under a windowing system a dialog box will be used if `last-nonmenu-event'
-is nil and `use-dialog-box' is non-nil."
-  ;; ¡Beware! when I tried to edebug this code, Emacs got into a weird state
-  ;; where all the keys were unbound (i.e. it somehow got triggered
-  ;; within read-key, apparently).  I had to kill it.
-  (let ((answer 'recenter))
-    (if (and (display-popup-menus-p)
-             (listp last-nonmenu-event)
-             use-dialog-box)
-        (setq answer
-              (x-popup-dialog t `(,prompt ("yes" . act) ("No" . skip))))
-      (setq prompt (concat prompt
-                           (if (eq ?\s (aref prompt (1- (length prompt))))
-                               "" " ")
-                           "(y or n) "))
-      (while
-          (let* ((key
-                  (let ((cursor-in-echo-area t))
-                    (when minibuffer-auto-raise
-                      (raise-frame (window-frame (minibuffer-window))))
-                    (read-key (propertize (if (eq answer 'recenter)
-                                              prompt
-                                            (concat "Please answer y or n.  "
-                                                    prompt))
-                                          'face 'minibuffer-prompt)))))
-            (setq answer (lookup-key query-replace-map (vector key) t))
-            (cond
-             ((memq answer '(skip act)) nil)
-             ((eq answer 'recenter) (recenter) t)
-             ((memq answer '(exit-prefix quit)) (signal 'quit nil) t)
-             (t t)))
-        (ding)
-        (discard-input)))
-    (let ((ret (eq answer 'act)))
-      (unless noninteractive
-        (message "%s %s" prompt (if ret "y" "n")))
-      ret)))
-
 ;;;; Mail user agents.
 
 ;; Here we include just enough for other packages to be able
--- a/msdos/ChangeLog	Thu Jan 06 21:16:15 2011 -0800
+++ b/msdos/ChangeLog	Fri Jan 07 10:52:37 2011 -0800
@@ -1,3 +1,7 @@
+2011-01-07  Eli Zaretskii  <eliz@gnu.org>
+
+	* sed2v2.inp (HAVE___BUILTIN_UNWIND_INIT): Define.
+
 2010-12-04  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* sed1v2.inp (M_FILE, S_FILE): Add $(srcdir)/ prefix.
--- a/msdos/sed2v2.inp	Thu Jan 06 21:16:15 2011 -0800
+++ b/msdos/sed2v2.inp	Fri Jan 07 10:52:37 2011 -0800
@@ -50,6 +50,7 @@
 /^#undef HAVE_MKSTEMP *$/s/^.*$/#define HAVE_MKSTEMP 1/
 /^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/
 /^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/
+/^#undef HAVE___BUILTIN_UNWIND_INIT *$/s/^.*$/#define HAVE___BUILTIN_UNWIND_INIT 1/
 /^#undef ORDINARY_LINK/s/^.*$/#define ORDINARY_LINK 1/
 /^#undef PACKAGE_BUGREPORT/s/^.*$/#define PACKAGE_BUGREPORT ""/
 /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/
--- a/nt/ChangeLog	Thu Jan 06 21:16:15 2011 -0800
+++ b/nt/ChangeLog	Fri Jan 07 10:52:37 2011 -0800
@@ -1,3 +1,7 @@
+2011-01-07  Eli Zaretskii  <eliz@gnu.org>
+
+	* config.nt (HAVE___BUILTIN_UNWIND_INIT) [GCC >= 2.8]: Define.
+
 2011-01-02  Eli Zaretskii  <eliz@gnu.org>
 
 	* configure.bat (end): Unset environment variables used by this
--- a/nt/config.nt	Thu Jan 06 21:16:15 2011 -0800
+++ b/nt/config.nt	Fri Jan 07 10:52:37 2011 -0800
@@ -287,6 +287,10 @@
 #define EXTERNALLY_VISIBLE
 #endif
 
+#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
+#define HAVE___BUILTIN_UNWIND_INIT 1
+#endif
+
 #undef EMACS_CONFIGURATION
 
 #undef EMACS_CONFIG_OPTIONS
--- a/src/ChangeLog	Thu Jan 06 21:16:15 2011 -0800
+++ b/src/ChangeLog	Fri Jan 07 10:52:37 2011 -0800
@@ -1,3 +1,7 @@
+2011-01-07  Chong Yidong  <cyd@stupidchicken.com>
+
+	* fns.c (Fyes_or_no_p): Accept format string args.
+
 2011-01-07  Glenn Morris  <rgm@gnu.org>
 
 	* emacs.c (no_site_lisp): New int.
--- a/src/fns.c	Thu Jan 06 21:16:15 2011 -0800
+++ b/src/fns.c	Fri Jan 07 10:52:37 2011 -0800
@@ -2460,7 +2460,7 @@
 
 /* Anything that calls this function must protect from GC!  */
 
-DEFUN ("yes-or-no-p", Fyes_or_no_p, Syes_or_no_p, 1, 1, 0,
+DEFUN ("yes-or-no-p", Fyes_or_no_p, Syes_or_no_p, 1, MANY, 0,
        doc: /* Ask user a yes-or-no question.  Return t if answer is yes.
 Takes one argument, which is the string to display to ask the question.
 It should end in a space; `yes-or-no-p' adds `(yes or no) ' to it.
@@ -2469,13 +2469,11 @@
 
 Under a windowing system a dialog box will be used if `last-nonmenu-event'
 is nil, and `use-dialog-box' is non-nil.  */)
-  (Lisp_Object prompt)
+  (int nargs, Lisp_Object *args)
 {
   register Lisp_Object ans;
-  Lisp_Object args[2];
   struct gcpro gcpro1;
-
-  CHECK_STRING (prompt);
+  Lisp_Object prompt = Fformat (nargs, args);
 
 #ifdef HAVE_MENUS
   if (FRAME_WINDOW_P (SELECTED_FRAME ())
@@ -2496,10 +2494,7 @@
     }
 #endif /* HAVE_MENUS */
 
-  args[0] = prompt;
-  args[1] = build_string ("(yes or no) ");
-  prompt = Fconcat (2, args);
-
+  prompt = concat2 (prompt, build_string ("(yes or no) "));
   GCPRO1 (prompt);
 
   while (1)