int main() { OBJ env; OBJ find; OBJ name; env = env_null(); obj_write(stdout,env_frame(env)); printf("\n"); name = obj_make_symbol("if"); find = lookup_variable_value(name,env); obj_write(stdout,find); find = lookup_variable_value(name,env); obj_write(stdout,find); printf("\n"); obj_write(stdout,env_frame(env)); printf("\n"); gc(env); printf("\n"); obj_write(stdout,env_frame(env)); printf("\n"); return 0; }
int find_ps1(t_shell *sh) { int p; int l; l = -1; p = -1; sh->ps_1 = malloc(sizeof(char) * 1024); sh->ps1 = malloc(sizeof(char) * 1025); memset(sh->ps_1, 0, 1024); memset(sh->ps1, 0, 1024); sh->ps_1[0] = 'P'; sh->ps_1[1] = 'S'; sh->ps_1[2] = '1'; while (sh->env[++p] != NULL) if ((compare_env_dollar(sh->ps_1, sh, p)) == 0) { while (sh->env[p][++l] != '='); memset(sh->ps_1, 0, 1024); my_strncpy(sh->ps_1, sh->env[p], (l + 1)); find_ps1_stuff(sh); return (0); } env_null(sh, p); return (0); }
OBJ env_init() { OBJ ret; int i; ret = env_null(); for(i=0; i<sizeof(core_primitive)/sizeof(core_primitive[0]); i++) { define(obj_make_symbol(core_primitive[i].value.primitive.name),&core_primitive[i],ret); } return ret; }