class: SystemBrowser
authorClaus Gittinger <cg@exept.de>
Mon, 12 May 2014 19:58:40 +0200
changeset 14355 bb39d11673d7
parent 14354 2e253818719a
child 14356 8cd9e4ceedab
class: SystemBrowser changed: #searchBlockForString:ignoreCase:match: faster string search (case ignoring)
SystemBrowser.st
--- a/SystemBrowser.st	Mon May 12 16:38:20 2014 +0200
+++ b/SystemBrowser.st	Mon May 12 19:58:40 2014 +0200
@@ -5157,7 +5157,7 @@
 searchBlockForString:aString ignoreCase:ignoreCase match:doMatch
     "return a block to search for a string."
 
-    |searchBlock s|
+    |searchBlock s lcString|
 
     (doMatch and:[ aString includesMatchCharacters ]) ifTrue:[
         s := '*' , aString , '*'.
@@ -5173,18 +5173,34 @@
                             ]
                        ]
     ] ifFalse:[
-        searchBlock := 
-            [:c :m :sel | 
-                |src|
-
-                src := m source.
-                src isNil ifTrue:[
-                    ('Browser [info]: no source for ' , m printString) infoPrintCR.
-                    false
-                ] ifFalse:[
-                    (src findString:aString caseSensitive:ignoreCase not) ~~ 0
-                ]
-           ]
+        ignoreCase ifTrue:[
+            lcString := aString asLowercase.
+            searchBlock := 
+                [:c :m :sel | 
+                    |src|
+
+                    src := m source.
+                    src isNil ifTrue:[
+                        ('Browser [info]: no source for ' , m printString) infoPrintCR.
+                        false
+                    ] ifFalse:[
+                        (src asLowercase findString:lcString caseSensitive:true) ~~ 0
+                    ]
+               ]
+        ] ifFalse:[
+            searchBlock := 
+                [:c :m :sel | 
+                    |src|
+
+                    src := m source.
+                    src isNil ifTrue:[
+                        ('Browser [info]: no source for ' , m printString) infoPrintCR.
+                        false
+                    ] ifFalse:[
+                        (src findString:aString caseSensitive:ignoreCase not) ~~ 0
+                    ]
+               ]
+        ].
     ].
     ^ searchBlock.
 
@@ -6588,15 +6604,15 @@
 !SystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.341 2014-03-05 10:38:17 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.342 2014-05-12 17:58:40 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.341 2014-03-05 10:38:17 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.342 2014-05-12 17:58:40 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: SystemBrowser.st,v 1.341 2014-03-05 10:38:17 vrany Exp $'
+    ^ '$Id: SystemBrowser.st,v 1.342 2014-05-12 17:58:40 cg Exp $'
 ! !