[Vm-dev] [commit][2899] Fix things like '../platforms' for the VMMaker image in Squeak 4.5.

commits at squeakvm.org commits at squeakvm.org
Mon Apr 21 22:13:04 UTC 2014


Revision: 2899
Author:   eliot
Date:     2014-04-21 15:13:04 -0700 (Mon, 21 Apr 2014)
Log Message:
-----------
Fix things like '../platforms' for the VMMaker image in Squeak 4.5.

Modified Paths:
--------------
    branches/Cog/image/BuildSqueak45Image.st

Added Paths:
-----------
    branches/Cog/image/FileDirectory-on-methods.st

Modified: branches/Cog/image/BuildSqueak45Image.st
===================================================================
--- branches/Cog/image/BuildSqueak45Image.st	2014-04-21 19:44:55 UTC (rev 2898)
+++ branches/Cog/image/BuildSqueak45Image.st	2014-04-21 22:13:04 UTC (rev 2899)
@@ -23,7 +23,9 @@
 
 #(	'FT2Constants.st'
 	'Object-performwithwithwithwithwith.st'
-	'CompiledMethod-usesAlternateBytecodeSet.st' ) do:
+	'CompiledMethod-usesAlternateBytecodeSet.st'
+	'FileDirectory-on-methods.st'
+	) do:
 	[:fileName| (FileDirectory default fileNamed: fileName) fileIn].
 
 load do:
Added: branches/Cog/image/FileDirectory-on-methods.st
===================================================================
--- branches/Cog/image/FileDirectory-on-methods.st	                        (rev 0)
+++ branches/Cog/image/FileDirectory-on-methods.st	2014-04-21 22:13:04 UTC (rev 2899)
@@ -0,0 +1,28 @@
+'From Squeak4.5 of 18 April 2014 [latest update: #13719] on 21 April 2014 at 3:07:52 pm'!
+
+!FileDirectory class methodsFor: 'instance creation' stamp: 'eem 4/21/2014 14:53'!
+on: pathString
+	"Return a new file directory for the given path, of the appropriate FileDirectory subclass for the current OS platform."
+
+	| pathName |
+	DirectoryClass ifNil: [self setDefaultDirectoryClass].
+	"If path ends with a delimiter (: or /) then remove it"
+	pathName := pathString.
+	(pathName at: pathName size ifAbsent: nil) = self pathNameDelimiter ifTrue:
+		[pathName := pathName allButLast].
+	DirectoryClass parentDirectoryNickname ifNotNil:
+		[:parentName|
+		(pathName beginsWith: parentName) ifTrue:
+			[pathName = parentName ifTrue:
+				[^self default containingDirectory].
+			 (pathName at: parentName size + 1 ifAbsent: nil) = self pathNameDelimiter ifTrue:
+				[^self default containingDirectory on: (pathName allButFirst: parentName size + 1)]]].
+	^DirectoryClass new setPathName: pathName! !
+
+!FileDirectory methodsFor: 'path access' stamp: 'eem 4/21/2014 14:57'!
+on: path
+	"Return another instance"
+
+	^ self class on: ((path at: 1 ifAbsent: nil) = self pathNameDelimiter
+						ifTrue: [path]
+						ifFalse: [pathName asString, (String with: self pathNameDelimiter), path])! !


More information about the Vm-dev mailing list