Tools_ClassList.st
changeset 9759 c4a477dec173
parent 9471 650363e0cb34
child 9761 e6c76a75fcf4
--- a/Tools_ClassList.st	Thu Feb 10 22:48:31 2011 +0100
+++ b/Tools_ClassList.st	Thu Feb 10 22:52:55 2011 +0100
@@ -1048,7 +1048,7 @@
 
 listOfClasses
     |classesAlready classesOrdered generator nameSpaceFilter packageFilter allName hidePrivate
-     privateClassesPerClass|
+     privateClassesPerClass nameFilterIncludesMatchCharacters|
 
     allName := self class nameListEntryForALL.
     (self showAllClassesInNameSpaceOrganisation value) ifFalse:[
@@ -1080,6 +1080,7 @@
     hidePrivate := self hidePrivateClasses value.
 
     privateClassesPerClass := IdentityDictionary new.
+    nameFilterIncludesMatchCharacters := nameFilter notNil and:[nameFilter includesMatchCharacters].
 
     generator do:[:cls | 
         |owner bucket|
@@ -1094,15 +1095,18 @@
                         (classFilterBlock isNil
                         or:[(classFilterBlock value:cls)]) ifTrue:[
                             classesAlready add:cls.
-
-                            (owner := cls owningClass) notNil ifTrue:[
-                                bucket := privateClassesPerClass 
-                                                at:owner 
-                                                ifAbsentPut:[SortedCollection new 
-                                                                sortBlock:[:a :b | (a name ? '?') < (b name ? '?')] ].
-                                bucket add:cls.
-                            ] ifFalse:[
-                                classesOrdered add:cls.
+                            (nameFilter isNil 
+                              or:[ (nameFilterIncludesMatchCharacters not and:[ cls name startsWith:nameFilter])
+                              or:[ (nameFilterIncludesMatchCharacters and:[nameFilter match:cls name]) ]]) ifTrue:[
+                                (owner := cls owningClass) notNil ifTrue:[
+                                    bucket := privateClassesPerClass 
+                                                    at:owner 
+                                                    ifAbsentPut:[SortedCollection new 
+                                                                    sortBlock:[:a :b | (a name ? '?') < (b name ? '?')] ].
+                                    bucket add:cls.
+                                ] ifFalse:[
+                                    classesOrdered add:cls.
+                                ]
                             ]
                         ]
                     ]
@@ -1159,7 +1163,7 @@
 "/    classes addFirst:AllEntry.
     ^ classesOrdered
 
-    "Modified: / 05-03-2007 / 16:58:12 / cg"
+    "Modified: / 10-02-2011 / 22:52:42 / cg"
 !
 
 makeDependent
@@ -1728,9 +1732,9 @@
 !ClassList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.49 2010-05-07 12:27:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.50 2011-02-10 21:52:55 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.49 2010-05-07 12:27:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.50 2011-02-10 21:52:55 cg Exp $'
 ! !