{
int mdebug_mask = MDEBUG_INIT;
- if (shell_initialized)
+ if (shell_initialized++)
return;
m17n_init_core ();
- if (merror_code < 0)
+ if (merror_code != MERROR_NONE)
return;
MDEBUG_PUSH_TIME ();
MDEBUG_PUSH_TIME ();
if (minput__init () < 0)
goto err;
MDEBUG_PRINT_TIME ("INIT", (stderr, " to initialize input module."));
- shell_initialized = 1;
err:
MDEBUG_POP_TIME ();
{
int mdebug_mask = MDEBUG_FINI;
- if (shell_initialized)
+ if (shell_initialized > 1)
+ shell_initialized--;
+ else
{
+ shell_initialized = 0;
MDEBUG_PUSH_TIME ();
MDEBUG_PUSH_TIME ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize input module."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize input module."));
minput__fini ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize locale module."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize locale module."));
mlocale__fini ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize language module."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize language module."));
mlang__fini ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize character module."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize character module."));
mchar__fini ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize database module."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize database module."));
mdatabase__fini ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize coding module."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize coding module."));
mcoding__fini ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize charset module."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize charset module."));
mcharset__fini ();
MDEBUG_POP_TIME ();
- MDEBUG_PRINT_TIME ("INIT", (stderr, " to finalize the shell modules."));
+ MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize the shell modules."));
MDEBUG_POP_TIME ();
- shell_initialized = 0;
}
m17n_fini_core ();
}