mes: Add setenv.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 7 Apr 2018 07:34:02 +0000 (09:34 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 7 Apr 2018 07:34:02 +0000 (09:34 +0200)
* src/posix.c (setenv_): New function.
* tests/base.test ("setenv, getenv"): Test it.

src/posix.c
tests/base.test

index 9d923c80b629f8f279be225362796ceff1e37466..a245e972dc5c44e349d7758825624fd6c63455b4 100644 (file)
@@ -135,6 +135,15 @@ getenv_ (SCM s) ///((name . "getenv"))
   return p ? MAKE_STRING (cstring_to_list (p)) : cell_f;
 }
 
+SCM
+setenv_ (SCM s, SCM v) ///((name . "setenv"))
+{
+  char buf[1024];
+  strcpy (buf, string_to_cstring (s));
+  setenv (buf, string_to_cstring (v), 1);
+  return cell_unspecified;
+}
+
 SCM
 access_p (SCM file_name, SCM mode)
 {
index ebc524d2c3f11496120b2d6375a85e6706369b58..c3a20d879bfa972c2ea55faec6127de93c6d6f78 100755 (executable)
@@ -116,4 +116,11 @@ exit $?
     (pass-if-not "#<eof>"
                  (char? (integer->char -1))))
 
+(pass-if-equal "setenv, getenv"
+    "bar"
+  (begin
+    (setenv "foo" "bar")
+    (getenv "bar")
+    (getenv "foo")))
+
 (result 'report)