Skip to content

Commit d855783

Browse files
committed
unix/modos: Add getenv().
Dependency of upip.
1 parent a01f6c9 commit d855783

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

unix/modos.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include <unistd.h>
3131
#include <errno.h>
3232
#include <stdlib.h>
33+
#include <string.h>
3334
#include "py/mpconfig.h"
3435

3536
#include "py/nlr.h"
@@ -134,6 +135,12 @@ STATIC mp_obj_t mod_os_system(mp_obj_t cmd_in) {
134135
}
135136
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_os_system_obj, mod_os_system);
136137

138+
STATIC mp_obj_t mod_os_getenv(mp_obj_t var_in) {
139+
const char *s = getenv(mp_obj_str_get_str(var_in));
140+
return mp_obj_new_str(s, strlen(s), false);
141+
}
142+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_obj, mod_os_getenv);
143+
137144
STATIC const mp_map_elem_t mp_module_os_globals_table[] = {
138145
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR__os) },
139146
{ MP_OBJ_NEW_QSTR(MP_QSTR_stat), (mp_obj_t)&mod_os_stat_obj },
@@ -142,6 +149,7 @@ STATIC const mp_map_elem_t mp_module_os_globals_table[] = {
142149
#endif
143150
{ MP_OBJ_NEW_QSTR(MP_QSTR_system), (mp_obj_t)&mod_os_system_obj },
144151
{ MP_OBJ_NEW_QSTR(MP_QSTR_unlink),(mp_obj_t)&mod_os_unlink_obj},
152+
{ MP_OBJ_NEW_QSTR(MP_QSTR_getenv),(mp_obj_t)&mod_os_getenv_obj},
145153
};
146154

147155
STATIC MP_DEFINE_CONST_DICT(mp_module_os_globals, mp_module_os_globals_table);

unix/qstrdefsport.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Q(statvfs)
4141
#endif
4242
Q(system)
4343
Q(unlink)
44+
Q(getenv)
4445

4546
Q(ffi)
4647
Q(ffimod)

0 commit comments

Comments
 (0)