|
|
@ -3,24 +3,18 @@ class AsciiIo.AnsiInterpreter
|
|
|
|
constructor: (@callback) ->
|
|
|
|
constructor: (@callback) ->
|
|
|
|
@cb = @callback
|
|
|
|
@cb = @callback
|
|
|
|
@sgrInterpreter = new AsciiIo.SgrInterpreter()
|
|
|
|
@sgrInterpreter = new AsciiIo.SgrInterpreter()
|
|
|
|
@reset()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reset: ->
|
|
|
|
|
|
|
|
@data = ''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
parse: (data) ->
|
|
|
|
parse: (data) ->
|
|
|
|
@data += data
|
|
|
|
while data.length > 0
|
|
|
|
|
|
|
|
processed = @handleData data
|
|
|
|
while @data.length > 0
|
|
|
|
|
|
|
|
processed = @handleData @data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if processed is 0
|
|
|
|
if processed is 0
|
|
|
|
# console.log "no kurwa: #{@formattedData(@data)}"
|
|
|
|
# console.log "no kurwa: #{@formattedData(@data)}"
|
|
|
|
break
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
|
|
@data = @data.slice processed
|
|
|
|
data = data.slice processed
|
|
|
|
|
|
|
|
|
|
|
|
@data
|
|
|
|
data
|
|
|
|
|
|
|
|
|
|
|
|
handleData: (data) ->
|
|
|
|
handleData: (data) ->
|
|
|
|
if data.match(/^\x1b[\x00-\x1f]/)
|
|
|
|
if data.match(/^\x1b[\x00-\x1f]/)
|
|
|
|