Smalltalk.st
branchjv
changeset 17996 0fd959f71d7c
parent 17993 956342c369a2
child 17997 5c30feac5948
--- a/Smalltalk.st	Tue Dec 04 12:22:42 2012 +0000
+++ b/Smalltalk.st	Tue Dec 04 17:54:57 2012 +0000
@@ -2062,7 +2062,6 @@
     ]
 ! !
 
-
 !Smalltalk class methodsFor:'message control'!
 
 silentLoading
@@ -6203,7 +6202,7 @@
     "return a actual or expected (or most wanted) filename for aClassOrClassName
      - only the base name (without directory part) and without suffix."
 
-    |cls nonMetaclass nm nameWithPrefix nameWithoutPrefix compatQuery |
+    |cls nonMetaclass nm nameWithPrefix nameWithoutPrefix compatQuery compatPkg |
 
 "/  This was added as an extension of libsvn - should be no longer needed
 "/  JV@2012-09-25: but it actually is. The problem is that class filename
@@ -6217,60 +6216,65 @@
     compatQuery := Smalltalk classNamed: 'SVN::CompatModeQuery'.
     (compatQuery notNil
       and:[compatQuery isLoaded
-	and:[compatQuery query not]]) ifTrue:[
-	    nm := aClassOrClassName isBehavior
-		ifTrue:[aClassOrClassName name]
-		ifFalse:[aClassOrClassName].
-	    nm := nm copyReplaceAll:$: with:$_.
-	    ^nm
+        and:[compatQuery query not]]) ifTrue:[
+            nm := aClassOrClassName isBehavior
+                ifTrue:[aClassOrClassName name]
+                ifFalse:[aClassOrClassName].
+            nm := nm copyReplaceAll:$: with:$_.
+            ^nm
     ].
 
 "/  Same for another query for new libscm...
     compatQuery := Smalltalk classNamed: 'SCMCompatModeQuery'.
     (compatQuery notNil
       and:[compatQuery isLoaded
-	and:[compatQuery query not]]) ifTrue:[
-	    nm := aClassOrClassName isBehavior
-		ifTrue:[aClassOrClassName name]
-		ifFalse:[aClassOrClassName].
-	    nm := nm copyReplaceAll:$: with:$_.
-	    ^nm
+        and:[(compatPkg := compatQuery query) notNil]]) ifTrue:[
+            | cls |
+
+            nm := aClassOrClassName isBehavior
+                ifTrue:[aClassOrClassName name]
+                ifFalse:[aClassOrClassName].
+            cls := Smalltalk at: nm asSymbol.
+            (cls notNil and:[cls package == compatPkg]) ifTrue:[
+                nm := nm copyReplaceAll:$: with:$_.
+                ^nm
+            ].
     ].
 
     aClassOrClassName isBehavior ifTrue:[
-	cls := aClassOrClassName.
+        cls := aClassOrClassName.
     ] ifFalse:[
-	cls := Smalltalk classNamed:aClassOrClassName.
-	cls isNil ifTrue:[
-	    nameWithPrefix := aClassOrClassName.
-	    nameWithoutPrefix := (aClassOrClassName copyFrom:(aClassOrClassName lastIndexOf:$:)+1).
-	].
+        cls := Smalltalk classNamed:aClassOrClassName.
+        cls isNil ifTrue:[
+            nameWithPrefix := aClassOrClassName.
+            nameWithoutPrefix := (aClassOrClassName copyFrom:(aClassOrClassName lastIndexOf:$:)+1).
+        ].
     ].
 
     cls notNil ifTrue:[
-	nonMetaclass := cls theNonMetaclass.
-	nm := nonMetaclass getClassFilename.
-	nm isNil ifTrue:[
-	    cls revisionInfo notNil ifTrue:[
-		nm := cls revisionInfo fileName.
-	    ].
-	].
-	nm notNil ifTrue:[
-	    ^ nm asFilename withoutSuffix baseName
-	].
-	nameWithPrefix := nonMetaclass name.
-	nameWithoutPrefix := nonMetaclass nameWithoutPrefix.
+        nonMetaclass := cls theNonMetaclass.
+        nm := nonMetaclass getClassFilename.
+        nm isNil ifTrue:[
+            cls revisionInfo notNil ifTrue:[
+                nm := cls revisionInfo fileName.
+            ].
+        ].
+        nm notNil ifTrue:[
+            ^ nm asFilename withoutSuffix baseName
+        ].
+        nameWithPrefix := nonMetaclass name.
+        nameWithoutPrefix := nonMetaclass nameWithoutPrefix.
     ].
 
     CachedAbbreviations notNil ifTrue:[
-	nameWithPrefix := nameWithPrefix asSymbol.
-	(CachedAbbreviations includesKey:nameWithPrefix) ifTrue:[
-	    ^ (CachedAbbreviations at:nameWithPrefix) asFilename baseName
-	].
-	nameWithoutPrefix := nameWithoutPrefix asSymbol.
-	(CachedAbbreviations includesKey:nameWithoutPrefix) ifTrue:[
-	    ^ (CachedAbbreviations at:nameWithoutPrefix) asFilename baseName
-	].
+        nameWithPrefix := nameWithPrefix asSymbol.
+        (CachedAbbreviations includesKey:nameWithPrefix) ifTrue:[
+            ^ (CachedAbbreviations at:nameWithPrefix) asFilename baseName
+        ].
+        nameWithoutPrefix := nameWithoutPrefix asSymbol.
+        (CachedAbbreviations includesKey:nameWithoutPrefix) ifTrue:[
+            ^ (CachedAbbreviations at:nameWithoutPrefix) asFilename baseName
+        ].
     ].
 
     ^ nameWithPrefix copyReplaceAll:$: with:$_
@@ -6290,7 +6294,7 @@
     "
 
     "Modified: / 06-10-2006 / 16:16:01 / cg"
-    "Modified: / 19-11-2012 / 22:58:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-12-2012 / 17:44:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 filenameAbbreviations
@@ -7846,13 +7850,13 @@
 !Smalltalk class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1000 2012/11/23 17:44:05 stefan Exp $'
+    ^ '$Id: Smalltalk.st 10879 2012-12-04 17:54:57Z vranyj1 $'
 !
 
 version_CVS
-    ^ 'Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1000 2012/11/23 17:44:05 stefan Exp '
+    ^ '§Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1000 2012/11/23 17:44:05 stefan Exp §'
 !
 
 version_SVN
-    ^ '$Id:: Smalltalk.st 10876 2012-11-30 17:19:23Z vranyj1                                                                        $'
+    ^ '$Id:: Smalltalk.st 10879 2012-12-04 17:54:57Z vranyj1                                                                        $'
 ! !