Opened 16 years ago
Closed 16 years ago
#1140 closed patch (Fixed)
Console ui "add" autocomplete crashes on unicode filename
| Reported by: | nullie | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | 1.3 |
| Component: | Console UI | Version: | 1.2.0 |
| Keywords: | Cc: |
Description
Console ui crashes then I try to list options for add command autocomplete and directory contains unicode filenames, i.e.:
add /path/to/directory/with/unicode/entries/ <TAB> <TAB>
Traceback:
[ERROR ] 23:17:28 screen:300 'ascii' codec can't decode byte 0xd0 in position 13: ordinal not in range(128)
Traceback (most recent call last):
File "/home/nullie/work/deluge/trunk/deluge/ui/console/screen.py", line 298, in doRead
self._doRead()
File "/home/nullie/work/deluge/trunk/deluge/ui/console/screen.py", line 337, in _doRead
self.input, self.input_cursor = self.tab_completer(self.input, self.input_cursor, second_hit)
File "/home/nullie/work/deluge/trunk/deluge/ui/console/main.py", line 377, in tab_completer
self.write(match)
File "/home/nullie/work/deluge/trunk/deluge/ui/console/main.py", line 268, in write
self.screen.add_line(line, not self.batch_write)
File "/home/nullie/work/deluge/trunk/deluge/ui/console/screen.py", line 193, in add_line
line_length = colors.get_line_length(line)
File "/home/nullie/work/deluge/trunk/deluge/ui/console/colors.py", line 129, in get_line_length
line = line.encode(encoding, "replace")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 13: ordinal not in range(128)
That happens because os.listdir in deluge/ui/console/commands/add.py:94 gets encoded string, so it returns encoded strings as result, and screen.py doesn't handle encoded strings.
I could fix this, but don't know where should I do decoding (or make screen accept encoded strings).
Attachments (1)
Change History (6)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
I've added a patch for unicode input support, it fixes autocompletion too. Don't know if it's correct though.
comment:3 by , 16 years ago
| Component: | other → console |
|---|---|
| Milestone: | → 1.3.0 |
comment:4 by , 16 years ago
| Type: | defect → patch |
|---|
Note:
See TracTickets
for help on using tickets.



Looks like it's broader problem, console doesn't support unicode input too