+2002-02-02 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * novice.el (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"
+
2002-02-01 Stefan Monnier <monnier@cs.yale.edu>
* mail/sendmail.el (mail-mode): Undo half of last change.
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"))
(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)