I attach the same patch formatted with git.
>From 1d21f97b4d3c1e184ea3b3cb9fba798d0aec7281 Mon Sep 17 00:00:00 2001 From: Dawid Toton <to...@vost.dhcp.ifj.edu.pl> Date: Wed, 30 May 2012 22:24:58 +0200 Subject: [PATCH] Avoid crash in case column number given in cmdline is too high - with already open files
--- gedit/gedit-commands-file.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/gedit/gedit-commands-file.c b/gedit/gedit-commands-file.c index c9812c0..2d68532 100644 --- a/gedit/gedit-commands-file.c +++ b/gedit/gedit-commands-file.c @@ -159,21 +159,29 @@ load_file_list (GeditWindow *window, if (line_pos > 0) { + /* user side: 1-based idex; gedit internal: 0-based index */ + guint zero_based_line_pos = line_pos - 1; + /* document counts lines starting from 0 */ if (column_pos > 0) { - GtkTextIter iter; - - gtk_text_buffer_get_iter_at_line_offset (GTK_TEXT_BUFFER (doc), - &iter, - line_pos - 1, - column_pos - 1); - - gtk_text_buffer_place_cursor (GTK_TEXT_BUFFER (doc), &iter); + guint zero_based_column_pos = column_pos - 1; + guint line_count = gtk_text_buffer_get_line_count (GTK_TEXT_BUFFER (doc)); + + if (zero_based_line_pos < line_count) + { + /* In case line_pos is within the document, we can use gedit_document_goto_line_offset */ + gedit_document_goto_line_offset (doc, zero_based_line_pos, zero_based_column_pos); + } + else + { + /* go to the buffer end */ + gedit_document_goto_line (doc, zero_based_line_pos); + } } else { - gedit_document_goto_line (doc, line_pos - 1); + gedit_document_goto_line (doc, zero_based_line_pos); } gedit_view_scroll_to_cursor (gedit_tab_get_view (tab)); -- 1.7.10