ListView.st
changeset 5715 8baebc416a38
parent 5691 bbe1d9a93740
child 5718 d6d361c41aae
--- a/ListView.st	Sat May 07 15:28:42 2016 +0200
+++ b/ListView.st	Sat May 07 15:48:27 2016 +0200
@@ -4861,7 +4861,7 @@
 searchForwardUsingSpec:searchSpec startingAtLine:startLine col:startCol ifFound:block1 ifAbsent:block2
     "search for a pattern, if found evaluate block1 with row/col as arguments, 
      if not found evaluate block2. 
-     If the block is a three-arg block, it gets the end-col (or nil, if not found)"
+     If the block is a three-arg block, it gets the end-col (or nil, if not known)"
 
     |lineString col pattern match regexMatch ignCase fullWord atBeginOfLineOnly
      wrapAtEndOfText patternSize matcher lnr   "{Class: SmallInteger}"  
@@ -4872,6 +4872,10 @@
     pattern := searchSpec pattern.
     match := searchSpec match.
     regexMatch := searchSpec regexMatch.
+    (match and:[regexMatch not]) ifTrue:[
+        pattern := pattern globPatternAsRegexPattern.
+        regexMatch := true.
+    ].    
     ignCase := searchSpec ignoreCase.
     fullWord := searchSpec fullWord.
     atBeginOfLineOnly := searchSpec atBeginOfLineOnly.
@@ -4931,7 +4935,7 @@
                                             ^ block1 value:lnr value:foundCol optionalArgument:endCol.
                                         ]]]]]].
             ] ifFalse:[    
-                (match and:[regexMatch or:[pattern includesUnescapedMatchCharacters]]) ifTrue:[
+                (match and:[pattern includesUnescapedMatchCharacters]) ifTrue:[
                     "perform a findMatchString (glob matching)"
                     p := pattern species new:0.
                     (pattern startsWith:$*) ifFalse:[p := p , '*'].
@@ -4955,6 +4959,9 @@
                 ] ifFalse:[
                     "perform a findString (no matching)"
                     p := pattern.
+                    (match and:[pattern includesMatchCharacters]) ifTrue:[
+                        p := pattern withoutMatchEscapes
+                    ].    
                     runner 
                         value:[:lnr :col :lineString |
                             foundCol := lineString
@@ -5263,8 +5270,8 @@
     ^ atBeginOfLineOnly ? false
 !
 
-atBeginOfLineOnly:something
-    atBeginOfLineOnly := something.
+atBeginOfLineOnly:aBoolean
+    atBeginOfLineOnly := aBoolean.
 !
 
 forward
@@ -5379,11 +5386,11 @@
 !
 
 regexMatch
-    ^ regexMatch
-!
-
-regexMatch:something
-    regexMatch := something.
+    ^ regexMatch ? false
+!
+
+regexMatch:aBoolean
+    regexMatch := aBoolean.
 !
 
 variable