SF.net SVN: geany: [1240] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Thu Feb 1 15:00:59 UTC 2007
Revision: 1240
http://svn.sourceforge.net/geany/?rev=1240&view=rev
Author: eht16
Date: 2007-02-01 07:00:59 -0800 (Thu, 01 Feb 2007)
Log Message:
-----------
Made --line and --column also working for already open files (thanks to Mark Knoop for his help).
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/document.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-02-01 14:42:25 UTC (rev 1239)
+++ trunk/ChangeLog 2007-02-01 15:00:59 UTC (rev 1240)
@@ -2,6 +2,8 @@
* src/build.c: Prevent compiling or executing of files without a
filename extension(closes #1642029).
+ * src/document.c: Made --line and --column also working for already
+ open files (thanks to Mark Knoop for his help).
2007-01-31 Enrico Tröger <enrico.troeger at uvena.de>
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2007-02-01 14:42:25 UTC (rev 1239)
+++ trunk/src/document.c 2007-02-01 15:00:59 UTC (rev 1240)
@@ -653,6 +653,33 @@
}
+/* Sets the cursor position on opening a file. First it sets the line when cl_options.goto_line
+ * is set, otherwise it sets the line when pos is greater than zero and finally it sets the column
+ * if cl_options.goto_column is set. */
+static void set_cursor_position(gint idx, gint pos)
+{
+ if (cl_options.goto_line >= 0)
+ { // goto line which was specified on command line and then undefine the line
+ sci_goto_line(doc_list[idx].sci, cl_options.goto_line - 1, TRUE);
+ doc_list[idx].scroll_percent = 0.5F;
+ cl_options.goto_line = -1;
+ }
+ else if (pos > 0)
+ {
+ sci_set_current_position(doc_list[idx].sci, pos, FALSE);
+ doc_list[idx].scroll_percent = 0.5F;
+ }
+
+ if (cl_options.goto_column >= 0)
+ { // goto column which was specified on command line and then undefine the column
+ gint cur_pos = sci_get_current_position(doc_list[idx].sci);
+ sci_set_current_position(doc_list[idx].sci, cur_pos + cl_options.goto_column, FALSE);
+ doc_list[idx].scroll_percent = 0.5F;
+ cl_options.goto_column = -1;
+ }
+}
+
+
/* To open a new file, set idx to -1; filename should be locale encoded.
* To reload a file, set the idx for the document to be reloaded; filename should be NULL.
* Returns: idx of the opened file or -1 if an error occurred.
@@ -700,6 +727,7 @@
g_free(utf8_filename);
g_free(locale_filename);
utils_check_disk_status(idx, TRUE); // force a file changed check
+ set_cursor_position(idx, pos);
return idx;
}
}
@@ -740,24 +768,8 @@
// update line number margin width
sci_set_line_numbers(doc_list[idx].sci, app->show_linenumber_margin, 0);
- if (cl_options.goto_line >= 0)
- { // goto line which was specified on command line and then undefine the line
- sci_goto_line(doc_list[idx].sci, cl_options.goto_line - 1, TRUE);
- doc_list[idx].scroll_percent = 0.5F;
- cl_options.goto_line = -1;
- }
- else if (pos >= 0)
- {
- sci_set_current_position(doc_list[idx].sci, pos, FALSE);
- doc_list[idx].scroll_percent = 0.5F;
- }
- if (cl_options.goto_column >= 0)
- { // goto column which was specified on command line and then undefine the column
- gint cur_pos = sci_get_current_position(doc_list[idx].sci);
- sci_set_current_position(doc_list[idx].sci, cur_pos + cl_options.goto_column, FALSE);
- doc_list[idx].scroll_percent = 0.5F;
- cl_options.goto_column = -1;
- }
+ // set the cursor position according to pos, cl_options.goto_line and cl_options.goto_column
+ set_cursor_position(idx, pos);
if (! reload)
{
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