Rev 3698: Fix up some of the path joining logic. in http://bzr.arbash-meinel.com/branches/bzr/1.8-dev/readdir
John Arbash Meinel
john at arbash-meinel.com
Tue Sep 9 17:14:02 BST 2008
At http://bzr.arbash-meinel.com/branches/bzr/1.8-dev/readdir
------------------------------------------------------------
revno: 3698
revision-id: john at arbash-meinel.com-20080909161337-nzigrqkecj4ncgt9
parent: robertc at robertcollins.net-20080909015303-183ct6bgha6e8tg7
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: readdir
timestamp: Tue 2008-09-09 11:13:37 -0500
message:
Fix up some of the path joining logic.
-------------- next part --------------
=== modified file 'bzrlib/_walkdirs_win32.pyx'
--- a/bzrlib/_walkdirs_win32.pyx 2008-09-09 01:53:03 +0000
+++ b/bzrlib/_walkdirs_win32.pyx 2008-09-09 16:13:37 +0000
@@ -163,7 +163,8 @@
def top_prefix_to_starting_dir(self, top, prefix=""):
"""See DirReader.top_prefix_to_starting_dir."""
- return (osutils.safe_utf8(prefix), osutils.safe_unicode(top))
+ return (osutils.safe_utf8(prefix), None, None, None,
+ osutils.safe_unicode(top))
cdef object _get_kind(self, WIN32_FIND_DATAW *data):
if data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY:
@@ -201,7 +202,7 @@
relprefix = ''
top_slash = top + '/'
- top_star = top + '*'
+ top_star = top_slash + '*'
dirblock = []
@@ -220,11 +221,11 @@
continue
name_unicode = _get_name(&search_data)
name_utf8 = PyUnicode_AsUTF8String(name_unicode)
- PyList_Append(dirblock,
- (relprefix + name_utf8, name_utf8,
+ PyList_Append(dirblock,
+ (relprefix + name_utf8, name_utf8,
self._get_kind(&search_data),
self._get_stat_value(&search_data),
- top + name_unicode))
+ top_slash + name_unicode))
result = FindNextFileW(hFindFile, &search_data)
# FindNextFileW sets GetLastError() == ERROR_NO_MORE_FILES when it
=== modified file 'bzrlib/tests/test__walkdirs_win32.py'
--- a/bzrlib/tests/test__walkdirs_win32.py 2008-09-09 01:53:03 +0000
+++ b/bzrlib/tests/test__walkdirs_win32.py 2008-09-09 16:13:37 +0000
@@ -18,7 +18,10 @@
import errno
-from bzrlib import tests
+from bzrlib import (
+ osutils,
+ tests,
+ )
class _Win32ReadDirFeature(tests.Feature):
@@ -52,11 +55,17 @@
return [info[:3] + info[4:] for info in dirblock]
def assertWalkdirs(self, expected, top, prefix=''):
- finder = self.walkdirs_utf8(top, prefix=prefix)
- result = []
- for dirname, dirblock in finder:
- result.append((dirname, self._remove_stat_from_dirblock(dirblock)))
- self.assertEqual(expected, result)
+ old_selected_dir_reader = osutils._selected_dir_reader
+ try:
+ osutils._selected_dir_reader = self.reader
+ finder = osutils._walkdirs_utf8(top, prefix=prefix)
+ result = []
+ for dirname, dirblock in finder:
+ dirblock = self._remove_stat_from_dirblock(dirblock)
+ result.append((dirname, dirblock))
+ self.assertEqual(expected, result)
+ finally:
+ osutils._selected_dir_reader = old_selected_dir_reader
def assertReadDir(self, expected, prefix, top_unicode):
result = self._remove_stat_from_dirblock(
@@ -66,8 +75,8 @@
def test_top_prefix_to_starting_dir(self):
# preparing an iteration should create a unicode native path.
self.assertEqual(('prefix', None, None, None, u'\x12'),
- self.reader.top_prefix_to_starting_dir('prefix',
- u'\x12'.encode('utf8')))
+ self.reader.top_prefix_to_starting_dir(u'\x12'.encode('utf8'),
+ 'prefix'))
def test_empty_directory(self):
self.assertReadDir([], 'prefix', u'.')
More information about the bazaar-commits
mailing list