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