r10799: 2005-11-07 Kevin Rosenberg (kevin@rosenberg.net)
authorKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 4 Nov 2005 19:02:52 +0000 (19:02 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 4 Nov 2005 19:02:52 +0000 (19:02 +0000)
        * Version 1.5.5
        * src/os.lisp: Add support for getenv getter and setter

ChangeLog
debian/changelog
src/os.lisp
src/package.lisp
uffi.asd

index d9a6410c5b50f5f71fb653b84fe9bec46a04f801..d9aafe37670069267c9d865780b15226f4b6de3b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-11-07 Kevin Rosenberg (kevin@rosenberg.net)
+       * Version 1.5.5
+       * src/os.lisp: Add support for getenv getter and setter
+       
 2005-09-17 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 1.5.4
        * src/objects.lisp: prepend _ character for entry
 2005-09-17 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 1.5.4
        * src/objects.lisp: prepend _ character for entry
index b9afaf94542cbd2c53f996f3bc9bdcbbfd22ea93..0264cfe3614484ef09930c03af1febaeaaeabccc 100644 (file)
@@ -1,3 +1,9 @@
+cl-uffi (1.5.5-1) unstable; urgency=low
+
+  * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org>  Fri,  4 Nov 2005 11:59:50 -0700
+
 cl-uffi (1.5.4-1) unstable; urgency=low
 
   * New upstream
 cl-uffi (1.5.4-1) unstable; urgency=low
 
   * New upstream
index bcbf65839c0b5a6e39aaab9c0e87714d1c492cc1..075be960a80da83749c49669fdaa04fb3c23758d 100644 (file)
 
 (in-package #:uffi)
 
 
 (in-package #:uffi)
 
+
+(defun getenv (var)
+  "Return the value of the environment variable."
+  #+allegro (sys::getenv (string var))
+  #+clisp (sys::getenv (string var))
+  #+cmu (cdr (assoc (string var) ext:*environment-list* :test #'equalp
+                    :key #'string))
+  #+gcl (si:getenv (string var))
+  #+lispworks (lw:environment-variable (string var))
+  #+lucid (lcl:environment-variable (string var))
+  #+mcl (ccl::getenv var)
+  #+sbcl (sb-ext:posix-getenv var)
+  #-(or allegro clisp cmu gcl lispworks lucid mcl sbcl)
+  (error 'not-implemented :proc (list 'getenv var)))
+
+(defun (setf getenv) (val var)
+  "Set an environment variable."
+  #+allegro (setf (sys::getenv (string var)) (string val))
+  #+clisp (setf (sys::getenv (string var)) (string val))
+  #+cmu (let ((cell (assoc (string var) ext:*environment-list* :test #'equalp
+                           :key #'string)))
+          (if cell
+              (setf (cdr cell) (string val))
+              (push (cons (intern (string var) "KEYWORD") (string val)) ext:*environment-list*)))
+  #+gcl (si:setenv (string var) (string val))
+  #+lispworks (setf (lw:environment-variable (string var)) (string val))
+  #+lucid (setf (lcl:environment-variable (string var)) (string val))
+  #-(or allegro clisp cmu gcl lispworks lucid)
+  (error 'not-implemented :proc (list '(setf getenv) var)))
+
+
 ;; modified from function ASDF -- Copyright Dan Barlow and Contributors
 
 (defun run-shell-command (control-string  &rest args &key output)
 ;; modified from function ASDF -- Copyright Dan Barlow and Contributors
 
 (defun run-shell-command (control-string  &rest args &key output)
index 7aa665f608b9cabb27b27604e948fedf9a501612..abaad4655e0851e2f16132a77ed538684324fbad 100644 (file)
@@ -76,6 +76,7 @@
 
    ;; OS
    #:run-shell-command
 
    ;; OS
    #:run-shell-command
+   #:getenv
    ))
 
 
    ))
 
 
index 84b60d10749ce9a35aad01c52f6f7970916bca2b..3f17945ade9bdf7ce3f0ecd4525226d6aa5ab5d1 100644 (file)
--- a/uffi.asd
+++ b/uffi.asd
@@ -25,7 +25,7 @@
   :licence "Lessor Lisp General Public License"
   :description "Universal Foreign Function Library for Common Lisp"
   :long-description "UFFI provides a universal foreign function interface (FFI) for Common Lisp. UFFI supports CMUCL, Lispworks, and AllegroCL."
   :licence "Lessor Lisp General Public License"
   :description "Universal Foreign Function Library for Common Lisp"
   :long-description "UFFI provides a universal foreign function interface (FFI) for Common Lisp. UFFI supports CMUCL, Lispworks, and AllegroCL."
-  
+
   :components
   ((:module :src
            :components
   :components
   ((:module :src
            :components