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

ntrel at users.sourceforge.net ntrel at xxxxx
Fri Jul 11 14:49:19 UTC 2008


Revision: 2770
          http://geany.svn.sourceforge.net/geany/?rev=2770&view=rev
Author:   ntrel
Date:     2008-07-11 07:49:09 -0700 (Fri, 11 Jul 2008)

Log Message:
-----------
Change plugin API EditorFuncs to use GeanyEditor pointers.

Modified Paths:
--------------
    branches/editor-struct/ChangeLog
    branches/editor-struct/src/build.c
    branches/editor-struct/src/callbacks.c
    branches/editor-struct/src/editor.c
    branches/editor-struct/src/editor.h
    branches/editor-struct/src/msgwindow.c
    branches/editor-struct/src/plugindata.h

Modified: branches/editor-struct/ChangeLog
===================================================================
--- branches/editor-struct/ChangeLog	2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/ChangeLog	2008-07-11 14:49:09 UTC (rev 2770)
@@ -7,6 +7,9 @@
    instead.
  * src/document.c:
    Fix segfault in update_type_keywords().
+ * src/build.c, src/plugindata.h, src/msgwindow.c, src/callbacks.c,
+   src/editor.c, src/editor.h:
+   Change plugin API EditorFuncs to use GeanyEditor pointers.
 
 
 2008-07-08  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: branches/editor-struct/src/build.c
===================================================================
--- branches/editor-struct/src/build.c	2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/build.c	2008-07-11 14:49:09 UTC (rev 2770)
@@ -380,7 +380,8 @@
 	{
 		case GBO_COMPILE:
 		case GBO_MAKE_OBJECT:
-			editor_clear_indicators(doc);
+			g_return_if_fail(doc);
+			editor_clear_indicators(doc->editor);
 			break;
 
 		case GBO_BUILD:
@@ -392,7 +393,7 @@
 			for (i = 0; i < documents_array->len; i++)
 			{
 				if (documents[i]->is_valid)
-					editor_clear_indicators(documents[i]);
+					editor_clear_indicators(documents[i]->editor);
 			}
 			break;
 		}
@@ -858,7 +859,8 @@
 				{
 					GeanyDocument *doc = document_find_by_filename(filename);
 
-					editor_set_indicator_on_line(doc, line - 1);	/* will check valid idx */
+					if (doc)
+						editor_set_indicator_on_line(doc->editor, line - 1);
 					color = COLOR_RED;	/* error message parsed on the line */
 				}
 				g_free(filename);

Modified: branches/editor-struct/src/callbacks.c
===================================================================
--- branches/editor-struct/src/callbacks.c	2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/callbacks.c	2008-07-11 14:49:09 UTC (rev 2770)
@@ -1548,7 +1548,7 @@
 	GeanyDocument *doc = document_get_current();
 
 	if (doc != NULL)
-		editor_clear_indicators(doc);
+		editor_clear_indicators(doc->editor);
 }
 
 

Modified: branches/editor-struct/src/editor.c
===================================================================
--- branches/editor-struct/src/editor.c	2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/editor.c	2008-07-11 14:49:09 UTC (rev 2770)
@@ -3074,55 +3074,55 @@
 
 
 /**
- *  Deletes all currently set indicators in the @a document.
+ *  Deletes all currently set indicators in the @a editor window.
  *  Error indicators (red squiggly underlines) and usual line markers are removed.
  *
- *  @param doc The document to operate on.
+ *  @param editor The editor to operate on.
  **/
-void editor_clear_indicators(GeanyDocument *doc)
+void editor_clear_indicators(GeanyEditor *editor)
 {
 	glong last_pos;
 
-	g_return_if_fail(doc != NULL);
+	g_return_if_fail(editor != NULL);
 
-	last_pos = sci_get_length(doc->editor->scintilla);
+	last_pos = sci_get_length(editor->scintilla);
 	if (last_pos > 0)
 	{
-		sci_start_styling(doc->editor->scintilla, 0, INDIC2_MASK);
-		sci_set_styling(doc->editor->scintilla, last_pos, 0);
+		sci_start_styling(editor->scintilla, 0, INDIC2_MASK);
+		sci_set_styling(editor->scintilla, last_pos, 0);
 	}
-	sci_marker_delete_all(doc->editor->scintilla, 0);	/* remove the yellow error line marker */
+	sci_marker_delete_all(editor->scintilla, 0);	/* remove the yellow error line marker */
 }
 
 
 /**
- *  This is a convenience function for document_set_indicator(). It sets an error indicator
+ *  This is a convenience function for editor_set_indicator(). It sets an error indicator
  *  (red squiggly underline) on the whole given line.
  *  Whitespace at the start and the end of the line is not marked.
  *
- *  @param doc The document to operate on.
+ *  @param editor The editor to operate on.
  *  @param line The line number which should be marked.
  **/
-void editor_set_indicator_on_line(GeanyDocument *doc, gint line)
+void editor_set_indicator_on_line(GeanyEditor *editor, gint line)
 {
 	gint start, end;
 	guint i = 0, len;
 	gchar *linebuf;
 
-	if (doc == NULL)
+	if (editor == NULL)
 		return;
 
-	start = sci_get_position_from_line(doc->editor->scintilla, line);
-	end = sci_get_position_from_line(doc->editor->scintilla, line + 1);
+	start = sci_get_position_from_line(editor->scintilla, line);
+	end = sci_get_position_from_line(editor->scintilla, line + 1);
 
 	/* skip blank lines */
 	if ((start + 1) == end ||
-		sci_get_line_length(doc->editor->scintilla, line) == editor_get_eol_char_len(doc))
+		sci_get_line_length(editor->scintilla, line) == editor_get_eol_char_len(editor->document))
 		return;
 
 	/* don't set the indicator on whitespace */
 	len = end - start;
-	linebuf = sci_get_line(doc->editor->scintilla, line);
+	linebuf = sci_get_line(editor->scintilla, line);
 
 	while (isspace(linebuf[i])) i++;
 	while (len > 1 && len > i && isspace(linebuf[len-1]))
@@ -3132,7 +3132,7 @@
 	}
 	g_free(linebuf);
 
-	editor_set_indicator(doc, start + i, end);
+	editor_set_indicator(editor, start + i, end);
 }
 
 
@@ -3141,23 +3141,23 @@
  *  No error checking or whitespace removal is performed, this should be done by the calling
  *  function if necessary.
  *
- *  @param doc The document to operate on.
+ *  @param editor The editor to operate on.
  *  @param start The starting position for the marker.
  *  @param end The ending position for the marker.
  **/
-void editor_set_indicator(GeanyDocument *doc, gint start, gint end)
+void editor_set_indicator(GeanyEditor *editor, gint start, gint end)
 {
 	gint current_mask;
 
-	if (doc == NULL || start >= end)
+	if (editor == NULL || start >= end)
 		return;
 
-	current_mask = sci_get_style_at(doc->editor->scintilla, start);
+	current_mask = sci_get_style_at(editor->scintilla, start);
 	current_mask &= INDICS_MASK;
 	current_mask |= INDIC2_MASK;
 
-	sci_start_styling(doc->editor->scintilla, start, INDIC2_MASK);
-	sci_set_styling(doc->editor->scintilla, end - start, current_mask);
+	sci_start_styling(editor->scintilla, start, INDIC2_MASK);
+	sci_set_styling(editor->scintilla, end - start, current_mask);
 }
 
 

Modified: branches/editor-struct/src/editor.h
===================================================================
--- branches/editor-struct/src/editor.h	2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/editor.h	2008-07-11 14:49:09 UTC (rev 2770)
@@ -186,11 +186,11 @@
 
 void editor_select_paragraph(ScintillaObject *sci);
 
-void editor_set_indicator_on_line(GeanyDocument *doc, gint line);
+void editor_set_indicator_on_line(GeanyEditor *editor, gint line);
 
-void editor_set_indicator(GeanyDocument *doc, gint start, gint end);
+void editor_set_indicator(GeanyEditor *editor, gint start, gint end);
 
-void editor_clear_indicators(GeanyDocument *doc);
+void editor_clear_indicators(GeanyEditor *editor);
 
 void editor_set_font(GeanyDocument *doc, const gchar *font_name, gint size);
 

Modified: branches/editor-struct/src/msgwindow.c
===================================================================
--- branches/editor-struct/src/msgwindow.c	2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/msgwindow.c	2008-07-11 14:49:09 UTC (rev 2770)
@@ -603,7 +603,7 @@
 				if (doc != NULL)
 				{
 					if (! doc->changed)	/* if modified, line may be wrong */
-						editor_set_indicator_on_line(doc, line - 1);
+						editor_set_indicator_on_line(doc->editor, line - 1);
 
 					ret = navqueue_goto_line(old_doc, doc, line);
 				}

Modified: branches/editor-struct/src/plugindata.h
===================================================================
--- branches/editor-struct/src/plugindata.h	2008-07-11 14:25:26 UTC (rev 2769)
+++ branches/editor-struct/src/plugindata.h	2008-07-11 14:49:09 UTC (rev 2770)
@@ -36,12 +36,12 @@
 
 /* The API version should be incremented whenever any plugin data types below are
  * modified or appended to. */
-static const gint api_version = 76;
+static const gint api_version = 77;
 
 /* The ABI version should be incremented whenever existing fields in the plugin
  * data types below have to be changed or reordered. It should stay the same if fields
  * are only appended, as this doesn't affect existing fields. */
-static const gint abi_version = 41;
+static const gint abi_version = 42;
 
 /** Check the plugin can be loaded by Geany.
  * This performs runtime checks that try to ensure:
@@ -425,12 +425,16 @@
 NavQueueFuncs;
 
 
+struct GeanyEditor;
+
 /* See editor.h */
 typedef struct EditorFuncs
 {
-	void	(*set_indicator) (struct GeanyDocument *doc, gint start, gint end);
-	void	(*set_indicator_on_line) (struct GeanyDocument *doc, gint line);
-	void	(*clear_indicators) (struct GeanyDocument *doc);
+	void	(*set_indicator) (struct GeanyEditor *editor, gint start, gint end);
+	void	(*set_indicator_on_line) (struct GeanyEditor *editor, gint line);
+	void	(*clear_indicators) (struct GeanyEditor *editor);
+	/* Remember to convert any GeanyDocument or ScintillaObject pointers in any
+	 * appended functions to GeanyEditor pointers. */
 }
 EditorFuncs;
 


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