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
  +}
  
  
  

Reply via email to