- (if (not (commandp command))
- (error "Invalid command name `%s'" command))
- (put command 'disabled t)
- (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))
- (insert "(put '" (symbol-name command) " 'disabled t)\n")
- (save-buffer))))