equal
deleted
inserted
replaced
151 |
151 |
152 def __contains__(self, key): |
152 def __contains__(self, key): |
153 return key in self._map |
153 return key in self._map |
154 |
154 |
155 def __iter__(self): |
155 def __iter__(self): |
156 a = self._map.keys() |
156 for x in util.sort(self._map): |
157 a.sort() |
|
158 for x in a: |
|
159 yield x |
157 yield x |
160 |
158 |
161 def parents(self): |
159 def parents(self): |
162 return self._pl |
160 return self._pl |
163 |
161 |
434 ret[x] = self._map[x] |
432 ret[x] = self._map[x] |
435 |
433 |
436 if not unknown: |
434 if not unknown: |
437 return ret |
435 return ret |
438 |
436 |
439 b = self._map.keys() |
437 b = util.sort(self._map) |
440 b.sort() |
|
441 blen = len(b) |
438 blen = len(b) |
442 |
439 |
443 for x in unknown: |
440 for x in unknown: |
444 bs = bisect.bisect(b, "%s%s" % (x, '/')) |
441 bs = bisect.bisect(b, "%s%s" % (x, '/')) |
445 while bs < blen: |
442 while bs < blen: |
576 elif imatch(np): |
573 elif imatch(np): |
577 if supported(np, st.st_mode): |
574 if supported(np, st.st_mode): |
578 add((nn, 'f', st)) |
575 add((nn, 'f', st)) |
579 elif np in dc: |
576 elif np in dc: |
580 add((nn, 'm', st)) |
577 add((nn, 'm', st)) |
581 found.sort() |
578 return util.sort(found) |
582 return found |
|
583 |
579 |
584 # step one, find all files that match our criteria |
580 # step one, find all files that match our criteria |
585 files.sort() |
581 for ff in util.sort(files): |
586 for ff in files: |
|
587 nf = normpath(ff) |
582 nf = normpath(ff) |
588 nn = self.normalize(nf) |
583 nn = self.normalize(nf) |
589 f = _join(ff) |
584 f = _join(ff) |
590 try: |
585 try: |
591 st = lstat(f) |
586 st = lstat(f) |
615 elif ff in dc: |
610 elif ff in dc: |
616 yield 'm', nf, st |
611 yield 'm', nf, st |
617 |
612 |
618 # step two run through anything left in the dc hash and yield |
613 # step two run through anything left in the dc hash and yield |
619 # if we haven't already seen it |
614 # if we haven't already seen it |
620 ks = dc.keys() |
615 for k in util.sort(dc): |
621 ks.sort() |
|
622 for k in ks: |
|
623 if k in known: |
616 if k in known: |
624 continue |
617 continue |
625 known[k] = 1 |
618 known[k] = 1 |
626 if imatch(k): |
619 if imatch(k): |
627 yield 'm', k, None |
620 yield 'm', k, None |