~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/urlutils.py

  • Committer: John Arbash Meinel
  • Date: 2006-06-11 01:59:03 UTC
  • mto: (1711.7.2 win32)
  • mto: This revision was merged to the branch mainline in revision 1796.
  • Revision ID: john@arbash-meinel.com-20060611015903-a8bb9a06144e70d1
switch to prefering lowercase drive letters, since that matches os.getcwd() drive letters

Show diffs side-by-side

added added

removed removed

Lines of Context:
175
175
        or win32_url[1] not in  '|:'
176
176
        or win32_url[2] != '/'):
177
177
        raise errors.InvalidURL(url, 'Win32 file urls start with'
178
 
                ' file:///X:/, where X is a valid drive letter')
179
 
    return win32_url[0].upper() + u':' + unescape(win32_url[2:])
 
178
                ' file:///x:/, where x is a valid drive letter')
 
179
    # Preferentially using .lower() because os.getcwd() returns
 
180
    # paths with lowercase drive letters, and that helps
 
181
    # bzrlib.osutils.relpath() work correctly
 
182
    return win32_url[0].lower() + u':' + unescape(win32_url[2:])
180
183
 
181
184
 
182
185
def _win32_local_path_to_url(path):
192
195
    #       semantics, since 'nt' is not an available module.
193
196
    win32_path = bzrlib.osutils._nt_normpath(
194
197
        bzrlib.osutils._win32_abspath(path)).replace('\\', '/')
195
 
    return 'file:///' + win32_path[0].upper() + ':' + escape(win32_path[2:])
 
198
    return 'file:///' + win32_path[0].lower() + ':' + escape(win32_path[2:])
196
199
 
197
200
 
198
201
local_path_to_url = _posix_local_path_to_url
328
331
        if path[2:3] not in ':|' or path[3:4] not in '\\/':
329
332
            raise errors.InvalidURL(url, 
330
333
                'win32 file:/// paths need a drive letter')
331
 
        url_base += path[0:3] # file:// + /C:
 
334
        url_base += path[0:3] # file:// + /c:
332
335
        path = path[3:] # /foo
333
336
 
334
337
    if exclude_trailing_slash and len(path) > 1 and path.endswith('/'):
356
359
        file:///foo/      => file:///foo
357
360
        # This is unique on win32 platforms, and is the only URL
358
361
        # format which does it differently.
359
 
        file:///C|/       => file:///C:/
 
362
        file:///c|/       => file:///c:/
360
363
    """
361
364
    if not url.endswith('/'):
362
365
        # Nothing to do