SF.net SVN: geany-plugins:[624] trunk/geanygdb

dmaphy at users.sourceforge.net dmaphy at xxxxx
Mon May 4 21:24:38 UTC 2009


Revision: 624
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=624&view=rev
Author:   dmaphy
Date:     2009-05-04 21:24:38 +0000 (Mon, 04 May 2009)

Log Message:
-----------
 - rename the unix name from debugger to geanygdb
 - move configuration directory in ~/.config/geany/plugins/ from debugger to geanygdb - handle this rev with care!
 - search for tty helper in $PREFIX/$LIBDIR/geany/ and fall back to configuration dir if not found

Modified Paths:
--------------
    trunk/geanygdb/ChangeLog
    trunk/geanygdb/INSTALL
    trunk/geanygdb/src/Makefile.am
    trunk/geanygdb/src/geanydebug.c

Modified: trunk/geanygdb/ChangeLog
===================================================================
--- trunk/geanygdb/ChangeLog	2009-05-04 21:16:59 UTC (rev 623)
+++ trunk/geanygdb/ChangeLog	2009-05-04 21:24:38 UTC (rev 624)
@@ -1,3 +1,16 @@
+2009-05-04 Dominic Hopf <dmaphy at googlemail.com>
+ * search for a globally installed tty helper in $PREFIX/$LIBDIR/geany/,
+   and fall back to the users config dir if not found. this fixes problems when
+   the plugin is installed to ~/.config/geany/plugins/.
+ * rename configuration directory for this plugin from "debugger" to "geanygdb",
+   GeanyGDB will try to automatically rename ~/.config/geany/plugins/debugger/
+   to ~/.config/geany/plugins/geanygdb/.
+   You are recommended to backup this directory.
+
+2009-05-02 Dominic Hopf <dmaphy at googlemail.com>
+ * fix a crash when trying to delete breakpoints or watchpoints without
+   selecting one - thanks to eht16 for the patch
+
 2009-05-01 Dominic Hopf <dmaphy at googlemail.com>
  * fix Geany version dependency in configure.in
  * rewrite Documentation (README and INSTALL) with ReST
@@ -4,4 +17,4 @@
 
 2009-04-18 Dominic Hopf <dmaphy at googlemail.com>
  * version bump to 0.0.2
- * this maintenance release will be comptabible with Geany 0.16
+ * this maintenance release will be compatible with Geany 0.16

Modified: trunk/geanygdb/INSTALL
===================================================================
--- trunk/geanygdb/INSTALL	2009-05-04 21:16:59 UTC (rev 623)
+++ trunk/geanygdb/INSTALL	2009-05-04 21:24:38 UTC (rev 624)
@@ -20,7 +20,7 @@
  ./configure
  make
  cp src/.libs/geanygdb.so ~/.config/geany/plugins
- cp src/geanygdb_ttyhelper ~/.config/geany/plugins
+ cp src/geanygdb_ttyhelper ~/.config/geany/plugins/geanygdb/ttyhelper/
 
 
 Third

Modified: trunk/geanygdb/src/Makefile.am
===================================================================
--- trunk/geanygdb/src/Makefile.am	2009-05-04 21:16:59 UTC (rev 623)
+++ trunk/geanygdb/src/Makefile.am	2009-05-04 21:24:38 UTC (rev 624)
@@ -24,5 +24,5 @@
 bin_PROGRAMS = geanygdb_ttyhelper
 geanygdb_ttyhelper_SOURCES = ttyhelper.c
 
-AM_CFLAGS = @GEANY_CFLAGS@ -DLOCALEDIR=\""$(localedir)"\" -DPREFIX=\""$(prefix)"\"
+AM_CFLAGS = @GEANY_CFLAGS@ -DLOCALEDIR=\""$(localedir)"\" -DPREFIX=\""$(prefix)"\"  -DLIBDIR=\""$(libdir)"\"
 

Modified: trunk/geanygdb/src/geanydebug.c
===================================================================
--- trunk/geanygdb/src/geanydebug.c	2009-05-04 21:16:59 UTC (rev 623)
+++ trunk/geanygdb/src/geanydebug.c	2009-05-04 21:24:38 UTC (rev 624)
@@ -46,7 +46,7 @@
 
 
 
-#define unix_name "debugger"
+#define unix_name "geanygdb"
 
 
 PLUGIN_VERSION_CHECK(115)
@@ -275,17 +275,49 @@
 	g_key_file_set_string(kf, unix_name, "term_cmd", gdbui_setup.options.term_cmd);
 	g_key_file_set_boolean(kf, unix_name, "show_tooltips", gdbui_setup.options.show_tooltips);
 	g_key_file_set_boolean(kf, unix_name, "show_icons", gdbui_setup.options.show_icons);
-	if (utils_mkdir(gdbio_setup.temp_dir, TRUE) != 0)
+
+	if (
+		g_file_test (
+			g_build_filename(geany->app->configdir, "plugins", "debugger", NULL),
+			G_FILE_TEST_IS_DIR
+		)
+		&&
+		!g_file_test (
+			g_build_filename(geany->app->configdir, "plugins", unix_name, NULL),
+			G_FILE_TEST_IS_DIR
+		)
+	)
 	{
-		dialogs_show_msgbox(GTK_MESSAGE_ERROR,
-				       _("Plugin configuration directory could not be created."));
+		g_rename(
+			g_build_filename(geany->app->configdir, "plugins", "debugger", NULL),
+			g_build_filename(geany->app->configdir, "plugins", unix_name, NULL)
+		);
 	}
+
 	else
 	{
-		gchar *data = g_key_file_to_data(kf, NULL, NULL);
-		utils_write_file(config_file, data);
-		g_free(data);
+		if (!g_file_test (
+				g_build_filename(geany->app->configdir, "plugins", unix_name, NULL),
+				G_FILE_TEST_IS_DIR
+			)
+		)
+		{
+			if (utils_mkdir(gdbio_setup.temp_dir, TRUE) != 0)
+			{
+				dialogs_show_msgbox(GTK_MESSAGE_ERROR,
+						   _("Plugin configuration directory could not be created."));
+			}
+
+			else
+			{
+
+				gchar *data = g_key_file_to_data(kf, NULL, NULL);
+				utils_write_file(config_file, data);
+				g_free(data);
+			}
+		}
 	}
+
 	g_key_file_free(kf);
 	gtk_widget_destroy(GTK_BIN(frame)->child);
 	gdbui_create_widgets(frame);
@@ -351,16 +383,24 @@
 
 	gdbui_setup.main_window = geany->main_widgets->window;
 
-	/**
-	 * TODO: detect where this plugin is installed so that the path to
-	 * geanygdb_ttyhelper can be automatically detected.
+	gdbio_setup.temp_dir = g_build_filename(geany->app->configdir, "plugins", unix_name, NULL);
+
+	/*
+	 * the tty helper binary is either in the user's config dir or globally
+	 * installed in $PREFIX/$LIBDIR/geany/
 	 */
-	gdbio_setup.temp_dir = g_build_filename(geany->app->configdir, "plugins", unix_name, NULL);
-	/*gdbio_setup.tty_helper = g_build_filename(gdbio_setup.temp_dir, "geanygdb_ttyhelper", NULL);*/
-	/* the tty helper binary is installed in $prefix/bin, so use this path */
-	gdbio_setup.tty_helper = g_build_filename(PREFIX, "bin", "geanygdb_ttyhelper", NULL);
+	gdbio_setup.tty_helper = g_build_filename(PREFIX, LIBDIR, "geany", "ttyhelper", NULL);
+	if (! (g_file_test(gdbio_setup.tty_helper, G_FILE_TEST_IS_EXECUTABLE) &&
+	       g_file_test(gdbio_setup.tty_helper, G_FILE_TEST_IS_REGULAR)))
+	{
+		setptr(gdbio_setup.tty_helper, g_build_filename(
+			geany->app->configdir, "plugins", unix_name, "ttyhelper", NULL));
+	}
+
+	g_message(gdbio_setup.tty_helper);
 	config_file = g_build_filename(gdbio_setup.temp_dir, "debugger.cfg", NULL);
 	gdbui_opts_init();
+
 	if (g_key_file_load_from_file(kf, config_file, G_KEY_FILE_NONE, NULL))
 	{
 		GET_KEY_STR(mono_font);
@@ -368,6 +408,7 @@
 		GET_KEY_BOOL(show_tooltips);
 		GET_KEY_BOOL(show_icons);
 	}
+
 	g_key_file_free(kf);
 
 	gdbui_setup.warn_func = warn_message_cb;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list