summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvincentdarley <vincentdarley@noemail.net>2004-06-09 22:39:08 (GMT)
committervincentdarley <vincentdarley@noemail.net>2004-06-09 22:39:08 (GMT)
commitb5237a35194f2c151e823c79905f8102b7d437e6 (patch)
treed0729dae13127ef0b0bc2c86feacecfa3e6a00a1
parent42d280db6bedc7414ab883c2fb6b8071f24d3d24 (diff)
downloadtk-b5237a35194f2c151e823c79905f8102b7d437e6.zip
tk-b5237a35194f2c151e823c79905f8102b7d437e6.tar.gz
tk-b5237a35194f2c151e823c79905f8102b7d437e6.tar.bz2
multiline text widget regexp search fix
FossilOrigin-Name: 9fcec4192f52b4c7d2890da0bf8a2a75dcf86f02
-rw-r--r--ChangeLog7
-rw-r--r--generic/tkText.c4
-rw-r--r--tests/text.test31
3 files changed, 39 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ad0f5d..6f2e213 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-06-09 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * generic/tkText.c:
+ * tests/text.test: fix to multi-line regexp search bugs in text
+ widget (reported against Alphatk editor, not on sf).
+ Addded 3 new tests.
+
2004-06-09 Donal K. Fellows <donal.k.fellows@man.ac.uk>
* generic/tkUndo.c (TkUndoSetDepth): Delete the unlinked element and
diff --git a/generic/tkText.c b/generic/tkText.c
index 01a09f9..fecbdb0 100644
--- a/generic/tkText.c
+++ b/generic/tkText.c
@@ -14,7 +14,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkText.c,v 1.50 2004/06/04 10:51:18 vincentdarley Exp $
+ * RCS: @(#) $Id: tkText.c,v 1.51 2004/06/09 22:39:08 vincentdarley Exp $
*/
#include "default.h"
@@ -4612,7 +4612,7 @@ SearchCore(interp, searchSpecPtr, patObj)
*/
if (!match
|| ((info.extendStart == info.matches[0].start)
- && (info.matches[0].end == lastOffset))) {
+ && (info.matches[0].end == (lastOffset - firstOffset)))) {
int extraLines = 1;
int prevFullLine;
/*
diff --git a/tests/text.test b/tests/text.test
index 2d0ee93..16a6083 100644
--- a/tests/text.test
+++ b/tests/text.test
@@ -6,7 +6,7 @@
# Copyright (c) 1998-1999 by Scriptics Corporation.
# All rights reserved.
#
-# RCS: @(#) $Id: text.test,v 1.29 2004/03/17 18:15:50 das Exp $
+# RCS: @(#) $Id: text.test,v 1.30 2004/06/09 22:39:08 vincentdarley Exp $
package require tcltest 2.1
eval tcltest::configure $argv
@@ -2563,6 +2563,35 @@ test text-20.172 {TextSearchCmd, regexp search multi-line} {knownBug} {
# Should match at 1.0 for a true greedy match
} {1.0}
+test text-20.173 {TextSearchCmd, regexp search multi-line} {
+ deleteWindows
+ pack [text .t2]
+ .t2 insert 1.0 "\naaaxxx\nyyy\n"
+ set res {}
+ lappend res [.t2 search -count c -regexp -- {x*\ny*} 2.0] $c
+ lappend res [.t2 search -count c -regexp -- {x*\ny*} 2.1] $c
+ set res
+} {2.3 7 2.3 7}
+
+test text-20.174 {TextSearchCmd, regexp search multi-line} {
+ deleteWindows
+ pack [text .t2]
+ .t2 insert 1.0 "\naaa\n\n\n\n\nxxx\n"
+ set res {}
+ lappend res [.t2 search -count c -regexp -- {\n+} 2.0] $c
+ lappend res [.t2 search -count c -regexp -- {\n+} 2.1] $c
+ set res
+} {2.3 5 2.3 5}
+
+test text-20.175 {TextSearchCmd, regexp search multi-line} {
+ deleteWindows
+ pack [text .t2]
+ .t2 insert 1.0 "\naaa\n\n\t \n\t\t\t \n\nxxx\n"
+ set res {}
+ lappend res [.t2 search -count c -regexp -- {(\n+(\t+ *)*)+} 2.0] $c
+ set res
+} {2.3 13}
+
deleteWindows
text .t2 -highlightthickness 0 -bd 0 -relief flat -padx 0 -width 100
pack .t2