From 7bf31a4c2913be2d627ca08b38d407678bd85ae7 Mon Sep 17 00:00:00 2001 From: owsla Date: Thu, 13 Nov 2008 01:14:59 +0000 Subject: Final fixes to trailing spaces support git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@963 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109 --- rdiff-backup/rdiff_backup/FilenameMapping.py | 12 +++++------- rdiff-backup/rdiff_backup/fs_abilities.py | 8 +++++--- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'rdiff-backup/rdiff_backup') 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" % \ -- cgit v1.2.1