by the macro M17N_INIT (). */
void
-m17n_init_flt (void)
+m17n_init_flt (int with_shell)
{
int mdebug_flag = MDEBUG_INIT;
merror_code = MERROR_NONE;
- if (m17n__flt_initialized++)
- return;
+ if (m17n__flt_initialized)
+ {
+ m17n__flt_initialized++;
+ return;
+ }
m17n_init_core ();
if (merror_code != MERROR_NONE)
+ return;
+ if (with_shell)
{
- m17n__flt_initialized--;
- return;
+ m17n_init ();
+ if (merror_code != MERROR_NONE)
+ return;
}
-
MDEBUG_PUSH_TIME ();
Mcond = msymbol ("cond");
MDEBUG_PRINT_TIME ("INIT", (stderr, " to initialize the flt modules."));
MDEBUG_POP_TIME ();
+ m17n__flt_initialized++;
}
void
-m17n_fini_flt (void)
+m17n_fini_flt (int with_shell)
{
int mdebug_flag = MDEBUG_FINI;
free_flt_list ();
MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize the flt modules."));
MDEBUG_POP_TIME ();
+ if (with_shell)
+ m17n_fini ();
m17n_fini_core ();
}