Curses-Programm stürzt beim Maximieren ab
Verfasst: Mittwoch 23. Dezember 2009, 08:43
Ich möchte mal `less` in Python mit Hilfe von [mod]curses[/mod] implementieren. `less` bekommt es hin, bei Veränderung der Terminal-Maße (z.B. Vergrößerung des Emulator-Fensters), eine vormals umgebrochene Zeile neu auszurichten. Wenn also genug Platz da ist, wird alles in eine Zeile gesteckt. Mein Programm hingegen stürzt einfach nur ab. Woran kann es liegen bzw was sollte ich ändern?
Der Code ist noch recht dürftig:
EDIT: "Abstürzen" heißt, dass sich das Programm ohne Meldung beendet.
EDIT2: Wieso springt die Ausgabe (z.B. von `ls -l`) eigentlich bis zum Ende?
Der Code ist noch recht dürftig:
Code: Alles auswählen
from contextlib import closing
import curses
import sys
from time import sleep
class ScrollableScreen(object):
def __init__(self, s=''):
self.screen = curses.initscr()
curses.curs_set(0)
self.screen.immedok(True)
self.screen.scrollok(True)
self.add_string(s)
def add_string(self, s):
self.screen.addstr(s)
def close(self):
curses.endwin()
def main():
with closing(ScrollableScreen()) as screen:
screen.add_string(sys.stdin.read())
sleep(10)
if __name__ == '__main__':
main()
EDIT2: Wieso springt die Ausgabe (z.B. von `ls -l`) eigentlich bis zum Ende?