Kouhei Sutou
kous****@users*****
Sun Dec 31 22:56:00 JST 2006
Index: kazehakase/src/kz-migemo.c diff -u kazehakase/src/kz-migemo.c:1.1 kazehakase/src/kz-migemo.c:1.2 --- kazehakase/src/kz-migemo.c:1.1 Sun Dec 31 22:19:38 2006 +++ kazehakase/src/kz-migemo.c Sun Dec 31 22:56:00 2006 @@ -40,15 +40,31 @@ KzMigemo * kz_migemo_new (void) { - KzMigemo *migemo = NULL; + KzMigemo *migemo; + migemo = g_new0(KzMigemo, 1); + return migemo; +} + +void +kz_migemo_free (KzMigemo *migemo) +{ + if (migemo) + { + if (migemo->pid) + g_spawn_close_pid(migemo->pid); + g_free(migemo); + } +} + +static gboolean +kz_migemo_run_command(KzMigemo *migemo) +{ gboolean ret; GSpawnFlags flags; gint argc; gchar **argv = NULL; gchar *migemo_command; - migemo = g_new0(KzMigemo, 1); - migemo_command = KZ_CONF_GET_STR("Global", "migemo_command"); if (!migemo_command) migemo_command = g_strdup(MIGEMO_DEFAULT_COMMAND); @@ -73,23 +89,7 @@ g_strfreev(argv); g_free(migemo_command); - if (!ret) - { - g_free(migemo); - migemo = NULL; - } - - return migemo; -} - -void -kz_migemo_free (KzMigemo *migemo) -{ - if (migemo) - { - g_spawn_close_pid(migemo->pid); - g_free(migemo); - } + return ret; } gchar * @@ -106,6 +106,9 @@ g_return_val_if_fail(migemo, NULL); g_return_val_if_fail(text, NULL); + if (!migemo->pid && !kz_migemo_run_command(migemo)) + return NULL; + if (strlen(text) > MIGEMO_MAX_LENGTH) return NULL;