4 ^readStdInCharAsSmallInt [
5 System eventWaitFor: 1001.
14 "read a line from input"
15 "TODO: use stringbuffer?"
18 System; termRaw: true.
19 value := String new: 256. pos := 1.
22 pos = 1 ifTrue: [ value := nil ] ifFalse: [ value := value from: 1 to: pos ].
23 System; termRaw: false.
26 c isEOL ] whileFalse: [
27 c value = 127 ifTrue: [
35 c value < 32 ifTrue: [
38 System userBreakSignal.
42 pos > value size ifTrue: [
44 vn := String new: (value size) + 256.
45 1 to: value size do: [:i | vn at: i put: (value at: i)].
46 value := vn. vn := nil.
56 System; termRaw: false.
57 ^value from: 1 to: pos - 1.