;;; novice.el --- handling of disabled commands ("novice mode") for Emacs
-;; Copyright (C) 1985, 1986, 1987, 1994, 2002, 2004
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1994, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal, help
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
If nil, the feature is disabled, i.e., all commands work normally.")
;;;###autoload
-(defvaralias 'disabled-command-hook 'disabled-command-function)
-;;;###autoload (make-obsolete-variable 'disabled-command-hook 'disabled-command-function "22.1")
+(define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1")
;;;###autoload
(defun disabled-command-function (&rest ignore)
(let (char)
(save-window-excursion
- (with-output-to-temp-buffer "*Help*"
+ (with-output-to-temp-buffer "*Disabled Command*"
(let ((keys (this-command-keys)))
(if (or (eq (aref keys 0)
(if (stringp keys)
(princ "It is disabled because new users often find it confusing.\n")
(princ "Here's the first part of its description:\n\n")
;; Keep only the first paragraph of the documentation.
- (with-current-buffer "*Help*"
+ (with-current-buffer "*Disabled Command*"
(goto-char (point-max))
(let ((start (point)))
(save-excursion
(help-mode)))
(message "Type y, n, ! or SPC (the space bar): ")
(let ((cursor-in-echo-area t))
- (while (not (memq (setq char (downcase (read-char)))
- '(?! ?y ?n ?\ )))
+ (while (progn (setq char (read-event))
+ (or (not (numberp char))
+ (not (memq (downcase char)
+ '(?! ?y ?n ?\ ?\C-g)))))
(ding)
(message "Please type y, n, ! or SPC (the space bar): "))))
+ (setq char (downcase char))
+ (if (= char ?\C-g)
+ (setq quit-flag t))
(if (= char ?!)
(setq disabled-command-function nil))
(if (= char ?y)
(if (search-forward (concat "(put '" (symbol-name command) " ") nil t)
(delete-region
(progn (beginning-of-line) (point))
- (progn (forward-line 1) (point))))
- (goto-char (point-max))
- (insert "\n(put '" (symbol-name command) " 'disabled t)\n")
+ (progn (forward-line 1) (point)))
+ (goto-char (point-max))
+ (insert ?\n))
+ (insert "(put '" (symbol-name command) " 'disabled t)\n")
(save-buffer))))
(provide 'novice)