(m17n_init_flt, m17n_fini_flt): New arg with_shell.
authorhanda <handa>
Tue, 4 Dec 2007 01:46:18 +0000 (01:46 +0000)
committerhanda <handa>
Tue, 4 Dec 2007 01:46:18 +0000 (01:46 +0000)
src/m17n-flt.c

index 8268ae7..65f9d75 100644 (file)
@@ -2177,20 +2177,25 @@ int m17n__flt_initialized;
    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");
@@ -2204,10 +2209,11 @@ m17n_init_flt (void)
 
   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;
 
@@ -2219,6 +2225,8 @@ m17n_fini_flt (void)
   free_flt_list ();
   MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize the flt modules."));
   MDEBUG_POP_TIME ();
+  if (with_shell)
+    m17n_fini ();
   m17n_fini_core ();
 }