mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Move get_var, set_var and clear_var to os::env module.
This commit is contained in:
committed by
Christoffer Lerno
parent
c63b3d4209
commit
f5fea69ef9
@@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by the MIT license
|
||||
// a copy of which can be found in the LICENSE_STDLIB file.
|
||||
module std::core::env;
|
||||
import libc;
|
||||
|
||||
enum CompilerOptLevel
|
||||
{
|
||||
O0,
|
||||
@@ -179,58 +179,3 @@ macro bool os_is_posix()
|
||||
return false;
|
||||
$endswitch
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param [in] name
|
||||
* @require name.len > 0
|
||||
**/
|
||||
fn String! get_var(String name)
|
||||
{
|
||||
$if LIBC && !WIN32:
|
||||
@pool()
|
||||
{
|
||||
ZString val = libc::getenv(name.zstr_tcopy());
|
||||
return val ? val.as_str() : SearchResult.MISSING?;
|
||||
};
|
||||
$else
|
||||
return "";
|
||||
$endif
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param [in] name
|
||||
* @param [in] value
|
||||
* @require name.len > 0
|
||||
**/
|
||||
fn void set_var(String name, String value, bool overwrite = true)
|
||||
{
|
||||
$if LIBC && !WIN32:
|
||||
@pool()
|
||||
{
|
||||
if (libc::setenv(name.zstr_tcopy(), value.zstr_copy(), (int)overwrite))
|
||||
{
|
||||
unreachable();
|
||||
}
|
||||
};
|
||||
$endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @param [in] name
|
||||
* @require name.len > 0
|
||||
**/
|
||||
fn void clear_var(String name)
|
||||
{
|
||||
$if LIBC && !WIN32:
|
||||
@pool()
|
||||
{
|
||||
if (libc::unsetenv(name.zstr_tcopy()))
|
||||
{
|
||||
unreachable();
|
||||
}
|
||||
};
|
||||
$endif
|
||||
}
|
||||
|
||||
|
||||
57
lib/std/os/env.c3
Normal file
57
lib/std/os/env.c3
Normal file
@@ -0,0 +1,57 @@
|
||||
// Copyright (c) 2021 Christoffer Lerno. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license
|
||||
// a copy of which can be found in the LICENSE_STDLIB file.
|
||||
module std::os::env;
|
||||
import libc;
|
||||
|
||||
/**
|
||||
* @param [in] name
|
||||
* @require name.len > 0
|
||||
**/
|
||||
fn String! get_var(String name)
|
||||
{
|
||||
$if env::LIBC && !env::WIN32:
|
||||
@pool()
|
||||
{
|
||||
ZString val = libc::getenv(name.zstr_tcopy());
|
||||
return val ? val.as_str() : SearchResult.MISSING?;
|
||||
};
|
||||
$else
|
||||
return "";
|
||||
$endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @param [in] name
|
||||
* @param [in] value
|
||||
* @require name.len > 0
|
||||
**/
|
||||
fn void set_var(String name, String value, bool overwrite = true)
|
||||
{
|
||||
$if env::LIBC && !env::WIN32:
|
||||
@pool()
|
||||
{
|
||||
if (libc::setenv(name.zstr_tcopy(), value.zstr_copy(), (int)overwrite))
|
||||
{
|
||||
unreachable();
|
||||
}
|
||||
};
|
||||
$endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @param [in] name
|
||||
* @require name.len > 0
|
||||
**/
|
||||
fn void clear_var(String name)
|
||||
{
|
||||
$if env::LIBC && !env::WIN32:
|
||||
@pool()
|
||||
{
|
||||
if (libc::unsetenv(name.zstr_tcopy()))
|
||||
{
|
||||
unreachable();
|
||||
}
|
||||
};
|
||||
$endif
|
||||
}
|
||||
Reference in New Issue
Block a user