[squeak-dev] The Trunk: Files-ul.168.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Mar 14 01:00:51 UTC 2017

Levente Uzonyi uploaded a new version of Files to project The Trunk:

==================== Summary ====================

Name: Files-ul.168
Author: ul
Time: 14 March 2017, 1:27:42.470961 am
UUID: ce489769-10b9-48e5-bc6f-86ee3a5a5eb4
Ancestors: Files-ul.167

- reverted some of the recent changes, because they may not work on other platforms

=============== Diff against Files-ul.167 ===============

Item was changed:
  ----- Method: DirectoryEntryDirectory>>asFileDirectory (in category 'convert') -----
  	"Answer a FileDirectory representing the same directory I represent."
+ 	^directory on: (directory fullNameFor: name)!
- 	^directory on: name!

Item was changed:
  ----- Method: FileDirectory>>directoryEntryForName: (in category 'private') -----
  directoryEntryForName: aFileName
  	"Return a single DirectoryEntry for the given (non-path) entry name,
  	 or nil if the entry could not be found.
  	 Raises InvalidDirectoryError if this directory's path does not identify a directory."
  	| entryArray sysPath sysName |
  	sysPath := pathName asVmPathName.
  	sysName := aFileName asVmPathName.
  	"New linear-time primitive."
  	entryArray := self primLookupEntryIn: sysPath name: sysName.
  	entryArray == #primFailed ifFalse:[
  		^ entryArray ifNotNil: [(DirectoryEntry fromArray: entryArray directory: self) convertFromSystemName]
+ 	"(InvalidDirectoryError pathName: pathName) signal.
+ 	^nil"
- 	(InvalidDirectoryError pathName: pathName) signal.
- 	^nil
  	"If the new primitive fails, use the old slow method. 
  	 (This fallback can be changed to signal InvalidDirectoryError once
  	  VM's with FilePlugin #primitiveDirectoryEntry have been distributed everywhere;
+ 	  the new primitive was introduced 6/13/2007."
- 	  the new primitive was introduced 6/13/2007.
  	self isCaseSensitive 
  		ifTrue: [ self entriesDo: [ :entry | entry name = aFileName ifTrue: [ ^entry ] ] ] 
  		ifFalse: [ self entriesDo: [ :entry | (entry name sameAs: aFileName) ifTrue: [ ^entry ] ] ].
+ 	^nil!
- 	^nil"!

Item was changed:
  ----- Method: FileDirectory>>fileOrDirectoryExists: (in category 'file operations') -----
  fileOrDirectoryExists: filenameOrPath
  	"Answer true if either a file or a directory file of the given name exists. The given name may be either a full path name or a local name within this directory."
  	"FileDirectory default fileOrDirectoryExists: Smalltalk sourcesName"
  	| fName dir |
  	DirectoryClass splitName: filenameOrPath to:
  		[:filePath :name |
  			fName := name.
  			filePath isEmpty
  				ifTrue: [dir := self]
  				ifFalse: [dir := FileDirectory on: filePath]].
+ 	^ (dir includesKey: fName) or: [ fName = '' and:[ dir entries size > 1]]!
- 	^(dir includesKey: fName) or: [ fName = '' and: [ dir hasEntries ] ]!

More information about the Squeak-dev mailing list