diff options
author | nbm <nbm@FreeBSD.org> | 2003-01-20 17:43:20 +0800 |
---|---|---|
committer | nbm <nbm@FreeBSD.org> | 2003-01-20 17:43:20 +0800 |
commit | 851077166f2fd75a9fc6f127d41227b4167f833d (patch) | |
tree | 5438ee5dd88496bd44aa6280682ffff4cf515d4d /mail | |
parent | 88670419dcf80aa289a10510b68093ec67b68011 (diff) | |
download | freebsd-ports-graphics-851077166f2fd75a9fc6f127d41227b4167f833d.tar.gz freebsd-ports-graphics-851077166f2fd75a9fc6f127d41227b4167f833d.tar.zst freebsd-ports-graphics-851077166f2fd75a9fc6f127d41227b4167f833d.zip |
Fix curses bug in mail/offlineimap 3.99.7
PR: 47013
Submitted by: Sergei Kolobov <sergei@kolobov.com>
Diffstat (limited to 'mail')
-rw-r--r-- | mail/offlineimap/Makefile | 1 | ||||
-rw-r--r-- | mail/offlineimap/files/patch-ui::Curses.py | 101 |
2 files changed, 102 insertions, 0 deletions
diff --git a/mail/offlineimap/Makefile b/mail/offlineimap/Makefile index dd63344d289..d2cc33c14aa 100644 --- a/mail/offlineimap/Makefile +++ b/mail/offlineimap/Makefile @@ -7,6 +7,7 @@ PORTNAME= offlineimap PORTVERSION= 3.99.7 +PORTREVISION= 1 CATEGORIES= mail python MASTER_SITES= http://gopher.quux.org:70/devel/offlineimap/ DISTNAME= ${PORTNAME}_${PORTVERSION} diff --git a/mail/offlineimap/files/patch-ui::Curses.py b/mail/offlineimap/files/patch-ui::Curses.py new file mode 100644 index 00000000000..d2a30f30c34 --- /dev/null +++ b/mail/offlineimap/files/patch-ui::Curses.py @@ -0,0 +1,101 @@ +--- offlineimap/ui/Curses.py (original) ++++ offlineimap/ui/Curses.py Fri Jan 10 11:47:36 2003 +@@ -29,12 +29,18 @@ + + class CursesUtil: + def __init__(self): +- self.pairs = {self._getpairindex(curses.COLOR_WHITE, +- curses.COLOR_BLACK): 0} +- self.start() +- self.nextpair = 1 + self.pairlock = Lock() + self.iolock = MultiLock() ++ self.start() ++ ++ def initpairs(self): ++ self.pairlock.acquire() ++ try: ++ self.pairs = {self._getpairindex(curses.COLOR_WHITE, ++ curses.COLOR_BLACK): 0} ++ self.nextpair = 1 ++ finally: ++ self.pairlock.release() + + def lock(self): + self.iolock.acquire() +@@ -63,6 +69,8 @@ + return '%d/%d' % (fg,bg) + + def getpair(self, fg, bg): ++ if not self.has_color: ++ return 0 + pindex = self._getpairindex(fg, bg) + self.pairlock.acquire() + try: +@@ -96,6 +104,7 @@ + self.stdscr.clear() + self.stdscr.refresh() + (self.height, self.width) = self.stdscr.getmaxyx() ++ self.initpairs() + + def stop(self): + if not hasattr(self, 'stdscr'): +@@ -200,7 +209,10 @@ + + def display(self): + def lockedstuff(): +- self.window.addstr(self.y, self.x, '.', self.color) ++ if self.getcolor() == 'black': ++ self.window.addstr(self.y, self.x, ' ', self.color) ++ else: ++ self.window.addstr(self.y, self.x, '.', self.color) + self.c.stdscr.move(self.c.height - 1, self.c.width - 1) + self.window.refresh() + self.c.locked(lockedstuff) +@@ -406,9 +418,12 @@ + s.c.unlock() + + def setupwindow_drawbanner(s): +- s.bannerwindow.bkgd(' ', curses.A_BOLD | \ +- s.c.getpair(curses.COLOR_WHITE, +- curses.COLOR_BLUE)) ++ if s.c.has_color: ++ color = s.c.getpair(curses.COLOR_WHITE, curses.COLOR_BLUE) | \ ++ curses.A_BOLD ++ else: ++ color = curses.A_REVERSE ++ s.bannerwindow.bkgd(' ', color) # Fill background with that color + s.bannerwindow.addstr("%s %s" % (version.productname, + version.versionstr)) + s.bannerwindow.addstr(0, s.bannerwindow.getmaxyx()[1] - len(version.copyright) - 1, +@@ -417,7 +432,11 @@ + s.bannerwindow.noutrefresh() + + def setupwindow_drawlog(s): +- s.logwindow.bkgd(' ', s.c.getpair(curses.COLOR_WHITE, curses.COLOR_BLACK)) ++ if s.c.has_color: ++ color = s.c.getpair(curses.COLOR_WHITE, curses.COLOR_BLACK) ++ else: ++ color = curses.A_NORMAL ++ s.logwindow.bkgd(' ', color) + for line, color in s.text: + s.logwindow.addstr("\n" + line, color) + s.logwindow.noutrefresh() +@@ -501,7 +520,7 @@ + x = Blinkenlights(None) + x.init_banner() + import time +- time.sleep(10) ++ time.sleep(5) + x.c.stop() + fgs = {'black': curses.COLOR_BLACK, 'red': curses.COLOR_RED, + 'green': curses.COLOR_GREEN, 'yellow': curses.COLOR_YELLOW, +@@ -536,7 +555,7 @@ + win4.refresh() + x.stdscr.refresh() + import time +- time.sleep(40) ++ time.sleep(5) + x.stop() + print x.has_color + print x.height |