;;;;
;;;; Copyright (c) 2002 Kevin M. Rosenberg
;;;;
-;;;; $Id: getenv.cl,v 1.1 2002/03/09 19:55:33 kevin Exp $
+;;;; $Id: getenv.cl,v 1.6 2002/03/10 17:42:35 kevin Exp $
;;;;
;;;; This file is part of UFFI.
;;;;
(in-package :cl-user)
-(uffi:def-routine ("getenv" c-getenv)
- ((name :c-string))
- :returning :c-string)
+(uffi:def-function ("getenv" c-getenv)
+ ((name :cstring))
+ :returning :cstring)
-(defun getenv (key)
+(defun my-getenv (key)
"Returns an environment variable, or NIL if it does not exist"
(check-type key string)
- (uffi:with-c-string (key-native key)
- (let ((value-c-string (c-getenv key-native)))
- (uffi:convert-from-c-string value-c-string))))
+ (uffi:with-cstring (key-native key)
+ (uffi:convert-from-cstring (c-getenv key-native))))
-(format t "~&Environment value for USER key: ~A" (getenv "USER"))
-(format t "~&Environment value for _FOO_ key: ~A" (getenv "_FOO_"))
+#+test-uffi
+(progn
+ (flet ((print-results (str)
+ (format t "~&(getenv ~S) => ~S" str (my-getenv str))))
+ (print-results "USER")
+ (print-results "_FOO_")))