mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
(setenv): Simplify reading of args by passing old value as the default.
This commit is contained in:
parent
85cac557cd
commit
80370c1cec
1 changed files with 4 additions and 22 deletions
26
lisp/env.el
26
lisp/env.el
|
|
@ -63,29 +63,11 @@ This function works by modifying `process-environment'."
|
|||
(interactive
|
||||
(if current-prefix-arg
|
||||
(list (read-envvar-name "Clear environment variable: " 'exact) nil t)
|
||||
(let* ((var (read-envvar-name "Set environment variable: " nil))
|
||||
(oldval (getenv var))
|
||||
newval
|
||||
oldhist)
|
||||
;; Don't put the current value on the history
|
||||
;; if it is already there.
|
||||
(if (equal oldval (car setenv-history))
|
||||
(setq oldval nil))
|
||||
;; Now if OLDVAL is non-nil, we should add it to the history.
|
||||
(if oldval
|
||||
(setq setenv-history (cons oldval setenv-history)))
|
||||
(setq oldhist setenv-history)
|
||||
(setq newval (read-from-minibuffer (format "Set %s to value: " var)
|
||||
nil nil nil 'setenv-history))
|
||||
;; If we added the current value to the history, remove it.
|
||||
;; Note that read-from-minibuffer may have added the new value.
|
||||
;; Don't remove that!
|
||||
(if oldval
|
||||
(if (eq oldhist setenv-history)
|
||||
(setq setenv-history (cdr setenv-history))
|
||||
(setcdr setenv-history (cdr (cdr setenv-history)))))
|
||||
(let ((var (read-envvar-name "Set environment variable: " nil)))
|
||||
;; Here finally we specify the args to give call setenv with.
|
||||
(list var newval))))
|
||||
(list var (read-from-minibuffer (format "Set %s to value: " var)
|
||||
nil nil nil 'setenv-history
|
||||
(getenv var))))))
|
||||
(if unset (setq value nil))
|
||||
(if (string-match "=" variable)
|
||||
(error "Environment variable name `%s' contains `='" variable)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue