equal
deleted
inserted
replaced
209 if self._audit: |
209 if self._audit: |
210 r = util.checkosfilename(path) |
210 r = util.checkosfilename(path) |
211 if r: |
211 if r: |
212 raise util.Abort("%s: %r" % (r, path)) |
212 raise util.Abort("%s: %r" % (r, path)) |
213 self.auditor(path) |
213 self.auditor(path) |
214 f = os.path.join(self.base, path) |
214 f = self.join(path) |
215 |
215 |
216 if not text and "b" not in mode: |
216 if not text and "b" not in mode: |
217 mode += "b" # for that other OS |
217 mode += "b" # for that other OS |
218 |
218 |
219 nlink = -1 |
219 nlink = -1 |
253 self._fixfilemode(f) |
253 self._fixfilemode(f) |
254 return fp |
254 return fp |
255 |
255 |
256 def symlink(self, src, dst): |
256 def symlink(self, src, dst): |
257 self.auditor(dst) |
257 self.auditor(dst) |
258 linkname = os.path.join(self.base, dst) |
258 linkname = self.join(dst) |
259 try: |
259 try: |
260 os.unlink(linkname) |
260 os.unlink(linkname) |
261 except OSError: |
261 except OSError: |
262 pass |
262 pass |
263 |
263 |
277 f.close() |
277 f.close() |
278 self._fixfilemode(dst) |
278 self._fixfilemode(dst) |
279 |
279 |
280 def audit(self, path): |
280 def audit(self, path): |
281 self.auditor(path) |
281 self.auditor(path) |
|
282 |
|
283 def join(self, path): |
|
284 return os.path.join(self.base, path) |
282 |
285 |
283 class filteropener(abstractopener): |
286 class filteropener(abstractopener): |
284 '''Wrapper opener for filtering filenames with a function.''' |
287 '''Wrapper opener for filtering filenames with a function.''' |
285 |
288 |
286 def __init__(self, opener, filter): |
289 def __init__(self, opener, filter): |