static void parse_variant(const char *str) { char *varname = NULL; char *str2; Obj *varval = lispnil; if (strcmp(str, "") == 0) { push_key_int_binding(&variant_settings, K_WORLD_SEEN, 1); } else if (strcmp(str, "help") == 0) { variant_help_wanted = TRUE; } else { str2 = strchr(str, '='); if (str2 != NULL && str2 != str) { /* (should interp val as string or number) */ varval = new_number(atoi(str2 + 1)); varname = copy_string(str); varname[str2 - str] = '\0'; } else { /* Assume varname by itself means "enable" (set to value of 1). */ varname = copy_string(str); varval = new_number(1); } if (varname) push_binding(&variant_settings, intern_symbol(varname), varval); } }
void env_intern_define(Environment *e, const char *name, GCPtr value) { env_define(e,intern_symbol(name), value); }