changeset 2403:05d8916e4cde

renamed to env.el; changed setenv to putenv.
author Noah Friedman <friedman@splode.com>
date Sun, 28 Mar 1993 07:13:09 +0000
parents 61e1f8813d03
children 845db675b3e9
files lisp/env.el
diffstat 1 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/env.el	Sun Mar 28 06:40:46 1993 +0000
+++ b/lisp/env.el	Sun Mar 28 07:13:09 1993 +0000
@@ -1,4 +1,4 @@
-;;; setenv.el --- functions to manipulate environment variables.
+;;; env.el --- functions to manipulate environment variables.
 
 ;;; Copyright Free Software Foundation 1991
 
@@ -31,24 +31,30 @@
 ;;; Code:
 
 ;;;###autoload
-(defun setenv (variable value)
+(defun putenv (variable &optional value)
   "Set the value of the environment variable named VARIABLE to VALUE.
-VARIABLE and VALUE should both be strings.
+VARIABLE should be a string.  VALUE is optional; if not provided or is
+`nil', the environment variable VARIABLE will be removed.  
 This function works by modifying `process-environment'."
   (interactive "sSet environment variable: \nsSet %s to value: ")
   (if (string-match "=" variable)
-      (error "Environment variable name contains `='")
+      (error "Environment variable name `%s' contains `='" variable)
     (let ((pattern (concat "\\`" (regexp-quote (concat variable "="))))
 	  (scan process-environment))
       (while scan
 	(cond
 	 ((string-match pattern (car scan))
-	  (setcar scan (concat variable "=" value))
+          (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)))
 	  (setq process-environment
 		(cons (concat variable "=" value) process-environment))))))))
 
-(provide 'setenv)
+;; Provide backward-contemptibility. 
+(fset 'setenv 'putenv)
 
-;;; setenv.el ends here
+(provide 'env)
+
+;;; env.el ends here