/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/osutils.py

  • Committer: Jelmer Vernooij
  • Date: 2018-08-26 01:29:46 UTC
  • mto: This revision was merged to the branch mainline in revision 7103.
  • Revision ID: jelmer@jelmer.uk-20180826012946-59p0yim5saahv66h
Fix bad fs tests on Python 3.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1888
1888
        See DirReader.read_dir for details.
1889
1889
        """
1890
1890
        _utf8_encode = self._utf8_encode
 
1891
        _fs_decode = lambda s: s.decode(_fs_enc)
 
1892
        _fs_encode = lambda s: s.encode(_fs_enc)
1891
1893
        _lstat = os.lstat
1892
1894
        _listdir = os.listdir
1893
1895
        _kind_from_mode = file_kind_from_stat_mode
1900
1902
 
1901
1903
        dirblock = []
1902
1904
        append = dirblock.append
1903
 
        for name in _listdir(top):
 
1905
        for name_native in _listdir(top.encode('utf-8')):
1904
1906
            try:
1905
 
                name_utf8 = _utf8_encode(name)[0]
 
1907
                name = _fs_decode(name_native)
1906
1908
            except UnicodeDecodeError:
1907
1909
                raise errors.BadFilenameEncoding(
1908
 
                    _utf8_encode(relprefix)[0] + name, _fs_enc)
 
1910
                    relprefix + name_native, _fs_enc)
 
1911
            name_utf8 = _utf8_encode(name)[0]
1909
1912
            abspath = top_slash + name
1910
1913
            statvalue = _lstat(abspath)
1911
1914
            kind = _kind_from_mode(statvalue.st_mode)
2372
2375
            data, _ = self.encode(object, self.errors)
2373
2376
            self.stream.write(data)
2374
2377
 
 
2378
 
2375
2379
if sys.platform == 'win32':
2376
2380
    def open_file(filename, mode='r', bufsize=-1):
2377
2381
        """This function is used to override the ``open`` builtin.