~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Martin Pool
  • Date: 2005-04-15 07:53:59 UTC
  • Revision ID: mbp@sourcefrog.net-20050415075359-e45b9cdcefc06fc8
- Windows path fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
319
319
    BzrError: ("sorry, '..' not allowed in path", [])
320
320
    """
321
321
    assert isinstance(p, types.StringTypes)
322
 
    ps = [f for f in p.split('/') if (f != '.' and f != '')]
 
322
 
 
323
    # split on either delimiter because people might use either on
 
324
    # Windows
 
325
    ps = re.split(r'[\\/]', p)
 
326
 
 
327
    rps = []
323
328
    for f in ps:
324
329
        if f == '..':
325
330
            bailout("sorry, %r not allowed in path" % f)
326
 
    return ps
 
331
        elif (f == '.') or (f == ''):
 
332
            pass
 
333
        else:
 
334
            rps.append(f)
 
335
    return rps
327
336
 
328
337
def joinpath(p):
329
338
    assert isinstance(p, list)
330
339
    for f in p:
331
340
        if (f == '..') or (f == None) or (f == ''):
332
341
            bailout("sorry, %r not allowed in path" % f)
333
 
    return '/'.join(p)
 
342
    return os.path.join(*p)
334
343
 
335
344
 
336
345
def appendpath(p1, p2):
337
346
    if p1 == '':
338
347
        return p2
339
348
    else:
340
 
        return p1 + '/' + p2
 
349
        return os.path.join(p1, p2)
341
350
    
342
351
 
343
352
def extern_command(cmd, ignore_errors = False):