[Reportbug-maint] Bug#531911: More comments and possibly better fix
Alexandre Rossi
alexandre.rossi at gmail.com
Thu Jun 11 06:24:08 UTC 2009
First, sorry for the late answer, but the Debian BTS does not send
mail to the bug submitter unless they subscribed to the bug report,
and I forgot on this one, that is why I saw your follow-ups only
today...
> I think the line is truncated to print the information given your shell
> size. Can you confirm it works if you use a shell allowing the whole
> line beeing printed (or if you avoid truncating at this exact spot) ?
> For me it works with this workaround. Meanwhile I'm looking for how to
> avoid a line being truncated this way.
Yeah, it works with this workaround.
> It seem this bug is related to the Python decode() function which seems
> to behave weirdly given the default shell size (with other shell sizes,
> the display is ok, no exception is raised). Using "replace" mode for
> this function allows the character beeing replaced by the "?" character
> in order to go on with the bug list display. That's the way reportbug
> already deals with the sister function encode().
I do not think decode() takes into account shell size because it
handles a string, not terminal output. replace() works around the bug
but now, this is the output I get :
57) #522628 gnome-terminal: duplicate access keys for menu bar: “Terminal�
I think the attached patch is better, because it gives me the following output :
57) #522628 gnome-terminal: duplicate access keys for menu bar: “Terminal”,
Thanks,
Alex
The patch :
diff --git a/reportbug/debianbts.py b/reportbug/debianbts.py
index 169e4c9..212a7ee 100644
--- a/reportbug/debianbts.py
+++ b/reportbug/debianbts.py
@@ -929,6 +929,11 @@ def get_cgi_reports(package, system='debian', http_proxy=''
parser = BTSParser(cgi=True)
for line in page:
+ try:
+ line = line.decode('utf-8') # BTS pages are encoded in utf-8
+ except UnicodeDecodeError:
+ # page has a bad char
+ line = line.decode('utf-8', 'replace')
parser.feed(line)
parser.close()
try:
diff --git a/reportbug/ui/text_ui.py b/reportbug/ui/text_ui.py
index 15db2b7..e6f7360 100644
--- a/reportbug/ui/text_ui.py
+++ b/reportbug/ui/text_ui.py
@@ -613,7 +613,7 @@ def browse_bugs(hierarchy, count, bugs, bts, queryonly, mirr
while 1:
for line in lastpage:
- sys.stderr.write(line.decode('utf-8', "replace").encode
+ sys.stderr.write(line.encode(output_encoding, "replace"
x = select_options(pstr, options, helptext,
allow_numbers=allowed)
if x == 'n':
More information about the Reportbug-maint
mailing list