sym = scm_find_symbol (string2, obhash (obarray));
if (scm_is_true (sym)
&& scm_is_true (scm_module_variable (symbol_module, sym)))
- return sym;
+ {
+ if (EQ (sym, Qnil_))
+ return Qnil;
+ else if (EQ (sym, Qt_))
+ return Qt;
+ else
+ return sym;
+ }
else
return make_number (0);
}
obarrays = scm_make_hash_table (SCM_UNDEFINED);
scm_hashq_set_x (obarrays, Vobarray, SCM_UNDEFINED);
- Qunbound = Fmake_symbol (build_pure_c_string ("unbound"));
- /* Set temporary dummy values to Qnil and Vpurify_flag to satisfy the
- NILP (Vpurify_flag) check in intern_c_string. */
- Qnil = make_number (-1); Vpurify_flag = make_number (1);
- Qnil = intern_c_string ("nil");
+ Qnil = SCM_ELISP_NIL;
+ Qt = SCM_BOOL_T;
+
+ Qnil_ = intern_c_string ("nil");
+ SET_SYMBOL_VAL (XSYMBOL (Qnil_), Qnil);
+ XSYMBOL (Qnil_)->constant = 1;
+ XSYMBOL (Qnil_)->declared_special = 1;
- /* Fmake_symbol inits fields of new symbols with Qunbound and Qnil,
- so those two need to be fixed manually. */
+ Qt_ = intern_c_string ("t");
+ SET_SYMBOL_VAL (XSYMBOL (Qt_), Qt);
+ XSYMBOL (Qt_)->constant = 1;
+ XSYMBOL (Qt_)->declared_special = 1;
+
+ Qunbound = Fmake_symbol (build_pure_c_string ("unbound"));
SET_SYMBOL_VAL (XSYMBOL (Qunbound), Qunbound);
- set_symbol_function (Qunbound, Qnil);
- set_symbol_plist (Qunbound, Qnil);
- SET_SYMBOL_VAL (XSYMBOL (Qnil), Qnil);
- XSYMBOL (Qnil)->constant = 1;
- XSYMBOL (Qnil)->declared_special = 1;
- set_symbol_plist (Qnil, Qnil);
- set_symbol_function (Qnil, Qnil);
-
- Qt = intern_c_string ("t");
- SET_SYMBOL_VAL (XSYMBOL (Qt), Qt);
- XSYMBOL (Qnil)->declared_special = 1;
- XSYMBOL (Qt)->constant = 1;
/* Qt is correct even if CANNOT_DUMP. loadup.el will set to nil at end. */
Vpurify_flag = Qt;