From: Christophe R. <cr...@us...> - 2005-02-17 11:26:20
|
Update of /cvsroot/sbcl/sbcl/contrib/sb-posix In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14523/contrib/sb-posix Modified Files: TODO interface.lisp Log Message: 0.8.19.29: Add (untested, so sue me) getenv and putenv to sb-posix Index: TODO =================================================================== RCS file: /cvsroot/sbcl/sbcl/contrib/sb-posix/TODO,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- TODO 4 Aug 2004 10:54:17 -0000 1.10 +++ TODO 17 Feb 2005 11:26:08 -0000 1.11 @@ -51,4 +51,9 @@ 9) proper alien definitions of structures [ possibly an sb-grovel problem, but the way we define calls exposes the problem -- see -readdir() ] +readdir() ] [ isn't this done? ] + +10) some functions (e.g. fdatasync, putenv) have a return value which +is purely an error indicator. Currently we're returning the 0 on +success, but maybe it would make more sense for them to return +(values). Index: interface.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/contrib/sb-posix/interface.lisp,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- interface.lisp 6 Jan 2005 12:47:57 -0000 1.19 +++ interface.lisp 17 Feb 2005 11:26:08 -0000 1.20 @@ -326,3 +326,15 @@ (syscall-error)) (setf termios (alien-to-termios a-termios termios)))) termios) + +;;; environment + +(export 'sb-posix::getenv :sb-posix) +(defun sb-posix::getenv (name) + (let ((r (alien-funcall + (extern-alien "getenv" (function (* char) c-string)) + name))) + (declare (type (alien (* char)) r)) + (unless (null-alien r) + (cast r c-string)))) +(define-call "putenv" int minusp (string c-string)) |