[FIX] RelativeZipExtractFix-nk
Doug Way
dway at riskmetrics.com
Sat Dec 14 03:49:23 UTC 2002
On Friday, December 13, 2002, at 01:10 PM, ned at bike-nomad.com wrote:
> from preamble:
>
> "Change Set: RelativeZipExtractFix-nk
> Date: 13 December 2002
> Author: Ned Konz
> Version: 3.4b
>
> This ensures that zip extraction relative to a given directory works
> properly, and should eliminate the infinite recursion noted on the Mac.
>
> It lacks AcornFileDirectory>>relativeNameFor: ; this should be added if
> necessary before adding to the update stream.
I did some more testing of this changeset & ArchivesFixes2. Things
still don't seem to work on Windows, but Mac OS X is happy. Here are my
results...
Testing in vanilla 3.4beta-5147 (internal updates), without SqueakMap
loaded, on Windows 2000:
- #binary error below happens when using the FileList "open zip" once to
open Connectors1.6.sar, then closing the archive viewer, then doing
"open zip" again on the same file. (loading ArchiveFixes2-nk and
RelativeZipExtractFix-nk doesn't make a difference) See first stack
appended below. (This problem does not happen on Mac OS X, only Win2K.)
- Message Not Understood "#extractInDirectory:" when trying to Extract
All of Connectors1.6.sar (into the default Squeak directory), without
loading either of the fixes first. Same on Mac OS X.
- Error "Fully qualified path expected" when trying to Extract All of
Connectors1.6.sar, after installing ArchiveFixes2-nk. (loading
RelativeZipExtractFix-nk didn't make a difference) See second stack
appended below. (Win2K only.)
- On Mac OS X, with ArchiveFixes2-nk and RelativeZipExtractFix-nk filed
in, extracting the Connectors SAR is successful.
-------------------- #binary error:
13 December 2002 6:08:42 pm
VM: Win32 - Squeak3.3alpha of 24 January 2002 [latest update: #4967]
Image: Squeak3.4beta [latest update: #5147]
UndefinedObject(Object)>>doesNotUnderstand:
Receiver: nil
Arguments and temporary variables:
aMessage: a Message with selector: #binary and arguments: #()
Receiver's instance variables:
nil
ZipArchive>>readFrom:
Receiver: a ZipArchive
Arguments and temporary variables:
aStreamOrFileName: 'C:\Squeak 3.2\Connectors1.6.sar'
stream: nil
name: 'C:\Squeak 3.2\Connectors1.6.sar'
eocdPosition: nil
Receiver's instance variables:
members: an OrderedCollection()
centralDirectorySize: nil
centralDirectoryOffsetWRTStartingDiskNumber: nil
zipFileComment: ''
writeCentralDirectoryOffset: 0
writeEOCDOffset: 0
ArchiveViewer>>fileName:
Receiver: an ArchiveViewer(1371)
Arguments and temporary variables:
aString: 'C:\Squeak 3.2\Connectors1.6.sar'
Receiver's instance variables:
bounds: 0 at 0 corner: 546 at 230
owner: nil
submorphs: #(an AlignmentMorph(1249) an
AlignmentMorph(2969) an AlignmentMorph(...etc...
fullBounds: nil
color: Color white
extension: a MorphExtension (3879) [eventHandler = an
EventHandler; mouseEnterS...etc...
borderWidth: 2
borderColor: #raised
model: nil
slotName: nil
open: false
labelString: 'Ned''s Zip Viewer'
stripes: #(a RectangleMorph(3636) a RectangleMorph(1965))
label: a StringMorph(1055)'Ned''s Zip Viewer'
closeBox: an IconicButton(2427)
collapseBox: an IconicButton(2859)
activeOnlyOnTop: true
paneMorphs: #(a PluggableTextMorph(2494) a
PluggableListMorph(259) an Alignment...etc...
paneRects: nil
collapsedFrame: nil
fullFrame: 0 at 0 corner: 546 at 230
isCollapsed: false
menuBox: an IconicButton(2322)
mustNotClose: false
labelWidgetAllowance: 75
updatablePanes: #()
allowReframeHandles: true
labelArea: an AlignmentMorph(1249)
expandBox: an IconicButton(708)
archive: nil
fileName: nil
memberIndex: 0
viewAllContents: false
ArchiveViewer class>>openOn:
Receiver: ArchiveViewer
Arguments and temporary variables:
aFileName: 'C:\Squeak 3.2\Connectors1.6.sar'
newMe: an ArchiveViewer(1371)
Receiver's instance variables:
superclass: SystemWindow
methodDict: a MethodDictionary(#addDirectory->a
CompiledMethod (1316) #addMembe...etc...
format: 196
instanceVariables: #('archive' 'fileName' 'memberIndex'
'viewAllContents')
organization: ('member operations' addDirectory addMember
addMemberFromClipboar...etc...
subclasses: nil
name: #ArchiveViewer
classPool: nil
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: nil
prototype: nil
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand:
ZipArchive>>readFrom:
ArchiveViewer>>fileName:
ArchiveViewer class>>openOn:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SimpleServiceEntry>>performServiceFor:
PluggableButtonMorph>>performAction
[] in PluggableButtonMorph>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableButtonMorph(Morph)>>handleEvent:
PluggableButtonMorph(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockContext>>newProcess
-------------------- "Fully qualified path expected" error:
13 December 2002 7:47:45 pm
VM: Win32 - Squeak3.3alpha of 24 January 2002 [latest update: #4967]
Image: Squeak3.4beta [latest update: #5147]
DosFileDirectory(Object)>>error:
Receiver: DosFileDirectory on nil
Arguments and temporary variables:
aString: 'Fully qualified path expected'
Receiver's instance variables:
pathName: nil
DosFileDirectory>>setPathName:
Receiver: DosFileDirectory on nil
Arguments and temporary variables:
pathString: 'icons'
Receiver's instance variables:
pathName: nil
FileDirectory class>>on:
Receiver: FileDirectory
Arguments and temporary variables:
pathString: 'icons'
pathName: 'icons'
Receiver's instance variables:
superclass: Object
methodDict: a MethodDictionary(#acceptsUploads->a
CompiledMethod (2796) #assure...etc...
format: 132
instanceVariables: #('pathName')
organization: ('path access' fullPathFor: on: pathName
pathNameDelimiter pathPa...etc...
subclasses: #(UnixFileDirectory AcornFileDirectory
MacFileDirectory DosFileDire...etc...
name: #FileDirectory
classPool: a Dictionary(#DefaultDirectory->DosFileDirectory
on 'C:\Squeak 3.2' ...etc...
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: nil
[] in DosFileDirectory(FileDirectory)>>fileExists:
Arguments and temporary variables:
filenameOrPath: 'icons\broom.gif'
fName: 'broom.gif'
dir: nil
filePath: 'icons'
name: 'broom.gif'
--- The full stack ---
DosFileDirectory(Object)>>error:
DosFileDirectory>>setPathName:
FileDirectory class>>on:
[] in DosFileDirectory(FileDirectory)>>fileExists:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileDirectory class>>splitName:to:
DosFileDirectory(FileDirectory)>>fileExists:
[] in ArchiveViewer>>extractAllPossibleInDirectory:
OrderedCollection>>do:
ArchiveViewer>>extractAllPossibleInDirectory:
ArchiveViewer>>extractAll
PluggableButtonMorph>>performAction
[] in PluggableButtonMorph>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableButtonMorph(Morph)>>handleEvent:
PluggableButtonMorph(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>DoIt
[] in BlockContext>>newProcess
More information about the Squeak-dev
mailing list
|