$body = $('body')
$body.css backgroundColor: "##{palette[0]}", color: "##{palette[7]}"
- socket = io.connect('http://localhost')
+ socket = io.connect('/')
color_to_css = (i) ->
# handle inverse bit
return 'background-' + color_to_css(i ^ 0x080000)
stylize = (txt, style) ->
- if (txt.length == 0 or style == 0x000007)
- return txt
+ return '' if txt.length is 0
+ return $('<span>').text txt if style is 0x000007
css = ''
css += 'font-weight: bold; ' if style & 0x010000
css += 'text-decoration: underline; ' if style & 0x020000
redraw_again = false
redraw_now = ->
$body.children().remove()
+ # cursor can be just off the right side, but we draw it on the last column in that case
+ if term.x >= term.width
+ cursor_x = term.width - 1
+ else
+ cursor_x = term.x
+ # invert the cursor TODO: make it blink
+ if term.cursor_visible
+ term.attributes[term.y][cursor_x] ^= 0x080000
for i in [0...term.text.length]
div = $('<div>')
txt = ''
if txt.length
div.append(stylize(txt, a))
$body.append(div)
+ if term.cursor_visible
+ term.attributes[term.y][cursor_x] ^= 0x080000
# limit to 50fps
redraw = ->
socket.on 'init', (v) ->
term = terminal.new(v.width, v.height)
- term.x = v.x
- term.y = v.y
- term.a = v.a
- term.text = v.text
- term.attributes = v.attributes
- redraw()
+ update v.text