[FIX] [IRC]IRC_assureLogDirExistence
danil a. osipchuk
danil-home at tsnet.ru
Fri Oct 1 16:16:06 UTC 2004
>>/
/>/> Launching IRC in fresh squeak dir gives walkback - because there is no
/>/> irc-log directory structure yet.
/>/> This tiny fix forces IRCErrorLog class>> logStreamNamed: existsIn: to
/>/> create log directory if it doesn't exist.
/>/> <IRC_assureLogDirExistence.cs.gz>
/>>/
/
> I'm not seeing this error when I start up IRCe in a fresh squeak
> directory.
>
> Could you supply more info please. Which version of IRCe, what version
> of Squeak, how are you loading IRCe into the image, etc.
>
> Thanks
>
> Frank Caggiano
Hi, Frank
I used Squeak3.7-5989-full on unix VM on FreeBSD (World Menu -> Open -> IRC). When there is no irc folder in Squeak dir(just tested again by renaming it) I'm getting walkback (see attachment)
Danil
-------------- next part --------------
Unwind error during termination
1 October 2004 8:12:20 pm
VM: unix - a SmalltalkImage
Image: Squeak3.7 [latest update: #5989]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /usr/home/danil/Squeak
Trusted Dir /usr/home/danil/Squeak/secure
Untrusted Dir /usr/home/danil/Squeak/untrusted
UndefinedObject(Object)>>doesNotUnderstand: #close
Receiver: nil
Arguments and temporary variables:
aMessage: close
Receiver's instance variables:
nil
[] in IRCErrorLog class>>log:named: {[fStream close]}
Arguments and temporary variables:
aString: 'Tracing turned OFF'
logName: 'TRACE'
dir: UnixFileDirectory on '/usr/home/danil/Squeak/irc/errors'
fName: 'TRACE.txt'
fStream: nil
MethodContext(ContextPart)>>resume:
Receiver: BlockContext>>on:do:
Arguments and temporary variables:
value: Project
ctxt: BlockContext>>ensure:
unwindBlock: [] in IRCErrorLog class>>log:named: {[fStream close]}
Receiver's instance variables:
sender: nil
pc: nil
stackp: 3
method: a CompiledMethod (1017)
receiverMap: nil
receiver: [] in ContextPart class>>contextOn:do: {[chain := thisContext sender ...etc...
BlockContext>>ensure:
Receiver: [] in IRCErrorLog class>>log:named: {[fStream := self logStreamNamed: fName existsIn: dir....etc...
Arguments and temporary variables:
aBlock: nil
returnValue: nil
b: nil
Receiver's instance variables:
sender: nil
pc: nil
stackp: 0
nargs: 0
startpc: 50
home: IRCErrorLog class>>log:named:
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #close
[] in IRCErrorLog class>>log:named: {[fStream close]}
MethodContext(ContextPart)>>resume:
BlockContext>>ensure:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IRCErrorLog class>>log:named:
IRCErrorLog class>>log:forClass:
IRCConnection class>>tracePrivate:
IRCConnection class>>tracing:
IRCConnection>>initialize
IRCConnection class(Behavior)>>new
IRCConnection class>>openEnhancedIRC
TheWorldMenu>>doMenuItem:with:
[] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector numArgs) = 0 ifTrue: [target perform: selector] ...]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self. ActiveEvent := anEvent. result := focusHolder han...]}
[] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
BlockContext>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h processEvents. capturingGesture := capturingGest...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]}
[] in BlockContext>>newProcess {[self value. Processor terminateActive]}
More information about the Squeak-dev
mailing list
|