[Pkg] Rio: File-Kernel-kph.21.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Sat Apr 11 22:25:53 UTC 2009


A new version of File-Kernel was added to project Rio:
http://www.squeaksource.com/Rio/File-Kernel-kph.21.mcz

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

Name: File-Kernel-kph.21
Author: kph
Time: 11 April 2009, 11:25:58 pm
UUID: edc86b5a-68d8-426a-ba73-2ca26928f0f6
Ancestors: File-Kernel-kph.18

instanciate File classes based upon extension by default

=============== Diff against File-Kernel-kph.18 ===============

Item was added:
+ ----- Method: FileKernel class>>classForPathWithExtension: (in category 'as yet unclassified') -----
+ classForPathWithExtension: aPath
+ 
+ 	^ self!

Item was changed:
  ----- Method: FileLocalExecutive>>startAt:recursively:select:excluding:into: (in category 'executive actions') -----
  startAt: aDir recursively: beRecursive select: selectBlock excluding: xList into: results 
  
  	"Return a collection of rio's selected by passing
  	the directoryEntry array to the selectBlock.
  	
  	The KernelRio implemetation of setStatFromEntryArray: 
  	does not populate these rios with stat data.
  	Rio's more verbose implementation does.
  
  	This can be called with startAt: aString, but if so beRecursive must be false.
  		
  	See primLookupEntryIn:index: for further details."
  
  	| index entryArray entry isDir fName |
  
  	index := 1.
  
  	[ (entryArray := self primLookupEntryIn: aDir asVmPathName index: index) notNil ] 
  		whileTrue: [
  			#badDirectoryPath = entryArray ifTrue: [
  				^ results "(InvalidDirectoryError pathName: aDir value) signal" ].
  
  				isDir := entryArray at: 4.
  				fName := entryArray at: 1.
+ 
- 				
  				(xList includes: fName) ifFalse: [ 
+ 					entry := ((isDir ifTrue: [ self class dirClass ] 
+ 									ifFalse: [ self class fileClass classForPathWithExtension: fName ]) 
- 					entry := ((isDir ifTrue: [ self class dirClass ] ifFalse: [ self class fileClass ]) 
  						executive: self value: aDir asString) 
  							pathJoin: fName;
  							setStatFromDir: aDir andEntryArray:entryArray;
  							yourself.
  					
  					(selectBlock value: entry) ifTrue: [ results add: entry ].	
  						
  					(beRecursive and: [ isDir ]) 
  						ifTrue: [ 
  							self 
  								startAt: entry
  								recursively: beRecursive 
  								select: selectBlock
  								excluding: xList
  								into: results   
  						].	
  				].
  			index := index + 1
  		].
  	
  	^ results!



More information about the Packages mailing list