diff options
-rw-r--r-- | rdiff-backup/rdiff_backup/FilenameMapping.py | 12 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/fs_abilities.py | 8 |
2 files changed, 10 insertions, 10 deletions
diff --git a/rdiff-backup/rdiff_backup/FilenameMapping.py b/rdiff-backup/rdiff_backup/FilenameMapping.py index 439836e..8bb3951 100644 --- a/rdiff-backup/rdiff_backup/FilenameMapping.py +++ b/rdiff-backup/rdiff_backup/FilenameMapping.py @@ -89,17 +89,15 @@ def quote(path): and not Globals.must_escape_trailing_spaces: return QuotedPath - if Globals.must_escape_dos_devices: - assert Globals.must_escape_trailing_spaces - # Escape a trailing space or period (invalid in names on FAT32 under DOS, # Windows and modern Linux) - if len(QuotedPath) and (QuotedPath[-1] == ' ' or QuotedPath[-1] == '.'): - QuotedPath = QuotedPath[:-1] + \ + if Globals.must_escape_trailing_spaces: + if len(QuotedPath) and (QuotedPath[-1] == ' ' or QuotedPath[-1] == '.'): + QuotedPath = QuotedPath[:-1] + \ "%s%03d" % (quoting_char, ord(QuotedPath[-1])) - if not Globals.must_escape_dos_devices: - return QuotedPath + if not Globals.must_escape_dos_devices: + return QuotedPath # Escape first char of any special DOS device files even if filename has an # extension. Special names are: aux, prn, con, nul, com0-9, and lpt1-9. diff --git a/rdiff-backup/rdiff_backup/fs_abilities.py b/rdiff-backup/rdiff_backup/fs_abilities.py index 4d6ec4d..3be42d1 100644 --- a/rdiff-backup/rdiff_backup/fs_abilities.py +++ b/rdiff-backup/rdiff_backup/fs_abilities.py @@ -586,7 +586,7 @@ class FSAbilities: log.Log("escape_trailing_spaces required by filesystem at %s" \ % (subdir.path), 4) self.escape_trailing_spaces = 1 - except(OSError): + except (OSError, IOError): log.Log("escape_trailing_spaces required by filesystem at %s" \ % (subdir.path), 4) self.escape_trailing_spaces = 1 @@ -707,7 +707,8 @@ class BackupSetGlobals(SetGlobals): space_rp.delete() else: local_ets = 1 - except (OSError): local_ets = 1 + except (OSError, IOError): + local_ets = 1 SetConnections.UpdateGlobal('must_escape_trailing_spaces', \ self.src_fsa.escape_trailing_spaces or local_ets) log.Log("Backup: must_escape_trailing_spaces = %d" % \ @@ -839,7 +840,8 @@ class RestoreSetGlobals(SetGlobals): space_rp.delete() else: local_ets = 1 - except (OSError): local_ets = 1 + except (OSError, IOError): + local_ets = 1 SetConnections.UpdateGlobal('must_escape_trailing_spaces', \ src_ets or local_ets) log.Log("Restore: must_escape_trailing_spaces = %d" % \ |