copypasted from lindebug.rb
# File samples/dasmnavig.rb, line 20 def self.color(*args) fg = true "\e[" << args.map { |a| case a when :bold; 2 when :negative; 7 when :normal; 22 when :positive; 27 else if col = Colors.index(a) add = (fg ? 30 : 40) fg = false col+add end end }.compact.join(';') << 'm' end
# File samples/dasmnavig.rb, line 44 def self.get_terminal_size s = ''.ljust(8) $stdin.ioctl(TIOCGWINSZ, s) >= 0 ? s.unpack('SS') : [80, 25] end
# File samples/dasmnavig.rb, line 68 def self.getkey c = $stdin.getc return c if c != \e c = $stdin.getc if c != [ and c != O $stdin.ungetc c return \e end seq = '' loop do c = $stdin.getc seq << c case c; when a..z, A..Z, ~; break end end ESC_SEQ[seq] || seq end
# File samples/dasmnavig.rb, line 37 def self.hline(len) "\e(0"<<'q'*len<<"\e(B" end
# File samples/dasmnavig.rb, line 17 def self.set_cursor_pos(y=1,x=1) "\e[#{y};#{x}H" end
# File samples/dasmnavig.rb, line 48 def self.set_term_canon(bool) tty = ''.ljust(256) $stdin.ioctl(TCGETS, tty) if bool tty[12] &= ~(ECHO|CANON) else tty[12] |= ECHO|CANON end $stdin.ioctl(TCSETS, tty) end