SF.net SVN: geany:[4738] branches/gnu-regex
ntrel at users.sourceforge.net
ntrel at xxxxx
Mon Mar 8 12:27:34 UTC 2010
Revision: 4738
http://geany.svn.sourceforge.net/geany/?rev=4738&view=rev
Author: ntrel
Date: 2010-03-08 12:27:31 +0000 (Mon, 08 Mar 2010)
Log Message:
-----------
Implement POSIX-regex Find All.
Modified Paths:
--------------
branches/gnu-regex/ChangeLog
branches/gnu-regex/src/search.c
Modified: branches/gnu-regex/ChangeLog
===================================================================
--- branches/gnu-regex/ChangeLog 2010-03-07 19:33:15 UTC (rev 4737)
+++ branches/gnu-regex/ChangeLog 2010-03-08 12:27:31 UTC (rev 4738)
@@ -1,3 +1,9 @@
+2010-03-08 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/search.c:
+ Implement POSIX-regex Find All.
+
+
2010-03-02 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/search.c, src/search.h, src/document.c:
Modified: branches/gnu-regex/src/search.c
===================================================================
--- branches/gnu-regex/src/search.c 2010-03-07 19:33:15 UTC (rev 4737)
+++ branches/gnu-regex/src/search.c 2010-03-08 12:27:31 UTC (rev 4738)
@@ -1758,6 +1758,30 @@
}
+static gint geany_find_text(ScintillaObject *sci, gint flags, struct Sci_TextToFind *ttf)
+{
+ regex_t regex;
+ gint pos;
+ gint ret;
+
+ if (~flags & SCFIND_REGEXP)
+ return sci_find_text(sci, flags, ttf);
+
+ if (!compile_regex(®ex, ttf->lpstrText, flags))
+ return -1;
+
+ pos = ttf->chrg.cpMin;
+ ret = find_regex(sci, pos, ®ex);
+ if (ret >= 0)
+ {
+ ttf->chrgText.cpMin = regex_matches[0].rm_so + pos;
+ ttf->chrgText.cpMax = regex_matches[0].rm_eo + pos;
+ }
+ regfree(®ex);
+ return ret;
+}
+
+
static gint find_document_usage(GeanyDocument *doc, const gchar *search_text, gint flags)
{
gchar *buffer, *short_file_name;
@@ -1776,7 +1800,7 @@
{
gint pos, line, start, find_len;
- pos = sci_find_text(doc->editor->sci, flags, &ttf);
+ pos = geany_find_text(doc->editor->sci, flags, &ttf);
if (pos == -1)
break; /* no more matches */
find_len = ttf.chrgText.cpMax - ttf.chrgText.cpMin;
@@ -1789,7 +1813,7 @@
{
buffer = sci_get_line(doc->editor->sci, line);
msgwin_msg_add(COLOR_BLACK, line + 1, doc,
- "%s:%d : %s", short_file_name, line + 1, g_strstrip(buffer));
+ "%s:%d: %s", short_file_name, line + 1, g_strstrip(buffer));
g_free(buffer);
prev_line = line;
}
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