diff options
author | Georg Brandl <georg@python.org> | 2008-06-08 08:40:05 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-06-08 08:40:05 (GMT) |
commit | fd68087b29568031625e7292c225fcdd28f0e943 (patch) | |
tree | 11d778c7529e0647328c35a920eabea9bf80d0cd /Lib/calendar.py | |
parent | f010bd5c3412525336fb3800d7e4eb18335e71b6 (diff) | |
download | cpython-fd68087b29568031625e7292c225fcdd28f0e943.zip cpython-fd68087b29568031625e7292c225fcdd28f0e943.tar.gz cpython-fd68087b29568031625e7292c225fcdd28f0e943.tar.bz2 |
#3059: Stop decoding Unicode in calendar module.
The strftime routines must know how to decode
localized month/day names themselves.
Diffstat (limited to 'Lib/calendar.py')
-rw-r--r-- | Lib/calendar.py | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/Lib/calendar.py b/Lib/calendar.py index f29b5da..0c1fdad 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -481,13 +481,13 @@ class HTMLCalendar(Calendar): return ''.join(v).encode(encoding, "xmlcharrefreplace") -class TimeEncoding: +class different_locale: def __init__(self, locale): self.locale = locale def __enter__(self): self.oldlocale = _locale.setlocale(_locale.LC_TIME, self.locale) - return _locale.getlocale(_locale.LC_TIME)[1] + #return _locale.getlocale(_locale.LC_TIME)[1] def __exit__(self, *args): _locale.setlocale(_locale.LC_TIME, self.oldlocale) @@ -508,21 +508,17 @@ class LocaleTextCalendar(TextCalendar): self.locale = locale def formatweekday(self, day, width): - with TimeEncoding(self.locale) as encoding: + with different_locale(self.locale): if width >= 9: names = day_name else: names = day_abbr name = names[day] - if encoding is not None: - name = name.decode(encoding) return name[:width].center(width) def formatmonthname(self, theyear, themonth, width, withyear=True): - with TimeEncoding(self.locale) as encoding: + with different_locale(self.locale): s = month_name[themonth] - if encoding is not None: - s = s.decode(encoding) if withyear: s = "%s %r" % (s, theyear) return s.center(width) @@ -542,17 +538,13 @@ class LocaleHTMLCalendar(HTMLCalendar): self.locale = locale def formatweekday(self, day): - with TimeEncoding(self.locale) as encoding: + with different_locale(self.locale): s = day_abbr[day] - if encoding is not None: - s = s.decode(encoding) return '<th class="%s">%s</th>' % (self.cssclasses[day], s) def formatmonthname(self, theyear, themonth, withyear=True): - with TimeEncoding(self.locale) as encoding: + with different_locale(self.locale): s = month_name[themonth] - if encoding is not None: - s = s.decode(encoding) if withyear: s = '%s %s' % (s, theyear) return '<tr><th colspan="7" class="month">%s</th></tr>' % s |