retitle 652035 wicd-curses crashes (UnicodeDecodeError) with roughly 49 locales
thanks

Hi,

On Sat, Jan 21, 2012 at 11:43:57PM +0100, David Paleino wrote:
> In the meanwhile, I'm downgrading this bug's severity, since it seems to
> happen only with the French localization (so wicd-curses is not "totally
> unusable for everyone").

It appears to occur with many other locales.

Steps to reproduce are as in message #119 (Message-ID:
<20120221211749.51670...@cacacomp.caca>): Select any AP from the main
menu and use your right arrow to select it's configuration menu. Enjoy
the crash.

I tested all the locales which have translations installed.

Crash with LC_ALL=XXXX (all those unspecified have Error 1):
ar_EG
ast
ca
cs
da
de
el
eo # Error 2
es_AR
es
es_MX # Error 2
es_NI
es_VE
et
fa # Error 2
fi
fr_CA
fr
gl
he
hr
hu
ja
ka
kk # Error 3
ko
lt # Error 2
lv # Error 2
pt_BR
pt
ro
ru
sk
sl # Error 2
sr
sv
tr
uk
vi # Error 2
zh_CN
zh_HK # Error 2
zh_TW

I may have mixed up a few of the es_* locales, including or excluding
some of them (I lost track of where I was).

Do not crash with LC_ALL=XXXX:
C
All locales in the output of 
    ls /usr/share/locale/*/LC_MESSAGES/wicd.mo | sed -e 
's@.*locale/\(.\+\)/LC.*@\1@g'
not listed above.

If you want to test against all installed locales, run:
 for i in `ls /usr/share/locale/*/LC_MESSAGES/wicd.mo | sed -e 
's@.*locale/\(.\+\)/LC.*@\1@g'`; do LC_ALL=$i wicd-curses; done
and test against each locale.
 
# Error 1. "[...] in position NNNN: [...]" varies across languages.
Traceback (most recent call last):
  File "/usr/share/wicd/curses/wicd-curses.py", line 921, in call_update_ui
    self.update_ui(True)
  File "/usr/share/wicd/curses/wicd-curses.py", line 89, in wrapper
    return func(*args, **kargs)
  File "/usr/share/wicd/curses/wicd-curses.py", line 932, in update_ui
    self.handle_keys(input_data[1])
  File "/usr/share/wicd/curses/wicd-curses.py", line 835, in handle_keys
    self.diag = WirelessSettingsDialog(pos,self.frame)
  File "/usr/share/wicd/curses/netentry_curses.py", line 385, in __init__
    title = _('Configuring preferences for wireless network "$A" 
($B)').replace('$A',wireless.GetWirelessProperty(networkID,'essid')).replace('$B',wireless.GetWirelessProperty(networkID,'bssid'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 46: 
ordinal not in range(128)

# Error 2
Traceback (most recent call last):
  File "/usr/share/wicd/curses/wicd-curses.py", line 921, in call_update_ui
    self.update_ui(True)
  File "/usr/share/wicd/curses/wicd-curses.py", line 89, in wrapper
    return func(*args, **kargs)
  File "/usr/share/wicd/curses/wicd-curses.py", line 932, in update_ui
    self.handle_keys(input_data[1])
  File "/usr/share/wicd/curses/wicd-curses.py", line 907, in handle_keys
    k = self.frame.keypress(self.size,k)
  File "/usr/lib/python2.7/dist-packages/urwid/container.py", line 641, in 
keypress
    return self.body.keypress( (maxcol, remaining), key )
  File "/usr/lib/python2.7/dist-packages/urwid/container.py", line 641, in 
keypress
    return self.body.keypress( (maxcol, remaining), key )
  File "/usr/lib/python2.7/dist-packages/urwid/listbox.py", line 758, in 
keypress
    self._set_focus_complete( (maxcol,maxrow), focus=True )
  File "/usr/lib/python2.7/dist-packages/urwid/listbox.py", line 500, in 
_set_focus_complete
    (maxcol,maxrow), focus)
  File "/usr/lib/python2.7/dist-packages/urwid/listbox.py", line 470, in 
_set_focus_first_selectable
    (maxcol, maxrow), focus=focus)
  File "/usr/lib/python2.7/dist-packages/urwid/listbox.py", line 285, in 
calculate_visible
    n_rows = next.rows( (maxcol,) )
  File "/usr/lib/python2.7/dist-packages/urwid/widget.py", line 192, in 
cached_rows
    return fn(self, size, focus)
  File "/usr/lib/python2.7/dist-packages/urwid/widget.py", line 636, in rows
    return len(self.get_line_translation(maxcol))
  File "/usr/lib/python2.7/dist-packages/urwid/widget.py", line 1196, in 
get_line_translation
    trans = Text.get_line_translation(self, maxcol, ta)
  File "/usr/lib/python2.7/dist-packages/urwid/widget.py", line 649, in 
get_line_translation
    self._update_cache_translation(maxcol, ta)
  File "/usr/lib/python2.7/dist-packages/urwid/widget.py", line 656, in 
_update_cache_translation
    text, attr = self.get_text()
  File "/usr/lib/python2.7/dist-packages/urwid/widget.py", line 788, in get_text
    return self._caption + self._edit_text, self._attrib
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal 
not in range(128)

# Error 3
unknown locale: kk
Default locale unavailable, falling back to en_US
Traceback (most recent call last):
  File "/usr/share/wicd/curses/wicd-curses.py", line 51, in <module>
    from wicd import misc
  File "/usr/lib/python2.7/dist-packages/wicd/misc.py", line 36, in <module>
    from wicd.translations import _
  File "/usr/lib/python2.7/dist-packages/wicd/translations.py", line 58, in 
<module>
    _ = get_gettext()
  File "/usr/lib/python2.7/dist-packages/wicd/translations.py", line 50, in 
get_gettext
    if (lc):
UnboundLocalError: local variable 'lc' referenced before assignment

Hope this helps.

Best wishes,
Ryan

Attachment: signature.asc
Description: Digital signature

Reply via email to