SF.net SVN: geany-plugins:[2332] trunk/geany-plugins/geanyvc/src/geanyvc.c

frlan at users.sourceforge.net frlan at xxxxx
Sat Nov 12 12:28:24 UTC 2011


Revision: 2332
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2332&view=rev
Author:   frlan
Date:     2011-11-12 12:28:24 +0000 (Sat, 12 Nov 2011)
Log Message:
-----------
GeanyVC: Remember line position if using blame

Modified Paths:
--------------
    trunk/geany-plugins/geanyvc/src/geanyvc.c

Modified: trunk/geany-plugins/geanyvc/src/geanyvc.c
===================================================================
--- trunk/geany-plugins/geanyvc/src/geanyvc.c	2011-11-11 14:28:06 UTC (rev 2331)
+++ trunk/geany-plugins/geanyvc/src/geanyvc.c	2011-11-12 12:28:24 UTC (rev 2332)
@@ -375,7 +375,8 @@
 /* name should be in UTF-8, and can have a path. */
 static void
 show_output(const gchar * std_output, const gchar * name,
-	    const gchar * force_encoding, GeanyFiletype * ftype)
+	    const gchar * force_encoding, GeanyFiletype * ftype, 
+	    gint line)
 {
 	gint page;
 	GtkNotebook *book;
@@ -388,6 +389,11 @@
 		if (doc == NULL)
 		{
 			doc = document_new_file(name, ftype, std_output);
+			if (line == 0)
+			{
+				line = 1;
+			}
+				
 		}
 		else
 		{
@@ -400,7 +406,9 @@
 		}
 		document_set_text_changed(doc, set_changed_flag);
 		document_set_encoding(doc, (force_encoding ? force_encoding : "UTF-8"));
-		navqueue_goto_line(cur_doc, doc, 1);
+
+		navqueue_goto_line(cur_doc, doc, line);
+
 	}
 	else
 	{
@@ -626,7 +634,7 @@
 		else
 		{
 			name = g_strconcat(doc->file_name, ".vc.diff", NULL);
-			show_output(text, name, doc->encoding, NULL);
+			show_output(text, name, doc->encoding, NULL, 0);
 			g_free(text);
 			g_free(name);
 		}
@@ -678,7 +686,7 @@
 	{
 		gchar *name;
 		name = g_strconcat(dir, ".vc.diff", NULL);
-		show_output(text, name, doc->encoding, NULL);
+		show_output(text, name, doc->encoding, NULL, 0);
 		g_free(text);
 		g_free(name);
 	}
@@ -705,7 +713,8 @@
 	execute_command(vc, &text, NULL, doc->file_name, VC_COMMAND_BLAME, NULL, NULL);
 	if (text)
 	{
-		show_output(text, "*VC-BLAME*", NULL, doc->file_type);
+		show_output(text, "*VC-BLAME*", NULL, 
+			doc->file_type, sci_get_current_line(doc->editor->sci));
 		g_free(text);
 	}
 	else
@@ -731,7 +740,7 @@
 	execute_command(vc, &output, NULL, doc->file_name, VC_COMMAND_LOG_FILE, NULL, NULL);
 	if (output)
 	{
-		show_output(output, "*VC-LOG*", NULL, NULL);
+		show_output(output, "*VC-LOG*", NULL, NULL, 0);
 		g_free(output);
 	}
 }
@@ -755,7 +764,7 @@
 	execute_command(vc, &text, NULL, base_name, VC_COMMAND_LOG_DIR, NULL, NULL);
 	if (text)
 	{
-		show_output(text, "*VC-LOG*", NULL, NULL);
+		show_output(text, "*VC-LOG*", NULL, NULL, 0);
 		g_free(text);
 	}
 
@@ -782,7 +791,7 @@
 	execute_command(vc, &text, NULL, basedir, VC_COMMAND_LOG_DIR, NULL, NULL);
 	if (text)
 	{
-		show_output(text, "*VC-LOG*", NULL, NULL);
+		show_output(text, "*VC-LOG*", NULL, NULL, 0);
 		g_free(text);
 	}
 	g_free(basedir);
@@ -813,7 +822,7 @@
 	execute_command(vc, &text, NULL, base_name, VC_COMMAND_STATUS, NULL, NULL);
 	if (text)
 	{
-		show_output(text, "*VC-STATUS*", NULL, NULL);
+		show_output(text, "*VC-STATUS*", NULL, NULL, 0);
 		g_free(text);
 	}
 
@@ -838,7 +847,7 @@
 	{
 		gchar *name;
 		name = g_strconcat(doc->file_name, ".vc.orig", NULL);
-		show_output(output, name, doc->encoding, doc->file_type);
+		show_output(output, name, doc->encoding, doc->file_type, 0);
 		g_free(name);
 		g_free(output);
 	}
@@ -954,7 +963,7 @@
 		document_reload_file(doc, NULL);
 
 		if (NZV(text))
-			show_output(text, "*VC-UPDATE*", NULL, NULL);
+			show_output(text, "*VC-UPDATE*", NULL, NULL, 0);
 		g_free(text);
 	}
 }

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