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))
|