summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorowsla <owsla@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2008-11-13 01:14:59 +0000
committerowsla <owsla@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2008-11-13 01:14:59 +0000
commit7bf31a4c2913be2d627ca08b38d407678bd85ae7 (patch)
tree9315f45d3f8f6000ac0b6603e75973cb4e0176cb
parent6e5c3e176685cbdbce504d2ae09893504b0fdbf4 (diff)
downloadrdiff-backup-7bf31a4c2913be2d627ca08b38d407678bd85ae7.tar.gz
Final fixes to trailing spaces support
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@963 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
-rw-r--r--rdiff-backup/rdiff_backup/FilenameMapping.py12
-rw-r--r--rdiff-backup/rdiff_backup/fs_abilities.py8
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" % \