class: SystemBrowser
changed: #searchBlockForString:ignoreCase:match:
faster string search (case ignoring)
--- 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 $'
! !