Class File Object name number mode Methods File open: m self mode: m. self open ] Methods File readUntil: conditionBlock doing: actionBlock | line | [ line <- self getString. line notNil] whileTrue: [ (conditionBlock value: line) ifTrue: [ ^ line ]. actionBlock value: line ]. ^ nil ] Methods File asString | text line | text <- ''. [ (line <- self getString) notNil ] whileTrue: [ text <- text , line ]. ^ text ] Methods File print: aString (number notNil) ifTrue: [<129 number aString>] ifFalse: [smalltalk error: 'file not open'] ] Methods File saveImage " subtle problem - when we read in image don't want image file to be open for writing, so we remove it's number from files array temporarily " (number notNil) ifTrue: [ files at: number put: nil. <127 number>. files at: number put: self] ifFalse: [smalltalk error: 'saveImage: file not open'] ] Methods File mode: m mode <- m ] Methods File close " close file, take entry out of global variable " number isNil ifTrue: [ ^ nil ]. files at: number put: nil. <121 number>. number <- nil. ] Methods File fileIn " read code into the system " (number notNil) ifTrue: [<123 number>] ] Methods File name ^ name ] Methods File fileIn: name self name: name. self open: 'r'. self fileIn. self close. ] Methods File printNoReturn: aString (number notNil) ifTrue: [<128 number aString>] ifFalse: [smalltalk error: 'file not open'] ] Methods File scratchFile name <- 'junk.tmp' ] Methods File getNumber " get a file number - called only by open" (1 to: 15) do: [:i | (files at: i) isNil ifTrue: [ files at: i put: self. number <- i. ^ nil]] ] Methods File open number notNil ifTrue: [ self close ]. self getNumber. <120 number name mode> isNil ifTrue: [ smalltalk error: 'open failed: ', name. ^ false]. ^ true ] Methods File delete ('erase ', name) unixCommand ] Methods File name: string name <- string ] Methods File getString ^ (number notNil) ifTrue: [<125 number>] ]