rdiff-backup-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/FilenameMap..


From: dean gaudet
Subject: [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/FilenameMap...
Date: Sun, 28 Jan 2007 02:49:02 +0000

CVSROOT:        /cvsroot/rdiff-backup
Module name:    rdiff-backup
Changes by:     dean gaudet <dgaudet>   07/01/28 02:49:02

Modified files:
        .              : CHANGELOG 
        rdiff_backup   : FilenameMapping.py 

Log message:
        Escape DOS device filenames when necessary.  [Marc Dyksterhouse]

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.193&r2=1.194
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/FilenameMapping.py?cvsroot=rdiff-backup&r1=1.9&r2=1.10

Patches:
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.193
retrieving revision 1.194
diff -u -b -r1.193 -r1.194
--- CHANGELOG   28 Jan 2007 02:47:01 -0000      1.193
+++ CHANGELOG   28 Jan 2007 02:49:01 -0000      1.194
@@ -12,6 +12,8 @@
 Add "FilenameMapping.set_init_quote_vals" security exception.
 [Marc Dyksterhouse]
 
+Escape DOS device filenames when necessary.  [Marc Dyksterhouse]
+
 
 New in v1.1.7 (2006/11/12)
 --------------------------

Index: rdiff_backup/FilenameMapping.py
===================================================================
RCS file: /cvsroot/rdiff-backup/rdiff-backup/rdiff_backup/FilenameMapping.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- rdiff_backup/FilenameMapping.py     23 Nov 2005 23:16:32 -0000      1.9
+++ rdiff_backup/FilenameMapping.py     28 Jan 2007 02:49:01 -0000      1.10
@@ -83,7 +83,17 @@
        the quoting character.
 
        """
-       return chars_to_quote_regexp.sub(quote_single, path)
+       QuotedPath = chars_to_quote_regexp.sub(quote_single, path)
+       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-2.
+       if not 
re.search(r"^aux(\..*)*$|^prn(\..*)*$|^con(\..*)*$|^nul(\..*)*$|" \
+                                        
r"^com[0-9](\..*)*$|^lpt[12]{1}(\..*)*$", QuotedPath, \
+                                        re.I):
+               return QuotedPath
+       return "%s%03d" % (quoting_char, ord(QuotedPath[0])) + QuotedPath[1:]
 
 def quote_single(match):
        """Return replacement for a single character"""




reply via email to

[Prev in Thread] Current Thread [Next in Thread]