summaryrefslogtreecommitdiff
path: root/Lib/calendar.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-06-08 08:40:05 +0000
committerGeorg Brandl <georg@python.org>2008-06-08 08:40:05 +0000
commitfd68087b29568031625e7292c225fcdd28f0e943 (patch)
tree11d778c7529e0647328c35a920eabea9bf80d0cd /Lib/calendar.py
parentf010bd5c3412525336fb3800d7e4eb18335e71b6 (diff)
downloadcpython-git-fd68087b29568031625e7292c225fcdd28f0e943.tar.gz
#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.py20
1 files changed, 6 insertions, 14 deletions
diff --git a/Lib/calendar.py b/Lib/calendar.py
index f29b5da7da..0c1fdad567 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