Mercurial > emacs
changeset 43059:0a91a443d091
(enable-command): If Emacs was invoked as "emacs -q",
don't alter the user's ~/.emacs.
(disable-command): If user-init-file is nil or does not exist,
default to "~/.emacs" (~/_emacs on DOS and, maybe, Windows). But
don't alter the init file if Emacs was invoked as "emacs -q"
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 02 Feb 2002 12:47:54 +0000 |
parents | 39be9e04a9a4 |
children | 08dfbeaa1003 |
files | lisp/novice.el |
diffstat | 1 files changed, 39 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/novice.el Sat Feb 02 10:11:45 2002 +0000 +++ b/lisp/novice.el Sat Feb 02 12:47:54 2002 +0000 @@ -107,10 +107,18 @@ to future sessions." (interactive "CEnable command: ") (put command 'disabled nil) - (let ((init-file user-init-file)) - (when (or (not (stringp init-file)) - (not (file-exists-p init-file))) - (setq init-file (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs")) + (let ((init-file user-init-file) + (default-init-file + (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs"))) + (when (null init-file) + (if (or (file-exists-p default-init-file) + (and (eq system-type 'windows-nt) + (file-exists-p "~/_emacs"))) + ;; Started with -q, i.e. the file containing + ;; enabled/disabled commands hasn't been read. Saving + ;; settings there would overwrite other settings. + (error "Saving settings from \"emacs -q\" would overwrite existing customizations")) + (setq init-file default-init-file) (if (and (not (file-exists-p init-file)) (eq system-type 'windows-nt) (file-exists-p "~/_emacs")) @@ -138,17 +146,33 @@ (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 user-init-file))) - (goto-char (point-min)) - (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") - (save-buffer))) + (let ((init-file user-init-file) + (default-init-file + (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs"))) + (when (null init-file) + (if (or (file-exists-p default-init-file) + (and (eq system-type 'windows-nt) + (file-exists-p "~/_emacs"))) + ;; Started with -q, i.e. the file containing + ;; enabled/disabled commands hasn't been read. Saving + ;; settings there would overwrite other settings. + (error "Saving settings from \"emacs -q\" would overwrite existing customizations")) + (setq init-file default-init-file) + (if (and (not (file-exists-p init-file)) + (eq system-type 'windows-nt) + (file-exists-p "~/_emacs")) + (setq init-file "~/_emacs"))) + (save-excursion + (set-buffer (find-file-noselect + (substitute-in-file-name init-file))) + (goto-char (point-min)) + (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") + (save-buffer)))) (provide 'novice)