]> code.delx.au - gnu-emacs/blobdiff - lisp/novice.el
(HAVE_X11R4): If we define HAVE_X11R5, define this too.
[gnu-emacs] / lisp / novice.el
index cc8930443c4db9dc3552fd8af99022fa684fb1e1..2c61715cefdaff7cc02fd474ddb8b36571851bf3 100644 (file)
@@ -1,11 +1,10 @@
 ;;; novice.el --- handling of disabled commands ("novice mode") for Emacs.
 
+;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
+
 ;; Maintainer: FSF
-;; Last-Modified: 22 May 1991
 ;; Keywords: internal, help
 
-;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
-
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; along with GNU Emacs; see the file COPYING.  If not, write to
 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
-;; Code:
+;;; Commentary:
+
+;; This mode provides a hook which is, by default, attached to various
+;; putatively dangerous commands in a (probably futile) attempt to
+;; prevent lusers from shooting themselves in the feet.
+
+;;; Code:
 
 ;; This function is called (by autoloading)
 ;; to handle any disabled command.
   (let (char)
     (save-window-excursion
      (with-output-to-temp-buffer "*Help*"
-       (if (= (aref (this-command-keys) 0) ?\M-x)
+       (if (eq (aref (this-command-keys) 0)
+              (if (stringp (this-command-keys))
+                  (aref "\M-x" 0)
+                ?\M-x))
           (princ "You have invoked the disabled command ")
         (princ "You have typed ")
         (princ (key-description (this-command-keys)))
@@ -85,7 +93,8 @@ to future sessions."
   (interactive "CEnable command: ")
   (put command 'disabled nil)
   (save-excursion
-   (set-buffer (find-file-noselect (substitute-in-file-name "~/.emacs")))
+   (set-buffer (find-file-noselect 
+               (substitute-in-file-name user-init-file)))
    (goto-char (point-min))
    (if (search-forward (concat "(put '" (symbol-name command) " ") nil t)
        (delete-region
@@ -94,7 +103,6 @@ to future sessions."
      ;; Must have been disabled by default.
      (goto-char (point-max))
      (insert "\n(put '" (symbol-name command) " 'disabled nil)\n"))
-   (setq foo (buffer-modified-p))
    (save-buffer)))
 
 ;;;###autoload
@@ -103,9 +111,12 @@ to future sessions."
 The user's .emacs file is altered so that this will apply
 to future sessions."
   (interactive "CDisable command: ")
+  (if (not (commandp command))
+      (error "Invalid command name `%s'" command))
   (put command 'disabled t)
   (save-excursion
-   (set-buffer (find-file-noselect (substitute-in-file-name "~/.emacs")))
+   (set-buffer (find-file-noselect 
+               (substitute-in-file-name user-init-file)))
    (goto-char (point-min))
    (if (search-forward (concat "(put '" (symbol-name command) " ") nil t)
        (delete-region