X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fm17n-core.c;h=66fef04267dbb6d5e8caa58e69e6ace81f28b1fc;hb=6803bafaacdfe59594e815c460a1e1e19672b607;hp=cf88bc28c5b464d02bf3c84a3159b8381d8908c3;hpb=fec9486daf982ecae0032d360cd04d2504462316;p=m17n%2Fm17n-lib.git diff --git a/src/m17n-core.c b/src/m17n-core.c index cf88bc2..66fef04 100644 --- a/src/m17n-core.c +++ b/src/m17n-core.c @@ -17,7 +17,7 @@ You should have received a copy of the GNU Lesser General Public License along with the m17n library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 02111-1307, USA. */ /***en @@ -366,6 +366,7 @@ #include #include #include +#include #include #include #include @@ -420,6 +421,7 @@ void *(*mdatabase__finder) (MSymbol tag1, MSymbol tag2, void *(*mdatabase__loader) (void *); int mdebug__flag; +FILE *mdebug__output; void mdebug__push_time () @@ -453,8 +455,13 @@ mdebug__print_time () do { \ char *env_value = getenv (env_name); \ \ - if (env_value && env_value[0] == '1') \ - mdebug__flag |= (mask); \ + if (env_value) \ + { \ + if (env_value[0] == '1') \ + mdebug__flag |= (mask); \ + else if (env_value[0] == '0') \ + mdebug__flag &= ~(mask); \ + } \ } while (0) @@ -513,6 +520,7 @@ m17n_init_core (void) m17n_memory_full_handler = default_error_handler; mdebug__flag = 0; + SET_DEBUG_FLAG ("MDEBUG_ALL", MDEBUG_ALL); SET_DEBUG_FLAG ("MDEBUG_INIT", MDEBUG_INIT); SET_DEBUG_FLAG ("MDEBUG_FINI", MDEBUG_FINI); SET_DEBUG_FLAG ("MDEBUG_CHARSET", MDEBUG_CHARSET); @@ -522,6 +530,20 @@ m17n_init_core (void) SET_DEBUG_FLAG ("MDEBUG_FONT_FLT", MDEBUG_FONT_FLT); SET_DEBUG_FLAG ("MDEBUG_FONT_OTF", MDEBUG_FONT_OTF); SET_DEBUG_FLAG ("MDEBUG_INPUT", MDEBUG_INPUT); + { + char *env_value = getenv ("MDEBUG_OUTPUT_FILE"); + + mdebug__output = NULL; + if (env_value) + { + if (strcmp (env_value, "stdout")) + mdebug__output = stdout; + else + mdebug__output = fopen (env_value, "a"); + } + if (! mdebug__output) + mdebug__output = stderr; + } MDEBUG_PUSH_TIME (); MDEBUG_PUSH_TIME (); @@ -543,6 +565,15 @@ m17n_init_core (void) mdatabase__finder = NULL; mdatabase__loader = NULL; +#if ENABLE_NLS + bindtextdomain ("m17n-lib", GETTEXTDIR); + bindtextdomain ("m17n-db", GETTEXTDIR); + bindtextdomain ("m17n-contrib", GETTEXTDIR); + bind_textdomain_codeset ("m17n-lib", "UTF-8"); + bind_textdomain_codeset ("m17n-db", "UTF-8"); + bind_textdomain_codeset ("m17n-contrib", "UTF-8"); +#endif + err: MDEBUG_POP_TIME (); MDEBUG_PRINT_TIME ("INIT", (stderr, " to initialize the core modules.")); @@ -560,22 +591,26 @@ m17n_fini_core (void) MDEBUG_PUSH_TIME (); MDEBUG_PUSH_TIME (); - MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize chartable module.")); mchartable__fini (); - MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize textprop module.")); - mtext__prop_fini (); - MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize mtext module.")); + MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize chartable module.")); mtext__fini (); - MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize symbol module.")); + MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize mtext module.")); msymbol__fini (); - MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize plist module.")); + MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize symbol module.")); mplist__fini (); + MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize plist module.")); + /* We must call this after the aboves because it frees interval + pools. */ + mtext__prop_fini (); + MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize textprop module.")); MDEBUG_POP_TIME (); MDEBUG_PRINT_TIME ("FINI", (stderr, " to finalize the core modules.")); MDEBUG_POP_TIME (); if (mdebug__flag & MDEBUG_FINI) report_object_array (); msymbol__free_table (); + if (mdebug__output != stderr) + fclose (mdebug__output); } /*** @} */