util: move checkosfilename call from path_auditor to opener
authorAdrian Buehlmann <adrian@cadifra.com>
Sun, 10 Apr 2011 19:31:49 +0200
changeset 13926 61ba09d8d118
parent 13925 c315ffc13a25
child 13927 518344d02761
util: move checkosfilename call from path_auditor to opener path_auditor is used for checking patterns too, but a pattern is not a valid filename. This patch fixes 98ee3dd5bab4, which introduced the bug: $ hg log -l3 glob:**.py abort: filename contains '*', which is reserved on Windows: mercurial\**.py
mercurial/util.py
--- a/mercurial/util.py	Sun Apr 10 11:30:53 2011 +0300
+++ b/mercurial/util.py	Sun Apr 10 19:31:49 2011 +0200
@@ -602,9 +602,6 @@
             prefixes.append(prefix)
             parts.pop()
 
-        r = checkosfilename(path)
-        if r:
-            raise Abort("%s: %s" % (r, path))
         self.audited.add(path)
         # only add prefixes to the cache after checking everything: we don't
         # want to add "foo/bar/baz" before checking if there's a "foo/.hg"
@@ -916,6 +913,9 @@
         os.chmod(name, self.createmode & 0666)
 
     def __call__(self, path, mode="r", text=False, atomictemp=False):
+        r = checkosfilename(path)
+        if r:
+            raise Abort("%s: %s" % (r, path))
         self.auditor(path)
         f = os.path.join(self.base, path)