changeset 13944:bc32bb0e909f

util: new function checkfilename checkfilename checks for restrictions on filenames imposed by Mercurial itself, irrespective of on what platform it is run.
author Adrian Buehlmann <adrian@cadifra.com>
date Fri, 15 Apr 2011 16:15:30 +0200
parents 545091b12724
children 03f3ce7ca2a8
files mercurial/dirstate.py mercurial/util.py
diffstat 2 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/dirstate.py	Fri Apr 15 16:15:28 2011 +0200
+++ b/mercurial/dirstate.py	Fri Apr 15 16:15:30 2011 +0200
@@ -269,9 +269,7 @@
     def _addpath(self, f, check=False):
         oldstate = self[f]
         if check or oldstate == "r":
-            if '\r' in f or '\n' in f:
-                raise util.Abort(
-                    _("'\\n' and '\\r' disallowed in filenames: %r") % f)
+            util.checkfilename(f)
             if f in self._dirs:
                 raise util.Abort(_('directory %r already in dirstate') % f)
             # shadows
--- a/mercurial/util.py	Fri Apr 15 16:15:28 2011 +0200
+++ b/mercurial/util.py	Fri Apr 15 16:15:30 2011 +0200
@@ -493,6 +493,11 @@
 
     return hardlink, num
 
+def checkfilename(f):
+    '''Check that the filename f is an acceptable filename for a tracked file'''
+    if '\r' in f or '\n' in f:
+        raise Abort(_("'\\n' and '\\r' disallowed in filenames: %r") % f)
+
 _windows_reserved_filenames = '''con prn aux nul
     com1 com2 com3 com4 com5 com6 com7 com8 com9
     lpt1 lpt2 lpt3 lpt4 lpt5 lpt6 lpt7 lpt8 lpt9'''.split()