unzip: fullFileName to: pathString
"Unzip the contents of the file specified by the full path name fullFileName to the location given by pathString."

so we would expect to pass a string in the second argument?

the unique sender of it in the system

unzip: fullFileName
"Unzip the contents of a gzipped file specified by its full file name to the current working directory"

    ^ self unzip: fullFileName to: FileSystem disk workingDirectory


but the implementation seems to indicate that fullFileName is should be a string as well as pathString

unzip: fullFileName to: pathString
"Unzip the contents of the file specified by the full path name fullFileName to the location given by pathString."

    | zipped buffer unzipped newName |
newName := fullFileName copyUpToLast: FileSystem disk extensionDelimiter.
    pathString asFileReference ensureCreateDirectory.
unzipped := FileStream newFileNamed: (pathString asFileReference / newName) fullName.
    unzipped ifNil: [self error: pathString, ' looks incorrect'].
    [ unzipped binary.
    zipped := self on: (FileStream readOnlyFileNamed: fullFileName).
    buffer := ByteArray new: 50000.
[zipped atEnd] whileFalse: [unzipped nextPutAll: (zipped nextInto: buffer)]]
        ensure: [
            zipped close.
            unzipped close].
    ^ newName

Am I correct to think that the comments are not really good enough?

Stef



Reply via email to