Fix CUU and CUD cursor handling

openid
Marcin Kulik 13 years ago
parent 6f3bad7f49
commit 291bbdf9c7

@ -6,7 +6,7 @@ class AsciiIo.AnsiInterpreter
PATTERNS: PATTERNS:
"\x07": (data) -> # bell "\x07": (data) -> # bell
"\x08": (data) -> @terminal.bs() "\x08": (data) -> @terminal.bs()
"\x0a": (data) -> @terminal.cursorDown() "\x0a": (data) -> @terminal.cursorDown 1
"\x0d": (data) -> @terminal.cr() "\x0d": (data) -> @terminal.cr()
"\x0e": (data) -> "\x0e": (data) ->
"\x0f": (data) -> "\x0f": (data) ->

@ -156,20 +156,22 @@ class AsciiIo.Terminal
@cursorX += 1 @cursorX += 1
@updateLine() @updateLine()
cursorUp: -> cursorUp: (n) ->
if @cursorY > 0 for i in [0...n]
@cursorY -= 1 if @cursorY > 0
@updateLine @cursorY @cursorY -= 1
@updateLine @cursorY + 1 @updateLine @cursorY
@updateLine @cursorY + 1
cursorDown: ->
if @cursorY + 1 < @lines cursorDown: (n) ->
@cursorY += 1 for i in [0...n]
@updateLine @cursorY - 1 if @cursorY + 1 < @lines
@updateLine @cursorY @cursorY += 1
else @updateLine @cursorY - 1
@lineData.splice 0, 1 @updateLine @cursorY
@updateScreen() else
@lineData.splice 0, 1
@updateScreen()
cursorForward: (n) -> cursorForward: (n) ->
i = 0 i = 0

Loading…
Cancel
Save