diff --git a/uc1541 b/uc1541 index 0efd2f6..f828598 100755 --- a/uc1541 +++ b/uc1541 @@ -50,6 +50,7 @@ of error cause if any. UC1541_HIDE_DEL - if set, no DEL entries will be shown Changelog: + 2.5 Fixed bug with filenames started with a '-' sign. 2.4 Fixed endless loop bug for reading directory in Python implemented directory reader. 2.3 Re added and missing method _correct_fname used for writing files @@ -70,8 +71,8 @@ Changelog: 1.0 Initial release Author: Roman 'gryf' Dobosz -Date: 2012-09-30 -Version: 2.4 +Date: 2012-10-15 +Version: 2.5 Licence: BSD """ @@ -175,6 +176,10 @@ class D64(object): character = D64.CHAR_MAP.get(ord(chr_), '?') filename.append(character) + # special cases + if filename[0] == "-": + filename[0] = "?" + LOG.debug("string: ``%s'' mapped to: ``%s''", string, "".join(filename)) return "".join(filename) @@ -434,9 +439,13 @@ class Uc1541(object): if '/' in display_name: display_name = display_name.replace('/', '|') - # workaround for space at the beggining of the filename - if display_name[0] == ' ': - display_name = '~' + display_name[1:] + # workaround for space and dash at the beggining of the + # filename + char_map = {' ': '~', + '-': '_'} + display_name = "".join([char_map.get(display_name[0], + display_name[0]), + display_name[1:]]) if ext == 'del': perms = "----------"