Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
cbfe666b
Commit
cbfe666b
authored
Jun 22, 1994
by
Richard M. Stallman
Browse files
(setenv): Rewrite. Provide a way to unset interactively.
parent
dad146f9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
15 deletions
+23
-15
lisp/env.el
lisp/env.el
+23
-15
No files found.
lisp/env.el
View file @
cbfe666b
...
...
@@ -31,30 +31,38 @@
;;; Code:
;;;###autoload
(
defun
setenv
(
variable
&optional
value
)
(
defun
setenv
(
variable
&optional
value
unset
)
"Set the value of the environment variable named VARIABLE to VALUE.
VARIABLE should be a string. VALUE is optional; if not provided or is
`nil', the environment variable VARIABLE will be removed.
Interactively, a prefix argument means to unset the variable.
This function works by modifying `process-environment'."
(
interactive
"sSet environment variable: \nsSet %s to value: "
)
(
interactive
(
if
current-prefix-arg
(
list
(
read-string
"Clear environment variable: "
)
nil
t
)
(
let
((
var
(
read-string
"Set environment variable: "
)))
(
list
var
(
read-string
(
format
"Set %s to value: "
var
))))))
(
if
unset
(
setq
value
nil
))
(
if
(
string-match
"="
variable
)
(
error
"Environment variable name `%s' contains `='"
variable
)
(
let
((
pattern
(
concat
"\\`"
(
regexp-quote
(
concat
variable
"="
))))
(
case-fold-search
nil
)
(
scan
process-environment
))
(
if
scan
(
while
scan
(
cond
((
string-match
pattern
(
car
scan
))
(
if
(
eq
nil
value
)
(
setq
process-environment
(
delq
(
car
scan
)
process-environment
))
(
setcar
scan
(
concat
variable
"="
value
)))
(
setq
scan
nil
))
((
null
(
setq
scan
(
cdr
scan
)))
(
scan
process-environment
)
found
)
(
while
scan
(
cond
((
string-match
pattern
(
car
scan
))
(
setq
found
t
)
(
if
(
eq
nil
value
)
(
setq
process-environment
(
delq
(
car
scan
)
process-environment
))
(
setcar
scan
(
concat
variable
"="
value
)))
(
setq
scan
nil
)))
(
setq
scan
(
cdr
scan
)))
(
or
found
(
if
value
(
setq
process-environment
(
cons
(
concat
variable
"="
value
)
process-environment
)))))
(
setq
process-environment
(
cons
(
concat
variable
"="
value
)
process-environment
))))))
(
cons
(
concat
variable
"="
value
)
process-environment
)))))))
(
provide
'env
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment