SF.net SVN: geany: [2765] branches/editor-struct

ntrel at users.sourceforge.net ntrel at xxxxx
Tue Jul 8 13:53:19 UTC 2008


Revision: 2765
          http://geany.svn.sourceforge.net/geany/?rev=2765&view=rev
Author:   ntrel
Date:     2008-07-08 06:53:08 -0700 (Tue, 08 Jul 2008)

Log Message:
-----------
Fix building editor.c, using GeanyEditor* instead of GeanyDocument*
(most global editor functions still need conversion though).

Modified Paths:
--------------
    branches/editor-struct/ChangeLog
    branches/editor-struct/src/callbacks.c
    branches/editor-struct/src/document.c
    branches/editor-struct/src/editor.c
    branches/editor-struct/src/editor.h
    branches/editor-struct/src/keybindings.c
    branches/editor-struct/src/keyfile.c
    branches/editor-struct/src/navqueue.c
    branches/editor-struct/src/prefs.c
    branches/editor-struct/src/search.c

Modified: branches/editor-struct/ChangeLog
===================================================================
--- branches/editor-struct/ChangeLog	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/ChangeLog	2008-07-08 13:53:08 UTC (rev 2765)
@@ -12,6 +12,11 @@
    src/main.c, src/editor.c, src/ui_utils.c, plugins/export.c,
    plugins/vcdiff.c, plugins/htmlchars.c, plugins/classbuilder.c:
    Update for doc->editor->scintilla.
+ * src/keybindings.c, src/prefs.c, src/navqueue.c, src/callbacks.c,
+   src/keyfile.c, src/search.c, src/document.c, src/editor.c,
+   src/editor.h:
+   Fix building editor.c, using GeanyEditor* instead of GeanyDocument*
+   (most global editor functions still need conversion though).
 
 
 2008-07-07  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: branches/editor-struct/src/callbacks.c
===================================================================
--- branches/editor-struct/src/callbacks.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/callbacks.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -969,7 +969,7 @@
 	{
 		GeanyDocument *doc = document_get_current();
 		if (doc != NULL)
-			editor_set_line_wrapping(doc, ! doc->line_wrapping);
+			editor_set_line_wrapping(doc->editor, ! doc->editor->line_wrapping);
 	}
 }
 
@@ -1101,7 +1101,7 @@
 			change_direction ? forward : !forward, FALSE, NULL);
 
 		if (result > -1)
-			editor_display_current_line(doc, 0.3F);
+			editor_display_current_line(doc->editor, 0.3F);
 
 		set_search_bar_background((result > -1) ? TRUE : FALSE);
 	}
@@ -1192,7 +1192,7 @@
 
 			line--;	/* the user counts lines from 1, we begin at 0 so bring the user line to our one */
 			pos = sci_get_position_from_line(doc->editor->scintilla, line);
-			editor_goto_pos(doc, pos, TRUE);
+			editor_goto_pos(doc->editor, pos, TRUE);
 		}
 		else
 		{
@@ -2074,7 +2074,7 @@
 	if (doc == NULL || ignore_callback)
 		return;
 
-	editor_set_use_tabs(doc, TRUE);
+	editor_set_use_tabs(doc->editor, TRUE);
 	ui_update_statusbar(doc, -1);
 }
 
@@ -2088,7 +2088,7 @@
 	if (doc == NULL || ignore_callback)
 		return;
 
-	editor_set_use_tabs(doc, FALSE);
+	editor_set_use_tabs(doc->editor, FALSE);
 	ui_update_statusbar(doc, -1);
 }
 

Modified: branches/editor-struct/src/document.c
===================================================================
--- branches/editor-struct/src/document.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/document.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -569,7 +569,7 @@
 	if (text != NULL)
 		sci_convert_eols(doc->editor->scintilla, file_prefs.default_eol_character);
 
-	editor_set_use_tabs(doc, editor_prefs.use_tabs);
+	editor_set_use_tabs(doc->editor, editor_prefs.use_tabs);
 	sci_set_undo_collection(doc->editor->scintilla, TRUE);
 	sci_empty_undo_buffer(doc->editor->scintilla);
 
@@ -917,9 +917,9 @@
 {
 	/* force using tabs for indentation for Makefiles */
 	if (FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_MAKE)
-		editor_set_use_tabs(doc, TRUE);
+		editor_set_use_tabs(doc->editor, TRUE);
 	else if (! editor_prefs.detect_tab_mode)
-		editor_set_use_tabs(doc, editor_prefs.use_tabs);
+		editor_set_use_tabs(doc->editor, editor_prefs.use_tabs);
 	else
 	{	/* detect & set tabs/spaces */
 		gboolean use_tabs = detect_use_tabs(doc->editor->scintilla);
@@ -927,7 +927,7 @@
 		if (use_tabs != editor_prefs.use_tabs)
 			ui_set_statusbar(TRUE, _("Setting %s indentation mode."),
 				(use_tabs) ? _("Tabs") : _("Spaces"));
-		editor_set_use_tabs(doc, use_tabs);
+		editor_set_use_tabs(doc->editor, use_tabs);
 	}
 }
 
@@ -1057,7 +1057,7 @@
 
 	/* set indentation settings after setting the filetype */
 	if (reload)
-		editor_set_use_tabs(doc, doc->use_tabs); /* resetup sci */
+		editor_set_use_tabs(doc->editor, doc->use_tabs); /* resetup sci */
 	else
 		set_indentation(doc);
 

Modified: branches/editor-struct/src/editor.c
===================================================================
--- branches/editor-struct/src/editor.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/editor.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -71,13 +71,13 @@
 static gchar indent[100];
 
 
-static void on_new_line_added(GeanyDocument *doc);
-static gboolean handle_xml(GeanyDocument *doc, gchar ch);
-static void get_indent(GeanyDocument *doc, gint pos, gboolean use_this_line);
-static void auto_multiline(GeanyDocument *doc, gint pos);
+static void on_new_line_added(GeanyEditor *editor);
+static gboolean handle_xml(GeanyEditor *editor, gchar ch);
+static void get_indent(GeanyEditor *editor, gint pos, gboolean use_this_line);
+static void auto_multiline(GeanyEditor *editor, gint pos);
 static gboolean is_comment(gint lexer, gint prev_style, gint style);
 static void auto_close_bracket(ScintillaObject *sci, gint pos, gchar c);
-static void editor_auto_table(GeanyDocument *doc, gint pos);
+static void auto_table(GeanyEditor *editor, gint pos);
 
 
 
@@ -275,27 +275,27 @@
 }
 
 
-static void on_update_ui(GeanyDocument *doc, G_GNUC_UNUSED SCNotification *nt)
+static void on_update_ui(GeanyEditor *editor, G_GNUC_UNUSED SCNotification *nt)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gint pos = sci_get_current_position(sci);
 
 	/* undo / redo menu update */
-	ui_update_popup_reundo_items(doc);
+	ui_update_popup_reundo_items(editor->document);
 
 	/* brace highlighting */
 	editor_highlight_braces(sci, pos);
 
-	ui_update_statusbar(doc, pos);
+	ui_update_statusbar(editor->document, pos);
 
 	/* Visible lines are only laid out accurately once [SCN_UPDATEUI] is sent,
 	 * so we need to only call sci_scroll_to_line here, because the document
 	 * may have line wrapping and folding enabled.
 	 * http://scintilla.sourceforge.net/ScintillaDoc.html#LineWrapping */
-	if (doc->scroll_percent > 0.0F)
+	if (editor->scroll_percent > 0.0F)
 	{
-		editor_scroll_to_line(sci, -1, doc->scroll_percent);
-		doc->scroll_percent = -1.0F;	/* disable further scrolling */
+		editor_scroll_to_line(sci, -1, editor->scroll_percent);
+		editor->scroll_percent = -1.0F;	/* disable further scrolling */
 	}
 #if 0
 	/** experimental code for inverting selections */
@@ -314,12 +314,12 @@
 }
 
 
-static void check_line_breaking(GeanyDocument *doc, gint pos, gchar c)
+static void check_line_breaking(GeanyEditor *editor, gint pos, gchar c)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gint line, lstart;
 
-	if (!doc->line_breaking)
+	if (!editor->line_breaking)
 		return;
 
 	if (c == GDK_space)
@@ -340,7 +340,7 @@
 		if (c == GDK_space)
 		{
 			gint col, len, diff;
-			const gchar *eol = editor_get_eol_char(doc);
+			const gchar *eol = editor_get_eol_char(editor->document);
 
 			/* break the line after the space */
 			sci_insert_text(sci, pos + 1, eol);
@@ -357,7 +357,7 @@
 			pos = sci_get_position_from_line(sci, line);
 			sci_set_current_position(sci, pos, FALSE);
 			/* add indentation, comment multilines, etc */
-			on_new_line_added(doc);
+			on_new_line_added(editor);
 
 			/* correct cursor position (might not be at line end) */
 			pos = sci_get_position_from_line(sci, line);
@@ -369,9 +369,9 @@
 }
 
 
-static void on_char_added(GeanyDocument *doc, SCNotification *nt)
+static void on_char_added(GeanyEditor *editor, SCNotification *nt)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gint pos = sci_get_current_position(sci);
 
 	switch (nt->ch)
@@ -379,23 +379,23 @@
 		case '\r':
 		{	/* simple indentation (only for CR format) */
 			if (sci_get_eol_mode(sci) == SC_EOL_CR)
-				on_new_line_added(doc);
+				on_new_line_added(editor);
 			break;
 		}
 		case '\n':
 		{	/* simple indentation (for CR/LF and LF format) */
-			on_new_line_added(doc);
+			on_new_line_added(editor);
 			break;
 		}
 		case '>':
 		case '/':
 		{	/* close xml-tags */
-			handle_xml(doc, nt->ch);
+			handle_xml(editor, nt->ch);
 			break;
 		}
 		case '(':
 		{	/* show calltips */
-			editor_show_calltip(doc, --pos);
+			editor_show_calltip(editor->document, --pos);
 			break;
 		}
 		case ')':
@@ -417,19 +417,20 @@
 			if (sci_get_lexer(sci) == SCLEX_LATEX)
 			{
 				auto_close_bracket(sci, pos, nt->ch);	/* Tex auto-closing */
-				editor_show_calltip(doc, --pos);
+				editor_show_calltip(editor->document, --pos);
 			}
 			break;
 		}
 		case '}':
 		{	/* closing bracket handling */
-			if (doc->auto_indent)
-				editor_close_block(doc, pos - 1);
+			if (editor->auto_indent)
+				editor_close_block(editor->document, pos - 1);
 			break;
 		}
-		default: editor_start_auto_complete(doc, pos, FALSE);
+		default:
+			editor_start_auto_complete(editor->document, pos, FALSE);
 	}
-	check_line_breaking(doc, pos, nt->ch);
+	check_line_breaking(editor, pos, nt->ch);
 }
 
 
@@ -566,14 +567,15 @@
 
 
 /* callback func called by all editors when a signal arises */
-void on_editor_notification(GtkWidget *editor, gint scn, gpointer lscn, gpointer user_data)
+void on_editor_notification(GtkWidget *widget, gint scn, gpointer lscn, gpointer user_data)
 {
 	SCNotification *nt;
 	ScintillaObject *sci;
-	GeanyDocument *doc;
+	GeanyDocument *doc = user_data;
+	GeanyEditor *editor;
 
-	doc = user_data;
-	sci = doc->editor->scintilla;
+	editor = doc->editor;
+	sci = editor->scintilla;
 
 	nt = lscn;
 	switch (nt->nmhdr.code)
@@ -598,7 +600,7 @@
 			break;
 
 		case SCN_UPDATEUI:
-			on_update_ui(doc, nt);
+			on_update_ui(editor, nt);
 			break;
 
  		case SCN_MODIFIED:
@@ -616,7 +618,7 @@
 			break;
 		}
 		case SCN_CHARADDED:
-			on_char_added(doc, nt);
+			on_char_added(editor, nt);
 			break;
 
 		case SCN_USERLISTSELECTION:
@@ -721,53 +723,54 @@
 }
 
 
-static void check_python_indent(GeanyDocument *doc, gint pos)
+static void check_python_indent(GeanyEditor *editor, gint pos)
 {
-	gint last_char = pos - editor_get_eol_char_len(doc) - 1;
+	ScintillaObject *sci = editor->scintilla;
+	gint last_char = pos - editor_get_eol_char_len(editor->document) - 1;
 
 	/* add extra indentation for Python after colon */
-	if (sci_get_char_at(doc->editor->scintilla, last_char) == ':' &&
-		sci_get_style_at(doc->editor->scintilla, last_char) == SCE_P_OPERATOR)
+	if (sci_get_char_at(sci, last_char) == ':' &&
+		sci_get_style_at(sci, last_char) == SCE_P_OPERATOR)
 	{
 		/* creates and inserts one tabulator sign or
 		 * whitespace of the amount of the tab width */
-		gchar *text = get_whitespace(editor_prefs.tab_width, doc->use_tabs);
-		sci_add_text(doc->editor->scintilla, text);
+		gchar *text = get_whitespace(editor_prefs.tab_width, editor->use_tabs);
+		sci_add_text(sci, text);
 		g_free(text);
 	}
 }
 
 
-static void on_new_line_added(GeanyDocument *doc)
+static void on_new_line_added(GeanyEditor *editor)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gint pos = sci_get_current_position(sci);
 	gint line = sci_get_current_line(sci);
 
 	/* simple indentation */
-	if (doc->auto_indent)
+	if (editor->auto_indent)
 	{
-		get_indent(doc, pos, FALSE);
+		get_indent(editor, pos, FALSE);
 		sci_add_text(sci, indent);
 
 		if (editor_prefs.indent_mode > INDENT_BASIC &&
-			FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_PYTHON)
-			check_python_indent(doc, pos);
+			FILETYPE_ID(editor->document->file_type) == GEANY_FILETYPES_PYTHON)
+			check_python_indent(editor, pos);
 	}
 
 	if (editor_prefs.auto_continue_multiline)
 	{	/* " * " auto completion in multiline C/C++/D/Java comments */
-		auto_multiline(doc, pos);
+		auto_multiline(editor, pos);
 	}
 
 	if (editor_prefs.complete_snippets)
 	{
-		editor_auto_latex(doc, pos);
+		editor_auto_latex(editor->document, pos);
 	}
 
 	if (editor_prefs.newline_strip)
 	{	/* strip the trailing spaces on the previous line */
-		editor_strip_line_trailing_spaces(doc, line - 1);
+		editor_strip_line_trailing_spaces(editor->document, line - 1);
 	}
 }
 
@@ -814,9 +817,9 @@
 
 /* "use_this_line" to auto-indent only if it is a real new line
  * and ignore the case of editor_close_block */
-static void get_indent(GeanyDocument *doc, gint pos, gboolean use_this_line)
+static void get_indent(GeanyEditor *editor, gint pos, gboolean use_this_line)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	guint i, len, j = 0;
 	gint prev_line;
 	gchar *linebuf;
@@ -845,7 +848,7 @@
 			 * "	{ return bless({}, shift); }" (Perl) */
 			if (linebuf[i] == '{' && i == (len - 1))
 			{
-				do_indent(indent, sizeof(indent), &j, doc->use_tabs);
+				do_indent(indent, sizeof(indent), &j, editor->use_tabs);
 				break;
 			}
 			else
@@ -858,7 +861,7 @@
 				 * e.g. for (...) { */
 				if (linebuf[k] == '{')
 				{
-					do_indent(indent, sizeof(indent), &j, doc->use_tabs);
+					do_indent(indent, sizeof(indent), &j, editor->use_tabs);
 				}
 				break;
 			}
@@ -971,7 +974,7 @@
 		{
 			gint line_start;
 
-			get_indent(doc, start_brace, TRUE);
+			get_indent(doc->editor, start_brace, TRUE);
 			text = g_strconcat(indent, "}", NULL);
 			line_start = sci_get_position_from_line(sci, line);
 			sci_set_anchor(sci, line_start);
@@ -1401,6 +1404,7 @@
 
 	if (sci_get_char_at(sci, pos - 2) == '}')
 	{
+		GeanyEditor *editor = doc->editor;
 		gchar *eol, *buf, *construct;
 		gchar env[50];
 		gint line = sci_get_line_from_position(sci, pos - 2);
@@ -1451,8 +1455,8 @@
 			}
 
 			/* get the indentation */
-			if (doc->auto_indent)
-				get_indent(doc, pos, TRUE);
+			if (editor->auto_indent)
+				get_indent(editor, pos, TRUE);
 			eol = g_strconcat(editor_get_eol_char(doc), indent, NULL);
 
 			construct = g_strdup_printf("%s\\end%s{%s}", eol, full_cmd, env);
@@ -1518,16 +1522,16 @@
 }
 
 
-static gboolean snippets_complete_constructs(GeanyDocument *doc, gint pos, const gchar *word)
+static gboolean snippets_complete_constructs(GeanyEditor *editor, gint pos, const gchar *word)
 {
 	gchar *str;
 	gchar *pattern;
 	gchar *lindent;
 	gchar *whitespace;
 	gint step, str_len;
-	gint ft_id = FILETYPE_ID(doc->file_type);
+	gint ft_id = FILETYPE_ID(editor->document->file_type);
 	GHashTable *specials;
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 
 	str = g_strdup(word);
 	g_strstrip(str);
@@ -1539,9 +1543,9 @@
 		return FALSE;
 	}
 
-	get_indent(doc, pos, TRUE);
-	lindent = g_strconcat(editor_get_eol_char(doc), indent, NULL);
-	whitespace = get_whitespace(editor_prefs.tab_width, doc->use_tabs);
+	get_indent(editor, pos, TRUE);
+	lindent = g_strconcat(editor_get_eol_char(editor->document), indent, NULL);
+	whitespace = get_whitespace(editor_prefs.tab_width, editor->use_tabs);
 
 	/* remove the typed word, it will be added again by the used auto completion
 	 * (not really necessary but this makes the auto completion more flexible,
@@ -1630,7 +1634,7 @@
 	if (! isspace(sci_get_char_at(sci, pos - 1))) /* pos points to the line end char so use pos -1 */
 	{
 		sci_start_undo_action(sci);	/* needed because we insert a space separately from construct */
-		result = snippets_complete_constructs(doc, pos, current_word);
+		result = snippets_complete_constructs(doc->editor, pos, current_word);
 		sci_end_undo_action(sci);
 		if (result)
 			SSM(sci, SCI_CANCEL, 0, 0);	/* cancel any autocompletion list, etc */
@@ -1655,9 +1659,9 @@
 }
 
 
-static void insert_closing_tag(GeanyDocument *doc, gint pos, gchar ch, const gchar *tag_name)
+static void insert_closing_tag(GeanyEditor *editor, gint pos, gchar ch, const gchar *tag_name)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gchar *to_insert = NULL;
 
 	if (ch == '/')
@@ -1678,7 +1682,7 @@
 	{
 		SSM(sci, SCI_SETSEL, pos, pos);
 		if (utils_str_equal(tag_name, "table"))
-			editor_auto_table(doc, pos);
+			auto_table(editor, pos);
 	}
 	sci_end_undo_action(sci);
 	g_free(to_insert);
@@ -1691,9 +1695,9 @@
  * @param ch The character we are dealing with, currently only works with the '>' character
  * @return True if handled, false otherwise
  */
-static gboolean handle_xml(GeanyDocument *doc, gchar ch)
+static gboolean handle_xml(GeanyEditor *editor, gchar ch)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
 	gint pos, min;
 	gchar *str_found, sel[512];
@@ -1707,7 +1711,7 @@
 	pos = sci_get_current_position(sci);
 
 	/* return if we are in PHP but not in a string or outside of <? ?> tags */
-	if (doc->file_type->id == GEANY_FILETYPES_PHP)
+	if (editor->document->file_type->id == GEANY_FILETYPES_PHP)
 	{
 		gint style = sci_get_style_at(sci, pos);
 		if (style != SCE_HPHP_SIMPLESTRING && style != SCE_HPHP_HSTRING &&
@@ -1750,7 +1754,7 @@
 	}
 	else if (NZV(str_found))
 	{
-		insert_closing_tag(doc, pos, ch, str_found);
+		insert_closing_tag(editor, pos, ch, str_found);
 		result = TRUE;
 	}
 	g_free(str_found);
@@ -1758,15 +1762,15 @@
 }
 
 
-static void editor_auto_table(GeanyDocument *doc, gint pos)
+static void auto_table(GeanyEditor *editor, gint pos)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gchar *table;
 	gint indent_pos;
 
 	if (SSM(sci, SCI_GETLEXER, 0, 0) != SCLEX_HTML) return;
 
-	get_indent(doc, pos, TRUE);
+	get_indent(editor, pos, TRUE);
 	indent_pos = sci_get_line_indent_position(sci, sci_get_line_from_position(sci, pos));
 	if ((pos - 7) != indent_pos) /* 7 == strlen("<table>") */
 	{
@@ -2154,7 +2158,7 @@
 			gint a = (first_line_was_comment) ? - co_len : co_len;
 
 			/* don't modify sel_start when the selection starts within indentation */
-			get_indent(doc, sel_start, TRUE);
+			get_indent(doc->editor, sel_start, TRUE);
 			if ((sel_start - first_line_start) <= (gint) strlen(indent))
 				a = 0;
 
@@ -2362,10 +2366,11 @@
 }
 
 
-static void auto_multiline(GeanyDocument *doc, gint pos)
+static void auto_multiline(GeanyEditor *editor, gint pos)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
-	gint style = SSM(sci, SCI_GETSTYLEAT, pos - 1 - editor_get_eol_char_len(doc), 0);
+	ScintillaObject *sci = editor->scintilla;
+	gint eol_len = editor_get_eol_char_len(editor->document);
+	gint style = SSM(sci, SCI_GETSTYLEAT, pos - 1 - eol_len, 0);
 	gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
 
 	if ((lexer == SCLEX_CPP && (style == SCE_C_COMMENT || style == SCE_C_COMMENTDOC)) ||
@@ -2642,22 +2647,25 @@
 	gint line;
 	gint pos;
 	gboolean have_multiline_comment = FALSE;
+	GeanyEditor *editor;
 
 	if (doc == NULL || doc->file_type == NULL || doc->file_type->comment_open == NULL)
 		return;
+	editor = doc->editor;
 
 	if (doc->file_type->comment_close != NULL && strlen(doc->file_type->comment_close) > 0)
 		have_multiline_comment = TRUE;
 
 	/* insert three lines one line above of the current position */
-	line = sci_get_line_from_position(doc->editor->scintilla, editor_info.click_pos);
-	pos = sci_get_position_from_line(doc->editor->scintilla, line);
+	line = sci_get_line_from_position(editor->scintilla, editor_info.click_pos);
+	pos = sci_get_position_from_line(editor->scintilla, line);
 
 	/* use the indent on the current line but only when comment indentation is used
 	 * and we don't have multi line comment characters */
-	if (doc->auto_indent && ! have_multiline_comment &&	doc->file_type->comment_use_indent)
+	if (editor->auto_indent &&
+		! have_multiline_comment &&	doc->file_type->comment_use_indent)
 	{
-		get_indent(doc, editor_info.click_pos, TRUE);
+		get_indent(editor, editor_info.click_pos, TRUE);
 		text = g_strdup_printf("%s\n%s\n%s\n", indent, indent, indent);
 		text_len = strlen(text);
 	}
@@ -2666,13 +2674,13 @@
 		text = g_strdup("\n\n\n");
 		text_len = 3;
 	}
-	sci_insert_text(doc->editor->scintilla, pos, text);
+	sci_insert_text(editor->scintilla, pos, text);
 	g_free(text);
 
 
 	/* select the inserted lines for commenting */
-	sci_set_selection_start(doc->editor->scintilla, pos);
-	sci_set_selection_end(doc->editor->scintilla, pos + text_len);
+	sci_set_selection_start(editor->scintilla, pos);
+	sci_set_selection_end(editor->scintilla, pos + text_len);
 
 	editor_do_comment(doc, -1, TRUE, FALSE);
 
@@ -2685,9 +2693,9 @@
 	else
 		pos += strlen(indent);
 
-	sci_set_current_position(doc->editor->scintilla, pos, TRUE);
+	sci_set_current_position(editor->scintilla, pos, TRUE);
 	/* reset the selection */
-	sci_set_anchor(doc->editor->scintilla, pos);
+	sci_set_anchor(editor->scintilla, pos);
 }
 
 
@@ -2717,11 +2725,11 @@
 }
 
 
-void editor_insert_alternative_whitespace(GeanyDocument *doc)
+void editor_insert_alternative_whitespace(GeanyEditor *editor)
 {
-	/* creates and inserts one tabulator sign or whitespace of the amount of the tab width */
-	gchar *text = get_whitespace(editor_prefs.tab_width, ! doc->use_tabs);
-	sci_add_text(doc->editor->scintilla, text);
+	/* creates and inserts one tab or whitespace of the amount of the tab width */
+	gchar *text = get_whitespace(editor_prefs.tab_width, ! editor->use_tabs);
+	sci_add_text(editor->scintilla, text);
 	g_free(text);
 }
 
@@ -2904,7 +2912,7 @@
 
 	/* get previous line and use it for get_indent to use that line
 	 * (otherwise it would fail on a line only containing "{" in advanced indentation mode) */
-	get_indent(doc,	sci_get_position_from_line(sci, first_line - 1), TRUE);
+	get_indent(doc->editor, sci_get_position_from_line(sci, first_line - 1), TRUE);
 
 	smart_line_indentation(doc, first_line, last_line);
 
@@ -3051,17 +3059,17 @@
 
 /* If the current line is outside the current view window, scroll the line
  * so it appears at percent_of_view. */
-void editor_display_current_line(GeanyDocument *doc, gfloat percent_of_view)
+void editor_display_current_line(GeanyEditor *editor, gfloat percent_of_view)
 {
-	ScintillaObject *sci = doc->editor->scintilla;
+	ScintillaObject *sci = editor->scintilla;
 	gint line = sci_get_current_line(sci);
 
 	/* unfold maybe folded results */
-	sci_ensure_line_is_visible(doc->editor->scintilla, line);
+	sci_ensure_line_is_visible(editor->scintilla, line);
 
 	/* scroll the line if it's off screen */
 	if (! editor_line_in_view(sci, line))
-		doc->scroll_percent = percent_of_view;
+		editor->scroll_percent = percent_of_view;
 }
 
 
@@ -3421,49 +3429,50 @@
 }
 
 
-void editor_set_line_wrapping(GeanyDocument *doc, gboolean wrap)
+void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap)
 {
-	g_return_if_fail(doc != NULL);
+	g_return_if_fail(editor != NULL);
 
-	doc->line_wrapping = wrap;
-	sci_set_lines_wrapped(doc->editor->scintilla, wrap);
+	editor->line_wrapping = wrap;
+	sci_set_lines_wrapped(editor->scintilla, wrap);
 }
 
 
-void editor_set_use_tabs(GeanyDocument *doc, gboolean use_tabs)
+void editor_set_use_tabs(GeanyEditor *editor, gboolean use_tabs)
 {
-	g_return_if_fail(doc != NULL);
+	g_return_if_fail(editor != NULL);
 
-	doc->use_tabs = use_tabs;
-	sci_set_use_tabs(doc->editor->scintilla, use_tabs);
+	editor->use_tabs = use_tabs;
+	sci_set_use_tabs(editor->scintilla, use_tabs);
 	/* remove indent spaces on backspace, if using spaces to indent */
-	SSM(doc->editor->scintilla, SCI_SETBACKSPACEUNINDENTS, ! use_tabs, 0);
+	SSM(editor->scintilla, SCI_SETBACKSPACEUNINDENTS, ! use_tabs, 0);
 }
 
 
 /* Move to position @a pos, switching to the document if necessary,
  * setting a marker if @a mark is set. */
-gboolean editor_goto_pos(GeanyDocument *doc, gint pos, gboolean mark)
+gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark)
 {
 	gint page_num;
 
-	if (doc == NULL || pos < 0)
+	g_return_val_if_fail(editor, FALSE);
+	if (pos < 0)
 		return FALSE;
 
 	if (mark)
 	{
-		gint line = sci_get_line_from_position(doc->editor->scintilla, pos);
+		gint line = sci_get_line_from_position(editor->scintilla, pos);
 
 		/* mark the tag with the yellow arrow */
-		sci_marker_delete_all(doc->editor->scintilla, 0);
-		sci_set_marker_at_line(doc->editor->scintilla, line, TRUE, 0);
+		sci_marker_delete_all(editor->scintilla, 0);
+		sci_set_marker_at_line(editor->scintilla, line, TRUE, 0);
 	}
 
-	sci_goto_pos(doc->editor->scintilla, pos, TRUE);
-	doc->scroll_percent = 0.25F;
+	sci_goto_pos(editor->scintilla, pos, TRUE);
+	editor->scroll_percent = 0.25F;
 
 	/* finally switch to the page */
-	page_num = gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), GTK_WIDGET(doc->editor->scintilla));
+	page_num = gtk_notebook_page_num(GTK_NOTEBOOK(main_widgets.notebook), GTK_WIDGET(editor->scintilla));
 	gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook), page_num);
 
 	return TRUE;

Modified: branches/editor-struct/src/editor.h
===================================================================
--- branches/editor-struct/src/editor.h	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/editor.h	2008-07-08 13:53:08 UTC (rev 2765)
@@ -155,7 +155,7 @@
 
 void editor_insert_multiline_comment(GeanyDocument *doc);
 
-void editor_insert_alternative_whitespace(GeanyDocument *doc);
+void editor_insert_alternative_whitespace(GeanyEditor *editor);
 
 void editor_smart_line_indentation(GeanyDocument *doc, gint pos);
 
@@ -165,7 +165,7 @@
 
 void editor_scroll_to_line(ScintillaObject *sci, gint line, gfloat percent_of_view);
 
-void editor_display_current_line(GeanyDocument *doc, gfloat percent_of_view);
+void editor_display_current_line(GeanyEditor *editor, gfloat percent_of_view);
 
 void editor_finalize(void);
 
@@ -216,10 +216,10 @@
 
 void editor_insert_color(GeanyDocument *doc, const gchar *colour);
 
-void editor_set_use_tabs(GeanyDocument *doc, gboolean use_tabs);
+void editor_set_use_tabs(GeanyEditor *editor, gboolean use_tabs);
 
-void editor_set_line_wrapping(GeanyDocument *doc, gboolean wrap);
+void editor_set_line_wrapping(GeanyEditor *editor, gboolean wrap);
 
-gboolean editor_goto_pos(GeanyDocument *doc, gint pos, gboolean mark);
+gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark);
 
 #endif

Modified: branches/editor-struct/src/keybindings.c
===================================================================
--- branches/editor-struct/src/keybindings.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/keybindings.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -1337,7 +1337,7 @@
 	if (new_pos != -1)
 	{	/* set the cursor at the brace */
 		sci_set_current_position(doc->editor->scintilla, new_pos, FALSE);
-		editor_display_current_line(doc, 0.5F);
+		editor_display_current_line(doc->editor, 0.5F);
 	}
 }
 
@@ -1409,7 +1409,7 @@
 			if (mline != -1)
 			{
 				sci_set_current_line(doc->editor->scintilla, mline);
-				editor_display_current_line(doc, 0.5F);
+				editor_display_current_line(doc->editor, 0.5F);
 			}
 			return;
 		}
@@ -1420,7 +1420,7 @@
 			if (mline != -1)
 			{
 				sci_set_current_line(doc->editor->scintilla, mline);
-				editor_display_current_line(doc, 0.5F);
+				editor_display_current_line(doc->editor, 0.5F);
 			}
 			return;
 		}
@@ -1689,7 +1689,7 @@
 	switch (key_id)
 	{
 		case GEANY_KEYS_INSERT_ALTWHITESPACE:
-			editor_insert_alternative_whitespace(doc);
+			editor_insert_alternative_whitespace(doc->editor);
 			break;
 		case GEANY_KEYS_INSERT_DATE:
 			gtk_menu_item_activate(GTK_MENU_ITEM(lookup_widget(main_widgets.window, "insert_date_custom1")));

Modified: branches/editor-struct/src/keyfile.c
===================================================================
--- branches/editor-struct/src/keyfile.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/keyfile.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -890,8 +890,8 @@
 
 		if (DOC_VALID(doc))
 		{
-			editor_set_use_tabs(doc, use_tabs);
-			editor_set_line_wrapping(doc, line_wrapping);
+			editor_set_use_tabs(doc->editor, use_tabs);
+			editor_set_line_wrapping(doc->editor, line_wrapping);
 			doc->auto_indent = auto_indent;
 			ret = TRUE;
 		}

Modified: branches/editor-struct/src/navqueue.c
===================================================================
--- branches/editor-struct/src/navqueue.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/navqueue.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -167,7 +167,7 @@
 		add_new_position(new_doc->file_name, pos);
 	}
 
-	return editor_goto_pos(new_doc, pos, TRUE);
+	return editor_goto_pos(new_doc->editor, pos, TRUE);
 }
 
 
@@ -178,7 +178,7 @@
 	if (doc == NULL)
 		return FALSE;
 
-	return editor_goto_pos(doc, pos, TRUE);
+	return editor_goto_pos(doc->editor, pos, TRUE);
 }
 
 

Modified: branches/editor-struct/src/prefs.c
===================================================================
--- branches/editor-struct/src/prefs.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/prefs.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -860,7 +860,7 @@
 				for (i = 0; i < documents_array->len; i++)
 				{
 					if (documents[i]->is_valid)
-						editor_set_use_tabs(documents[i], editor_prefs.use_tabs);
+						editor_set_use_tabs(documents[i]->editor, editor_prefs.use_tabs);
 				}
 			}
 		}

Modified: branches/editor-struct/src/search.c
===================================================================
--- branches/editor-struct/src/search.c	2008-07-08 11:26:09 UTC (rev 2764)
+++ branches/editor-struct/src/search.c	2008-07-08 13:53:08 UTC (rev 2765)
@@ -256,7 +256,7 @@
 		setup_find_next(s);	/* allow find next/prev */
 
 		if (document_find_text(doc, s, 0, search_backwards, FALSE, NULL) > -1)
-			editor_display_current_line(doc, 0.3F);
+			editor_display_current_line(doc->editor, 0.3F);
 		g_free(s);
 	}
 }


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