Simplified AnsiInterpreter#feed

openid
Marcin Kulik 13 years ago
parent 159aee848f
commit 7b143069c8

@ -136,26 +136,19 @@ class AsciiIo.AnsiInterpreter
@COMPILED_PATTERNS.push [ regexp, @PATTERNS[re] ] @COMPILED_PATTERNS.push [ regexp, @PATTERNS[re] ]
feed: (data) -> feed: (data) ->
match = undefined
handler = undefined
while data.length > 0 while data.length > 0
match = handler = null match = null
i = 0
while i < @COMPILED_PATTERNS.length for pattern in @COMPILED_PATTERNS
pattern = @COMPILED_PATTERNS[i]
match = pattern[0].exec(data) match = pattern[0].exec(data)
if match if match
handler = pattern[1] handler = pattern[1]
handler.call(this, data, match)
data = data.slice(match[0].length)
break break
i++
if handler break unless match
handler.call this, data, match
data = data.slice(match[0].length)
else
break
@terminal.render() @terminal.render()
data data

Loading…
Cancel
Save