~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: abentley
  • Date: 2006-04-21 03:34:29 UTC
  • mto: This revision was merged to the branch mainline in revision 1683.
  • Revision ID: abentley@lappy-20060421033429-79932e50ab316980
Strip trailing slashes in a platform-sensible way

Show diffs side-by-side

added added

removed removed

Lines of Context:
181
181
dirname = os.path.dirname
182
182
basename = os.path.basename
183
183
 
 
184
MIN_ABS_PATHLENGTH = 1
 
185
 
184
186
if os.name == "posix":
185
187
    # In Python 2.4.2 and older, os.path.abspath and os.path.realpath
186
188
    # choke on a Unicode string containing a relative path if
217
219
    def rename(old, new):
218
220
        fancy_rename(old, new, rename_func=os.rename, unlink_func=os.unlink)
219
221
 
 
222
    MIN_ABS_PATHLENGTH = 3
220
223
 
221
224
def normalizepath(f):
222
225
    if hasattr(os.path, 'realpath'):
599
602
    on string prefixes, assuming that '/u' is a prefix of '/u2'.  This
600
603
    avoids that problem.
601
604
    """
602
 
    if sys.platform != "win32":
603
 
        minlength = 1
604
 
    else:
605
 
        minlength = 3
606
 
    assert len(base) >= minlength, ('Length of base must be equal or exceed the'
607
 
        ' platform minimum length (which is %d)' % minlength)
 
605
 
 
606
    assert len(base) >= MIN_ABS_PATHLENGTH, ('Length of base must be equal or'
 
607
        ' exceed the platform minimum length (which is %d)' % 
 
608
        MIN_ABS_PATHLENGTH)
608
609
    rp = abspath(path)
609
610
 
610
611
    s = []
657
658
 
658
659
def supports_executable():
659
660
    return sys.platform != "win32"
 
661
 
 
662
 
 
663
def strip_trailing_slash(path):
 
664
    """Strip trailing slash, except for root paths.
 
665
    The definition of 'root path' is platform-dependent.
 
666
    """
 
667
    if len(path) != MIN_ABS_PATHLENGTH and path[-1] == '/':
 
668
        return path[:-1]
 
669
    else:
 
670
        return path