X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=examples%2Fgetenv.cl;h=1241117c552f364c57cde0f7d050d1f965d14865;hb=c55832db4eb5a0535762f291674b3b26d288ad17;hp=335a70f694011010847e5cbea87951e2e76242c6;hpb=bc5968d54cee0416db7db9ee2c7295489170bccf;p=uffi.git diff --git a/examples/getenv.cl b/examples/getenv.cl index 335a70f..1241117 100644 --- a/examples/getenv.cl +++ b/examples/getenv.cl @@ -5,42 +5,34 @@ ;;;; Name: getenv.cl ;;;; Purpose: UFFI Example file to get environment variable ;;;; Programmer: Kevin M. Rosenberg -;;;; Date Started: Mar 2002 +;;;; Date Started: Feb 2002 ;;;; -;;;; Copyright (c) 2002 Kevin M. Rosenberg +;;;; $Id: getenv.cl,v 1.7 2002/03/14 21:03:12 kevin Exp $ ;;;; -;;;; $Id: getenv.cl,v 1.2 2002/03/09 21:19:31 kevin Exp $ +;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; -;;;; This file is part of UFFI. -;;;; -;;;; UFFI is free software; you can redistribute it and/or modify -;;;; it under the terms of the GNU General Public License (version 2) as -;;;; published by the Free Software Foundation. -;;;; -;;;; UFFI is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;;; GNU General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU General Public License -;;;; along with UFFI; if not, write to the Free Software Foundation, Inc., -;;;; 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +;;;; UFFI users are granted the rights to distribute and use this software +;;;; as governed by the terms of the Lisp Lesser GNU Public License +;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* (in-package :cl-user) (uffi:def-function ("getenv" c-getenv) - ((name :c-string)) - :returning :c-string) + ((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_")))