remove putenv, setenv and unsetenv
authorJean Privat <jean@pryen.org>
Wed, 26 Nov 2008 21:04:52 +0000 (16:04 -0500)
committerJean Privat <jean@pryen.org>
Wed, 26 Nov 2008 21:04:52 +0000 (16:04 -0500)
c_src/environ._sep.c
lib/standard/environ.nit
lib/standard/environ_nit.h

index 4cb76b3..37d4062 100644 (file)
@@ -4,15 +4,49 @@ val_t environ___Symbol___environ(val_t  self) {
   struct trace_t trace = {NULL, LOCATE_environ___Symbol___environ, 19};
   val_t variable0;
   val_t variable1;
+  val_t variable2;
+  static val_t once_value_variable2_1; static int once_bool_variable2_1;
+    val_t variable3;
+    val_t variable4;
+    val_t variable5;
+    val_t variable6;
+    val_t variable7;
   trace.prev = tracehead; tracehead = &trace;
-  variable0 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  ((environ___Symbol___environ_default__eq_t)CALL( self,COLOR_environ___Symbol___environ_default__eq))( self, variable0) /*Symbol::environ_default=*/;
-  variable0 = ((symbol___Symbol___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*Symbol::to_s*/;
-  variable0 = ((string___String___to_cstring_t)CALL(variable0,COLOR_string___String___to_cstring))(variable0) /*String::to_cstring*/;
-  variable0 = ((environ___NativeString___get_environ_t)CALL(variable0,COLOR_environ___NativeString___get_environ))(variable0) /*NativeString::get_environ*/;
-  variable1 = NEW_string___String___from_cstring(variable0); /*new String*/
+  variable1 = ((symbol___Symbol___to_s_t)CALL( self,COLOR_string___Object___to_s))( self) /*Symbol::to_s*/;
+  variable1 = ((string___String___to_cstring_t)CALL(variable1,COLOR_string___String___to_cstring))(variable1) /*String::to_cstring*/;
+  variable1 = ((environ___NativeString___get_environ_t)CALL(variable1,COLOR_environ___NativeString___get_environ))(variable1) /*NativeString::get_environ*/;
   variable0 = variable1;
-  goto return_label0;
+  if (once_bool_variable2_1) variable2 = once_value_variable2_1;
+  else {
+    variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable2 = ((string___String___to_cstring_t)CALL(variable2,COLOR_string___String___to_cstring))(variable2) /*String::to_cstring*/;
+    variable2 = ((environ___NativeString___get_environ_t)CALL(variable2,COLOR_environ___NativeString___get_environ))(variable2) /*NativeString::get_environ*/;
+    once_value_variable2_1 = variable2;
+    once_bool_variable2_1 = true;
+  }
+  variable1 = variable2;
+  variable2 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*res*/ ==  variable1 /*nulstr*/) || (( variable0 /*res*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*res*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*res*/, variable1 /*nulstr*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*res*/,COLOR_kernel___Object_____eqeq))( variable0 /*res*/,  variable1 /*nulstr*/) /*NativeString::==*/)))))));
+  if (UNTAG_Bool(variable2)) { /*if*/
+    variable2 = NEW_string___String___init(); /*new String*/
+    variable3 = NEW_string___String___with_native(BOX_NativeString("env "), TAG_Int(4)); /*new String*/
+    variable4 = variable3;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable4) /*String::append*/;
+    variable5 =  self;
+    variable5 = ((string___String___to_s_t)CALL(variable5,COLOR_string___Object___to_s))(variable5) /*String::to_s*/;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable5) /*String::append*/;
+    variable6 = NEW_string___String___with_native(BOX_NativeString("="), TAG_Int(1)); /*new String*/
+    variable7 = variable6;
+    ((string___String___append_t)CALL(variable2,COLOR_abstract_collection___IndexedCollection___append))(variable2, variable7) /*String::append*/;
+    ((string___String___output_t)CALL(variable2,COLOR_kernel___Object___output))(variable2) /*String::output*/;
+    ((kernel___Object___output_t)CALL( variable0 /*res*/,COLOR_kernel___Object___output))( variable0 /*res*/) /*NativeString::output*/;
+    variable2 = NEW_string___String___from_cstring( variable0 /*res*/); /*new String*/
+    variable0 = variable2;
+    goto return_label0;
+  } else { /*if*/
+    variable2 = NEW_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
+    variable0 = variable2;
+    goto return_label0;
+  }
   return_label0: while(false);
   tracehead = trace.prev;
   return variable0;
@@ -62,23 +96,8 @@ val_t environ___NativeString___get_environ(val_t  self) {
   return BOX_NativeString(string_NativeString_NativeString_get_environ_0(UNBOX_NativeString( self)));
 }
 void environ___NativeString___put_environ(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_environ___NativeString___put_environ, 39};
-  trace.prev = tracehead; tracehead = &trace;
-  string_NativeString_NativeString_put_environ_0(UNBOX_NativeString( self));
-  tracehead = trace.prev;
-  return;
 }
 void environ___NativeString___unset_environ(val_t  self) {
-  struct trace_t trace = {NULL, LOCATE_environ___NativeString___unset_environ, 40};
-  trace.prev = tracehead; tracehead = &trace;
-  string_NativeString_NativeString_unset_environ_0(UNBOX_NativeString( self));
-  tracehead = trace.prev;
-  return;
 }
 void environ___NativeString___set_environ(val_t  self, val_t  param0, val_t  param1) {
-  struct trace_t trace = {NULL, LOCATE_environ___NativeString___set_environ, 41};
-  trace.prev = tracehead; tracehead = &trace;
-  string_NativeString_NativeString_set_environ_2(UNBOX_NativeString( self), UNBOX_NativeString( param0), UNTAG_Int( param1));
-  tracehead = trace.prev;
-  return;
 }
index d8ab867..6fe9c11 100644 (file)
@@ -19,24 +19,20 @@ redef class Symbol
        # Return environement valued for this symbol
        meth environ: String
        do
-               environ_default = "" # FIXME: Why this ?!?
-               return new String.from_cstring(to_s.to_cstring.get_environ)
+               var res = to_s.to_cstring.get_environ
+               # FIXME: There is no proper way to handle NULL C string yet. What a pitty.
+               var nulstr = once ("".to_cstring.get_environ)
+               if res != nulstr then
+                       "env {self}=".output
+                       res.output
+                       return new String.from_cstring(res)
+               else
+                       return ""
+               end
        end
-
-       # set environement value for this symbol
-       meth environ=(v: String) do to_s.to_cstring.set_environ(v.to_cstring, 1)
-       
-       # set default environement value for this symbol
-       meth environ_default=(v: String) do to_s.to_cstring.set_environ(v.to_cstring, 0)
-               
-       # Unset the environement value of this symbol
-       meth unset do to_s.to_cstring.unset_environ
 end
 
 redef class NativeString
 # Refinned to add environement bindings
        private meth get_environ: NativeString is extern "string_NativeString_NativeString_get_environ_0"
-       private meth put_environ is extern "string_NativeString_NativeString_put_environ_0" # this one is a bit compilcated to use ... so we dosen't use
-       private meth unset_environ is extern "string_NativeString_NativeString_unset_environ_0"
-       private meth set_environ(value : NativeString, overwrite : Int) is extern "string_NativeString_NativeString_set_environ_2"
 end
index 73858b2..10633ef 100644 (file)
@@ -17,8 +17,5 @@
 #include <stdlib.h>
 
 #define string_NativeString_NativeString_get_environ_0(self) getenv(self)
-#define string_NativeString_NativeString_put_environ_0(self) putenv(self)
-#define string_NativeString_NativeString_unset_environ_0(self) unsetenv(self)
-#define string_NativeString_NativeString_set_environ_2(self, p0, p1) setenv(self, p0, p1)
 
 #endif