[Cxplorer-cvs 00954] CVS update: libcxp/src

Zurück zum Archiv-Index

Yasumichi Akahoshi yasum****@users*****
2005年 3月 31日 (木) 01:38:45 JST


Index: libcxp/src/cxp-handler.c
diff -u libcxp/src/cxp-handler.c:1.2 libcxp/src/cxp-handler.c:1.3
--- libcxp/src/cxp-handler.c:1.2	Thu Mar 31 00:07:52 2005
+++ libcxp/src/cxp-handler.c	Thu Mar 31 01:38:45 2005
@@ -86,7 +86,7 @@
 {
 	bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-	
+
 	CxpHandler *self = CXP_HANDLER (instance);
 
 	self->priv = g_new (CxpHandlerPrivate, 1);
@@ -139,7 +139,7 @@
 {
 	gchar *filename;
 	gchar *suffix = NULL;
-	gchar *cmd;
+	gchar *cmd = NULL;
 	gchar *fullcmd;
 	gint index;
 	GtkWidget *dialog;
@@ -150,23 +150,45 @@
 	if ((suffix = strstr (filename, ".")) != NULL)
 	{
 		cmd = cxp_profile_get_string (handler->priv->profile, suffix);
-		if (cmd != NULL)
-		{
-			fullcmd = g_strdup_printf ("%s %s", cmd, fullpath);
-			g_spawn_command_line_async (fullcmd, NULL);
-			g_free (cmd);
-		}
-		else
+		if (cmd == NULL)
 		{
-			dialog = cxp_entry_dialog_new(_("Undefined suffix"), _("input command"), "");
-			if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)
+			dialog = cxp_entry_dialog_new (_("Undefined suffix"),
+						       _("input command"), "");
+			if (gtk_dialog_run (GTK_DIALOG (dialog)) ==
+			    GTK_RESPONSE_OK)
 			{
-				cmd = cxp_entry_dialog_get_entry_text (CXP_ENTRY_DIALOG(dialog));
-				g_print("%s", cmd);
-				g_free(cmd);
+				cmd = cxp_entry_dialog_get_entry_text
+					(CXP_ENTRY_DIALOG (dialog));
+				if (cmd != NULL)
+				{
+					cxp_profile_set_string (handler->priv->
+								profile, suffix,
+								cmd);
+				}
 			}
-			gtk_widget_destroy(dialog);
+			gtk_widget_destroy (dialog);
 		}
+		g_free (suffix);
 	}
+	else
+	{
+		dialog = cxp_entry_dialog_new (_("Open file"),
+					       _("input command"), "");
+		if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
+		{
+			cmd = cxp_entry_dialog_get_entry_text (CXP_ENTRY_DIALOG
+							       (dialog));
+		}
+		gtk_widget_destroy (dialog);
+	}
+
+	if (cmd != NULL)
+	{
+		fullcmd = g_strdup_printf ("%s %s", cmd, fullpath);
+		g_spawn_command_line_async (fullcmd, NULL);
+		g_free (cmd);
+		g_free (fullcmd);
+	}
+
 	g_free (filename);
 }
Index: libcxp/src/cxp-profile.c
diff -u libcxp/src/cxp-profile.c:1.4 libcxp/src/cxp-profile.c:1.5
--- libcxp/src/cxp-profile.c:1.4	Thu Mar 31 01:04:44 2005
+++ libcxp/src/cxp-profile.c	Thu Mar 31 01:38:45 2005
@@ -123,14 +123,11 @@
 	}
 
 	self->priv->dispose_has_run = TRUE;
-	filename = g_build_filename (
-			g_get_home_dir (),
-			".cxp", 
-			self->priv->appname,
-			self->priv->section,
-			NULL );
-	if ((channel =
-	     g_io_channel_new_file (filename, "w", NULL)) != NULL)
+	filename = g_build_filename (g_get_home_dir (),
+				     ".cxp",
+				     self->priv->appname,
+				     self->priv->section, NULL);
+	if ((channel = g_io_channel_new_file (filename, "w", NULL)) != NULL)
 	{
 		g_hash_table_foreach (self->priv->config, cxp_profile_save_file,
 				      channel);
@@ -151,7 +148,7 @@
 	g_free (self->priv);
 }
 
-CxpProfile *cxp_profile_new (const gchar * appname, const gchar *section)
+CxpProfile *cxp_profile_new (const gchar * appname, const gchar * section)
 {
 	CxpProfile *profile;
 	gchar *cxpdir;
@@ -160,10 +157,7 @@
 	profile = CXP_PROFILE (g_object_new (CXP_TYPE_PROFILE, NULL));
 	profile->priv->appname = g_strdup (appname);
 	profile->priv->section = g_strdup (section);
-	cxpdir = g_build_filename (
-			g_get_home_dir (),
-			".cxp",
-			NULL);
+	cxpdir = g_build_filename (g_get_home_dir (), ".cxp", NULL);
 	if (!g_file_test (cxpdir, G_FILE_TEST_EXISTS))
 	{
 		if (mkdir (cxpdir, S_IFDIR | 0777) != 0)
@@ -171,10 +165,7 @@
 			g_error ("%s couldn't be created.\n", cxpdir);
 		}
 	}
-	appdir = g_build_filename (
-			cxpdir,
-			appname,
-			NULL);
+	appdir = g_build_filename (cxpdir, appname, NULL);
 	if (!g_file_test (appdir, G_FILE_TEST_EXISTS))
 	{
 		if (mkdir (appdir, S_IFDIR | 0777) != 0)
@@ -243,16 +234,17 @@
 	gchar *value;
 	GIOChannel *channel;
 
-	filename = g_build_filename (
-			g_get_home_dir (),
-			".cxp", 
-			profile->priv->appname,
-			profile->priv->section,
-			NULL );
+	filename = g_build_filename (g_get_home_dir (),
+				     ".cxp",
+				     profile->priv->appname,
+				     profile->priv->section, NULL);
 	if ((channel = g_io_channel_new_file (filename, "r", NULL)) == NULL)
 	{
-		g_free(filename);
-		filename = g_build_filename (PACKAGE_CONF_DIR, profile->priv->appname, profile->priv->section, NULL);
+		g_free (filename);
+		filename =
+			g_build_filename (PACKAGE_CONF_DIR,
+					  profile->priv->appname,
+					  profile->priv->section, NULL);
 		channel = g_io_channel_new_file (filename, "r", NULL);
 	}
 
@@ -267,11 +259,11 @@
 				array = g_strsplit (line, "=", 2);
 				name = g_strdup (array[0]);
 				value = g_strdup (array[1]);
-				g_hash_table_replace(config, name, value);
+				g_hash_table_replace (config, name, value);
 			}
 			g_free (line);
 		}
-		g_io_channel_unref(channel);
+		g_io_channel_unref (channel);
 	}
 	g_free (filename);
 }


Cxplorer-cvs メーリングリストの案内
Zurück zum Archiv-Index