~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/ftp.py

  • Committer: John Arbash Meinel
  • Date: 2006-08-23 23:21:12 UTC
  • mfrom: (1953 +trunk)
  • mto: This revision was merged to the branch mainline in revision 1955.
  • Revision ID: john@arbash-meinel.com-20060823232112-f755378d583374a8
[merge] bzr.dev 1953

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
import random
38
38
from warnings import warn
39
39
 
 
40
from bzrlib import (
 
41
    errors,
 
42
    urlutils,
 
43
    )
 
44
from bzrlib.trace import mutter, warning
40
45
from bzrlib.transport import (
41
 
    Transport,
42
46
    Server,
43
47
    split_url,
 
48
    Transport,
44
49
    )
45
 
import bzrlib.errors as errors
46
 
from bzrlib.trace import mutter, warning
47
50
import bzrlib.ui
48
51
 
49
52
_have_medusa = False
192
195
 
193
196
    def _abspath(self, relpath):
194
197
        assert isinstance(relpath, basestring)
195
 
        relpath = urllib.unquote(relpath)
 
198
        relpath = urlutils.unescape(relpath)
196
199
        relpath_parts = relpath.split('/')
197
200
        if len(relpath_parts) > 1:
198
201
            if relpath_parts[0] == '':
215
218
        # Possibly, we could use urlparse.urljoin() here, but
216
219
        # I'm concerned about when it chooses to strip the last
217
220
        # portion of the path, and when it doesn't.
218
 
        return '/'.join(basepath) or '/'
 
221
 
 
222
        # XXX: It seems that ftplib does not handle Unicode paths
 
223
        # at the same time, medusa won't handle utf8 paths
 
224
        # So if we .encode(utf8) here, then we get a Server failure.
 
225
        # while if we use str(), we get a UnicodeError, and the test suite
 
226
        # just skips testing UnicodePaths.
 
227
        return str('/'.join(basepath) or '/')
219
228
    
220
229
    def abspath(self, relpath):
221
230
        """Return the full url to the given relative path.