aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authornbm <nbm@FreeBSD.org>2003-01-20 17:43:20 +0800
committernbm <nbm@FreeBSD.org>2003-01-20 17:43:20 +0800
commit851077166f2fd75a9fc6f127d41227b4167f833d (patch)
tree5438ee5dd88496bd44aa6280682ffff4cf515d4d /mail
parent88670419dcf80aa289a10510b68093ec67b68011 (diff)
downloadfreebsd-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/Makefile1
-rw-r--r--mail/offlineimap/files/patch-ui::Curses.py101
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