Buffer non-processed data in VT instead of AnsiInterpreter

openid
Marcin Kulik 12 years ago
parent 7b1be025d6
commit 1185e3a4d9

@ -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]/)

@ -9,11 +9,13 @@ class AsciiIo.VT
@[action](args...) @[action](args...)
feed: (data) -> feed: (data) ->
rest = @interpreter.parse data @data += data
rest.length is 0 @data = @interpreter.parse @data
@data.length is 0
reset: -> reset: ->
@interpreter.reset() @data = ''
@resetTerminal() @resetTerminal()
bell: -> bell: ->

Loading…
Cancel
Save