Skip to content

Commit

Permalink
Add null case to put_env function in sys
Browse files Browse the repository at this point in the history
  • Loading branch information
tobil4sk committed Oct 20, 2021
1 parent 1a5f373 commit 32e114c
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions libs/std/sys.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,20 +85,28 @@ static value get_env( value v ) {
<doc>Set some environment variable value</doc>
**/
static value put_env( value e, value v ) {
val_check(e,string);
bool is_null = val_is_null(v);
#ifdef NEKO_WINDOWS
buffer b;
val_check(e,string);
val_check(v,string);
if( !is_null )
val_check(v,string);
b = alloc_buffer(NULL);
val_buffer(b,e);
buffer_append_sub(b,"=",1);
val_buffer(b,v);
if( !is_null )
val_buffer(b,v);
if( putenv(val_string(buffer_to_string(b))) != 0 )
neko_error();
#else
val_check(e,string);
val_check(v,string);
if( setenv(val_string(e),val_string(v),1) != 0 )
int result;
if( is_null )
result = unsetenv(val_string(e));
else {
val_check(v,string);
result = setenv(val_string(e),val_string(v),1);
}
if( result != 0 )
neko_error();
#endif
return val_true;
Expand Down

0 comments on commit 32e114c

Please sign in to comment.