cvsuser 03/07/14 01:38:30
Modified: classes env.pmc
t/pmc env.t
Log:
fix delete + test
Revision Changes Path
1.4 +9 -7 parrot/classes/env.pmc
Index: env.pmc
===================================================================
RCS file: /cvs/public/parrot/classes/env.pmc,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -r1.3 -r1.4
--- env.pmc 11 Jul 2003 17:49:39 -0000 1.3
+++ env.pmc 14 Jul 2003 08:38:28 -0000 1.4
@@ -1,7 +1,7 @@
/* env.pmc
* Copyright: 2002, 2003 Yet Another Society
* CVS Info
- * $Id: env.pmc,v 1.3 2003/07/11 17:49:39 dan Exp $
+ * $Id: env.pmc,v 1.4 2003/07/14 08:38:28 leo Exp $
* Overview:
* These are the vtable functions for the Env base class, which
* accesses the system environment
@@ -51,7 +51,8 @@
}
INTVAL exists_keyed(PMC* key) {
- char *keyname = string_to_cstring(interpreter, VTABLE_get_string(interpreter,
key));
+ char *keyname = string_to_cstring(interpreter,
+ VTABLE_get_string(interpreter, key));
if (keyname) {
char *val = Parrot_getenv(keyname);
@@ -65,14 +66,15 @@
}
void delete_keyed(PMC* key) {
- char *keyname = string_to_cstring(interpreter, VTABLE_get_string(interpreter,
key));
+ char *keyname = string_to_cstring(interpreter,
+ VTABLE_get_string(interpreter, key));
if (keyname) {
char *val = getenv(keyname);
- string_cstring_free(keyname);
if (val) {
- Parrot_unsetenv(val);
+ Parrot_unsetenv(keyname);
}
+ string_cstring_free(keyname);
}
}
}
1.2 +26 -1 parrot/t/pmc/env.t
Index: env.t
===================================================================
RCS file: /cvs/public/parrot/t/pmc/env.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- env.t 11 Jul 2003 08:23:54 -0000 1.1
+++ env.t 14 Jul 2003 08:38:30 -0000 1.2
@@ -1,8 +1,10 @@
#! perl -w
-use Parrot::Test tests => 2;
+use Parrot::Test tests => 3;
use Test::More;
use Parrot::Config;
+SKIP: {
+ skip("no setenv", 2) unless $PConfig{"setenv"};
$ENV{"PARROT_TMP"} = "riding a ponie";
output_like(<<'CODE', <<OUT, "getenv");
new P0, .Env
@@ -22,4 +24,27 @@
CODE
/hello polly/i
OUT
+}
+SKIP: {
+ skip("no unsetenv", 1) unless $PConfig{"unsetenv"};
+output_is(<<'CODE', <<OUT, "exists/delete");
+ new P0, .Env
+ set P0["PARROT_TMP"], "hello polly"
+ exists I0, P0["PARROT_TMP"]
+ if I0, ok1
+ print "not "
+ok1:
+ print "ok 1\n"
+ delete P0["PARROT_TMP"]
+ exists I0, P0["PARROT_TMP"]
+ unless I0, ok2
+ print "not "
+ok2:
+ print "ok 2\n"
+ end
+CODE
+ok 1
+ok 2
+OUT
+}