remove environ and os-envs primitives

db4
Doug Coleman 2008-10-18 21:41:16 -05:00
parent ab0ed9f988
commit 84ec1eec1d
9 changed files with 0 additions and 127 deletions

View File

@ -10,7 +10,3 @@ extern int getosreldate(void);
#define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN) #define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN)
#define DIRECTORY_P(file) ((file)->d_type == DT_DIR) #define DIRECTORY_P(file) ((file)->d_type == DT_DIR)
#ifndef environ
extern char **environ;
#endif

View File

@ -3,10 +3,6 @@
#define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN) #define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN)
#define DIRECTORY_P(file) ((file)->d_type == DT_DIR) #define DIRECTORY_P(file) ((file)->d_type == DT_DIR)
#ifndef environ
extern char **environ;
#endif
int inotify_init(void); int inotify_init(void);
int inotify_add_watch(int fd, const char *name, u32 mask); int inotify_add_watch(int fd, const char *name, u32 mask);
int inotify_rm_watch(int fd, u32 wd); int inotify_rm_watch(int fd, u32 wd);

View File

@ -12,11 +12,6 @@ const char *default_image_path(void);
DLLEXPORT void c_to_factor_toplevel(CELL quot); DLLEXPORT void c_to_factor_toplevel(CELL quot);
#ifndef environ
extern char ***_NSGetEnviron(void);
#define environ (*_NSGetEnviron())
#endif
INLINE void *ucontext_stack_pointer(void *uap) INLINE void *ucontext_stack_pointer(void *uap)
{ {
ucontext_t *ucontext = (ucontext_t *)uap; ucontext_t *ucontext = (ucontext_t *)uap;

View File

@ -4,5 +4,3 @@
#define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN) #define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN)
#define DIRECTORY_P(file) ((file)->d_type == DT_DIR) #define DIRECTORY_P(file) ((file)->d_type == DT_DIR)
extern char **environ;

View File

@ -1,6 +1,2 @@
#define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN) #define UNKNOWN_TYPE_P(file) ((file)->d_type == DT_UNKNOWN)
#define DIRECTORY_P(file) ((file)->d_type == DT_DIR) #define DIRECTORY_P(file) ((file)->d_type == DT_DIR)
#ifndef environ
extern char **environ;
#endif

View File

@ -1,4 +1,2 @@
#define UNKNOWN_TYPE_P(file) 1 #define UNKNOWN_TYPE_P(file) 1
#define DIRECTORY_P(file) 0 #define DIRECTORY_P(file) 0
extern char **environ;

View File

@ -99,72 +99,6 @@ DEFINE_PRIMITIVE(read_dir)
dpush(result); dpush(result);
} }
DEFINE_PRIMITIVE(os_env)
{
char *name = unbox_char_string();
char *value = getenv(name);
if(value == NULL)
dpush(F);
else
box_char_string(value);
}
DEFINE_PRIMITIVE(os_envs)
{
GROWABLE_ARRAY(result);
REGISTER_ROOT(result);
char **env = environ;
while(*env)
{
CELL string = tag_object(from_char_string(*env));
GROWABLE_ARRAY_ADD(result,string);
env++;
}
UNREGISTER_ROOT(result);
GROWABLE_ARRAY_TRIM(result);
dpush(result);
}
DEFINE_PRIMITIVE(set_os_env)
{
char *key = unbox_char_string();
REGISTER_C_STRING(key);
char *value = unbox_char_string();
UNREGISTER_C_STRING(key);
setenv(key, value, 1);
}
DEFINE_PRIMITIVE(unset_os_env)
{
char *key = unbox_char_string();
unsetenv(key);
}
DEFINE_PRIMITIVE(set_os_envs)
{
F_ARRAY *array = untag_array(dpop());
CELL size = array_capacity(array);
/* Memory leak */
char **env = calloc(size + 1,sizeof(CELL));
CELL i;
for(i = 0; i < size; i++)
{
F_STRING *string = untag_string(array_nth(array,i));
CELL length = to_fixnum(string->length);
char *chars = malloc(length + 1);
char_string_to_memory(string,chars);
chars[length] = '\0';
env[i] = chars;
}
environ = env;
}
F_SEGMENT *alloc_segment(CELL size) F_SEGMENT *alloc_segment(CELL size)
{ {
int pagesize = getpagesize(); int pagesize = getpagesize();

View File

@ -214,38 +214,3 @@ void sleep_millis(DWORD msec)
{ {
Sleep(msec); Sleep(msec);
} }
DEFINE_PRIMITIVE(os_env)
{
F_CHAR *key = unbox_u16_string();
F_CHAR *value = safe_malloc(MAX_UNICODE_PATH * 2);
int ret;
ret = GetEnvironmentVariable(key, value, MAX_UNICODE_PATH * 2);
if(ret == 0)
dpush(F);
else
dpush(tag_object(from_u16_string(value)));
free(value);
}
DEFINE_PRIMITIVE(set_os_env)
{
F_CHAR *key = unbox_u16_string();
REGISTER_C_STRING(key);
F_CHAR *value = unbox_u16_string();
UNREGISTER_C_STRING(key);
if(!SetEnvironmentVariable(key, value))
general_error(ERROR_IO, tag_object(get_error_message()), F, NULL);
}
DEFINE_PRIMITIVE(unset_os_env)
{
if(!SetEnvironmentVariable(unbox_u16_string(), NULL)
&& GetLastError() != ERROR_ENVVAR_NOT_FOUND)
general_error(ERROR_IO, tag_object(get_error_message()), F, NULL);
}
DEFINE_PRIMITIVE(set_os_envs)
{
not_implemented_error();
}

View File

@ -71,7 +71,6 @@ void *primitives[] = {
primitive_exit, primitive_exit,
primitive_data_room, primitive_data_room,
primitive_code_room, primitive_code_room,
primitive_os_env,
primitive_millis, primitive_millis,
primitive_modify_code_heap, primitive_modify_code_heap,
primitive_dlopen, primitive_dlopen,
@ -141,10 +140,6 @@ void *primitives[] = {
primitive_innermost_stack_frame_scan, primitive_innermost_stack_frame_scan,
primitive_set_innermost_stack_frame_quot, primitive_set_innermost_stack_frame_quot,
primitive_call_clear, primitive_call_clear,
primitive_os_envs,
primitive_set_os_env,
primitive_unset_os_env,
primitive_set_os_envs,
primitive_resize_byte_array, primitive_resize_byte_array,
primitive_dll_validp, primitive_dll_validp,
primitive_unimplemented, primitive_unimplemented,