~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: jameinel
  • Date: 2008-01-28 16:59:52 UTC
  • mto: This revision was merged to the branch mainline in revision 3208.
  • Revision ID: jameinel@samus-20080128165952-nqybfnus41chsd4x
Fix bug #185458, switch from NFKC to NFC and add tests for filenames that would be broken under NFKC

Show diffs side-by-side

added added

removed removed

Lines of Context:
360
360
 
361
361
 
362
362
def _mac_getcwd():
363
 
    return unicodedata.normalize('NFKC', os.getcwdu())
 
363
    return unicodedata.normalize('NFC', os.getcwdu())
364
364
 
365
365
 
366
366
# Default is to just use the python builtins, but these can be rebound on
1014
1014
    On platforms where the system does not normalize filenames 
1015
1015
    (Windows, Linux), you have to access a file by its exact path.
1016
1016
 
1017
 
    Internally, bzr only supports NFC/NFKC normalization, since that is 
 
1017
    Internally, bzr only supports NFC normalization, since that is 
1018
1018
    the standard for XML documents.
1019
1019
 
1020
1020
    So return the normalized path, and a flag indicating if the file
1021
1021
    can be accessed by that path.
1022
1022
    """
1023
1023
 
1024
 
    return unicodedata.normalize('NFKC', unicode(path)), True
 
1024
    return unicodedata.normalize('NFC', unicode(path)), True
1025
1025
 
1026
1026
 
1027
1027
def _inaccessible_normalized_filename(path):
1028
1028
    __doc__ = _accessible_normalized_filename.__doc__
1029
1029
 
1030
 
    normalized = unicodedata.normalize('NFKC', unicode(path))
 
1030
    normalized = unicodedata.normalize('NFC', unicode(path))
1031
1031
    return normalized, normalized == path
1032
1032
 
1033
1033