# HG changeset patch # User Richard M. Stallman # Date 868230734 0 # Node ID ac27714a02cfdf7c81b1591756ba96eb957c96e6 # Parent 62cf644c438bb981d5675a42b3f1ce8a02cfebc1 (widget-field-use-before-change): Reenable for Emacs 20. (widget-choose): Using keyboard, if all choices are diabled, just report an error. diff -r 62cf644c438b -r ac27714a02cf lisp/wid-edit.el --- 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