From 371456450e7b3ef9aa455977168bded61db32f91 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 19 Jul 2008 10:28:09 +0000 Subject: [PATCH] Fix JobStatusDisplay._init_term() to supply default codes in cases when curses.tigetstr() returns None. svn path=/main/trunk/; revision=11136 --- pym/_emerge/__init__.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 76a279711..fdc257b30 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -8422,9 +8422,7 @@ class JobStatusDisplay(object): isatty = hasattr(out, "isatty") and out.isatty() object.__setattr__(self, "_isatty", isatty) - if isatty: - self._init_term() - else: + if not isatty or not self._init_term(): term_codes = {} for k, capname in self._termcap_name_map.iteritems(): term_codes[k] = self._default_term_codes[capname] @@ -8433,6 +8431,9 @@ class JobStatusDisplay(object): def _init_term(self): """ Initialize term control codes. + @rtype: bool + @returns: True if term codes were successfully initialized, + False otherwise. """ term_type = os.environ.get("TERM", "vt100") @@ -8449,13 +8450,16 @@ class JobStatusDisplay(object): pass if tigetstr is None: - def tigetstr(capname): - return self._default_term_codes[capname] + return False term_codes = {} for k, capname in self._termcap_name_map.iteritems(): - term_codes[k] = tigetstr(capname) + code = tigetstr(capname) + if code is None: + code = self._default_term_codes[capname] + term_codes[k] = code object.__setattr__(self, "_term_codes", term_codes) + return True def _format_msg(self, msg): return ">>> %s" % msg -- 2.26.2