changeset 18638:ac27714a02cf

(widget-field-use-before-change): Reenable for Emacs 20. (widget-choose): Using keyboard, if all choices are diabled, just report an error.
author Richard M. Stallman <rms@gnu.org>
date Sun, 06 Jul 1997 23:12:14 +0000
parents 62cf644c438b
children 2ad503f49fd7
files lisp/wid-edit.el
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/wid-edit.el	Sat Jul 05 21:33:06 1997 +0000
+++ b/lisp/wid-edit.el	Sun Jul 06 23:12:14 1997 +0000
@@ -300,6 +300,7 @@
 	 (let* ((overriding-terminal-local-map
 		 (make-sparse-keymap))
 		map choice (next-digit ?0)
+		some-choice-enabled
 		value)
 	   ;; Define SPC as a prefix char to get to this menu.
 	   (define-key overriding-terminal-local-map " "
@@ -314,11 +315,14 @@
 		   (let* ((name (car choice))
 			 (function (cdr choice)))
 		     (insert (format "%c = %s\n" next-digit name))
-		     (define-key map (vector next-digit) function)))
+		     (define-key map (vector next-digit) function)
+		     (setq some-choice-enabled t)))
 	       ;; Allocate digits to disabled alternatives
 	       ;; so that the digit of a given alternative never varies.
 	       (setq next-digit (1+ next-digit)))
 	     (insert "\nC-g = Quit"))
+	   (or some-choice-enabled
+	       (error "None of the choices is currently meaningful"))
 	   (define-key map [?\C-g] 'keyboard-quit)
 	   (define-key map [t] 'keyboard-quit)
 	   (setcdr map (nreverse (cdr map)))
@@ -375,10 +379,10 @@
 
 (defcustom widget-field-use-before-change
   (or (> emacs-minor-version 34)
-      (> emacs-major-version 20)
+      (>= emacs-major-version 20)
       (string-match "XEmacs" emacs-version))
   "Non-nil means use `before-change-functions' to track editable fields.
-This enables the use of undo, but doesn'f work on Emacs 19.34 and earlier. 
+This enables the use of undo, but doesn't work on Emacs 19.34 and earlier. 
 Using before hooks also means that the :notify function can't know the
 new value."
   :type 'boolean