SF.net SVN: geany:[4741] branches/gnu-regex

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Mar 8 13:45:14 UTC 2010


Revision: 4741
          http://geany.svn.sourceforge.net/geany/?rev=4741&view=rev
Author:   ntrel
Date:     2010-03-08 13:45:14 +0000 (Mon, 08 Mar 2010)

Log Message:
-----------
Implement POSIX-regex Replace All (could be more efficient but
seems OK for now).

Modified Paths:
--------------
    branches/gnu-regex/ChangeLog
    branches/gnu-regex/src/search.c

Modified: branches/gnu-regex/ChangeLog
===================================================================
--- branches/gnu-regex/ChangeLog	2010-03-08 13:28:04 UTC (rev 4740)
+++ branches/gnu-regex/ChangeLog	2010-03-08 13:45:14 UTC (rev 4741)
@@ -6,6 +6,9 @@
    Refactor document_replace_range() with search_replace_range().
  * src/search.c, src/search.h, src/document.c:
    Move search_replace_range() to search.c.
+ * src/search.c:
+   Implement POSIX-regex Replace All (could be more efficient but
+   seems OK for now).
 
 
 2010-03-02  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: branches/gnu-regex/src/search.c
===================================================================
--- branches/gnu-regex/src/search.c	2010-03-08 13:28:04 UTC (rev 4740)
+++ branches/gnu-regex/src/search.c	2010-03-08 13:45:14 UTC (rev 4741)
@@ -1878,6 +1878,8 @@
 
 /* ttf is updated to include the last match positions.
  * Note: Normally you would call sci_start/end_undo_action() around this call. */
+/* Warning: Scintilla recommends caching replacements to do all at once to avoid
+ * performance issues with SCI_GETCHARACTERPOINTER. */
 guint search_replace_range(ScintillaObject *sci, struct Sci_TextToFind *ttf,
 		gint flags, const gchar *replace_text)
 {
@@ -1895,7 +1897,7 @@
 		gint search_pos;
 		gint find_len = 0, replace_len = 0;
 
-		search_pos = sci_find_text(sci, flags, ttf);
+		search_pos = geany_find_text(sci, flags, ttf);
 		find_len = ttf->chrgText.cpMax - ttf->chrgText.cpMin;
 		if (search_pos == -1)
 			break;	/* no more matches */
@@ -1918,7 +1920,7 @@
 				if (chNext == '\r' || chNext == '\n')
 					movepastEOL = 1;
 			}
-			replace_len = sci_replace_target(sci, replace_text,
+			replace_len = search_replace_target(sci, replace_text,
 				flags & SCFIND_REGEXP);
 			count++;
 			if (search_pos == end)


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