Limit function calls number between AnsiInterpreter and VT

openid
Marcin Kulik 12 years ago
parent 243bffee82
commit ea3cfbb65a

@ -1,10 +1,11 @@
class AsciiIo.AnsiInterpreter
constructor: (@callback) ->
@cb = @callback
constructor: ->
@sgrInterpreter = new AsciiIo.SgrInterpreter()
parse: (data) ->
@commands = []
while data.length > 0
processed = @handleData data
@ -14,7 +15,10 @@ class AsciiIo.AnsiInterpreter
data = data.slice processed
data
[@commands, data]
cb: ->
@commands.push arguments
handleData: (data) ->
if data.match(/^\x1b[\x00-\x1f]/)

@ -2,15 +2,16 @@ class AsciiIo.VT
constructor: (@cols, @lines) ->
_.extend(this, Backbone.Events)
@interpreter = new AsciiIo.AnsiInterpreter @onChange
@interpreter = new AsciiIo.AnsiInterpreter
@reset()
onChange: (action, args...) =>
@[action](args...)
feed: (data) ->
@data += data
@data = @interpreter.parse @data
[commands, @data] = @interpreter.parse @data
for command in commands
[name, args...] = command
@[name].apply this, args
@data.length is 0

Loading…
Cancel
Save