SF.net SVN: geany: [897] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Oct 16 14:15:15 UTC 2006


Revision: 897
          http://svn.sourceforge.net/geany/?rev=897&view=rev
Author:   ntrel
Date:     2006-10-16 07:15:04 -0700 (Mon, 16 Oct 2006)

Log Message:
-----------
Don't overwrite Make Custom string when using Make Object.
Move app->build_make_custopt to build_options struct in build.c.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/build.c
    trunk/src/build.h
    trunk/src/callbacks.c
    trunk/src/geany.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-10-16 14:09:20 UTC (rev 896)
+++ trunk/ChangeLog	2006-10-16 14:15:04 UTC (rev 897)
@@ -2,6 +2,9 @@
 
  * src/keybindings.c: Change goto matching brace default keybinding to
                       CTRL-SHIFT-< (requires shift on some keyboards).
+ * src/build.c, src/build.h, src/geany.h, src/callbacks.c:
+   Don't overwrite Make Custom string when using Make Object.
+   Move app->build_make_custopt to build_options struct in build.c.
 
 
 2006-10-13  Enrico Tröger  <enrico.troeger at uvena.de>

Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c	2006-10-16 14:09:20 UTC (rev 896)
+++ trunk/src/build.c	2006-10-16 14:15:04 UTC (rev 897)
@@ -44,6 +44,9 @@
 #include "main.h"
 
 
+BuildOptions build_options = {NULL};
+
+
 static gboolean build_iofunc(GIOChannel *ioc, GIOCondition cond, gpointer data);
 static gboolean build_create_shellscript(const gint idx, const gchar *fname, const gchar *cmd);
 static GPid build_spawn_cmd(gint idx, gchar **cmd);
@@ -146,22 +149,48 @@
 }
 
 
-GPid build_make_file(gint idx, gboolean cust_target)
+static gchar *get_object_filename(gint idx)
 {
+	gchar *locale_filename, *short_file, *noext, *object_file;
+
+	if (doc_list[idx].file_name == NULL) return NULL;
+
+	locale_filename = utils_get_locale_from_utf8(doc_list[idx].file_name);
+
+	short_file = g_path_get_basename(locale_filename);
+	g_free(locale_filename);
+
+	noext = utils_remove_ext_from_filename(short_file);
+	g_free(short_file);
+
+	object_file = g_strdup_printf("%s.o", noext);
+	g_free(noext);
+	
+	return object_file;
+}
+
+
+GPid build_make_file(gint idx, gint build_opts)
+{
 	gchar **argv;
 
 	if (idx < 0 || doc_list[idx].file_name == NULL) return (GPid) 1;
 
 	argv = g_new0(gchar*, 3);
-	if (cust_target && app->build_make_custopt)
+	argv[0] = g_strdup(app->tools_make_cmd);
+	
+	if (build_opts == GBO_MAKE_OBJECT)
+	{
+		argv[1] = get_object_filename(idx);
+		argv[2] = NULL;
+	}
+	else if (build_opts == GBO_MAKE_CUSTOM && build_options.custom_target)
 	{	//cust-target
-		argv[0] = g_strdup(app->tools_make_cmd);
-		argv[1] = g_strdup(app->build_make_custopt);
+		argv[1] = g_strdup(build_options.custom_target);
 		argv[2] = NULL;
 	}
-	else
+	else	// GBO_MAKE_ALL
 	{
-		argv[0] = g_strdup(app->tools_make_cmd);
 		argv[1] = g_strdup("all");
 		argv[2] = NULL;
 	}

Modified: trunk/src/build.h
===================================================================
--- trunk/src/build.h	2006-10-16 14:09:20 UTC (rev 896)
+++ trunk/src/build.h	2006-10-16 14:15:04 UTC (rev 897)
@@ -24,8 +24,23 @@
 #ifndef GEANY_BUILD_H
 #define GEANY_BUILD_H 1
 
-GPid build_make_file(gint idx, gboolean cust_target);
+enum	// Geany Build Options
+{
+	GBO_MAKE_ALL,
+	GBO_MAKE_CUSTOM,
+	GBO_MAKE_OBJECT
+};
 
+typedef struct
+{
+	gchar *custom_target;
+} BuildOptions;
+
+extern BuildOptions build_options;
+
+
+GPid build_make_file(gint idx, gint build_opts);
+
 GPid build_compile_file(gint idx);
 
 GPid build_link_file(gint idx);

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-10-16 14:09:20 UTC (rev 896)
+++ trunk/src/callbacks.c	2006-10-16 14:15:04 UTC (rev 897)
@@ -1620,52 +1620,34 @@
                                         gpointer         user_data)
 {
 	gint idx = document_get_cur_idx();
-	gboolean make_object = FALSE;
+	gint build_opts = GBO_MAKE_ALL;
 
+	//CHECK MENUS DISABLED
+	g_return_if_fail(DOC_IDX_VALID(idx) && doc_list[idx].file_name != NULL);
+
 	switch (GPOINTER_TO_INT(user_data))
 	{
 		case 1: //custom target
 		{
 			dialogs_show_input(_("Enter custom options for the make tool"),
 				_("Enter custom options here, all entered text is passed to the make command."),
-				app->build_make_custopt,
+				build_options.custom_target,
 				G_CALLBACK(on_make_target_dialog_response),
 				G_CALLBACK(on_make_target_entry_activate));
 			break;
 		}
 
 		case 2: //make object
-		{
-			gchar *locale_filename, *short_file, *noext, *object_file; //temp
-
-			if (doc_list[idx].file_name != NULL)
-			{
-				locale_filename = utils_get_locale_from_utf8(doc_list[idx].file_name);
-
-				short_file = g_path_get_basename(locale_filename);
-				g_free(locale_filename);
-
-				noext = utils_remove_ext_from_filename(short_file);
-				g_free(short_file);
-
-				object_file = g_strdup_printf("%s.o", noext);
-				g_free(noext);
-
-				g_free(app->build_make_custopt);
-				app->build_make_custopt = g_strdup(object_file);
-				g_free(object_file);
-				make_object = TRUE;
-			}
-		}
-
+		build_opts = GBO_MAKE_OBJECT;
 		// fall through
+
 		case 0: //make all
 		{
 			GPid child_pid;
 
 			if (doc_list[idx].changed) document_save_file(idx, FALSE);
 
-			child_pid = build_make_file(idx, make_object);
+			child_pid = build_make_file(idx, build_opts);
 			if (child_pid != (GPid) 0)
 			{
 				gtk_widget_set_sensitive(app->compile_button, FALSE);
@@ -1740,10 +1722,10 @@
 
 		if (doc_list[idx].changed) document_save_file(idx, FALSE);
 
-		g_free(app->build_make_custopt);
-		app->build_make_custopt = g_strdup(gtk_entry_get_text(GTK_ENTRY(user_data)));
+		g_free(build_options.custom_target);
+		build_options.custom_target = g_strdup(gtk_entry_get_text(GTK_ENTRY(user_data)));
 
-		child_pid = build_make_file(idx, TRUE);
+		child_pid = build_make_file(idx, GBO_MAKE_CUSTOM);
 		if (child_pid != (GPid) 0)
 		{
 			gtk_widget_set_sensitive(app->compile_button, FALSE);

Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h	2006-10-16 14:09:20 UTC (rev 896)
+++ trunk/src/geany.h	2006-10-16 14:15:04 UTC (rev 897)
@@ -138,7 +138,6 @@
 	gchar				*configdir;
 	gchar				*datadir;
 	gchar				*docdir;
-	gchar				*build_make_custopt;
 	gchar				*custom_date_format;
 	gchar				*tools_browser_cmd;
 	gchar				*tools_make_cmd;


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



More information about the Commits mailing list