box-o-sand/basics/simple_attr.py

49 lines
1.1 KiB
Python

from __future__ import print_function
import sys
import curses
FILE = {'fp': None}
def simple_attr(stdscr):
row, col = stdscr.getmaxyx()
prev = ''
for ch in FILE['fp'].read():
y, x = stdscr.getyx()
if y == (row - 1):
stdscr.addstr(row - 1, 0, "<-Press Any Key->")
stdscr.getch()
stdscr.clear()
stdscr.move(0, 0)
if prev == '/' and ch == '*':
stdscr.attron(curses.A_BOLD)
y, x = stdscr.getyx()
stdscr.addstr(y, x - 1, '/{0}'.format(ch))
else:
stdscr.addstr(y, x, ch)
stdscr.refresh()
if prev == '*' and ch == '/':
stdscr.attroff(curses.A_BOLD)
prev = ch
def main(sysargs=sys.argv[:]):
if not sysargs[1:]:
print('Usage: {0} <a c file name>'.format(sysargs[0]))
return 1
try:
FILE['fp'] = open(sysargs[1], 'r')
except (OSError, IOError):
print('Cannot open input file', file=sys.stderr)
return 1
curses.wrapper(simple_attr)
return 0
if __name__ == '__main__':
sys.exit(main())
# vim:filetype=python