Author eryksun
Recipients Anthony Sottile, eryksun, paul.moore, steve.dower, tim.golden, zach.ware
Date 2018-01-12.17:34:16
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1515778456.64.0.467229070634.issue32539@psf.upfronthosting.co.za>
In-reply-to
Content
This should be fixed. That said, we have to use a unicode string for a long path anyway. Prior to Windows 8, the conversion from ANSI to Unicode in the system runtime library uses a static MAX_PATH buffer, so the ANSI API is inherently limited to MAX_PATH. You'll see this in the documentation of all functions that allow using \\?\ extended paths:

    In the ANSI version of this function, the name is limited to 
    MAX_PATH characters. To extend this limit to 32,767 wide 
    characters, call the Unicode version of the function and 
    prepend "\\?\" to the path.

Decoding ANSI strings uses a dynamically-sized buffer in Windows 8, but the change is undocumented and should not be relied upon.

Unfortunately, we can't reliably use a raw unicode string literal in Python 2, since \u and \U escapes are still evaluated. We can instead use forward slashes and normalize via os.path.normpath.
History
Date User Action Args
2018-01-12 17:34:16eryksunsetrecipients: + eryksun, paul.moore, tim.golden, zach.ware, steve.dower, Anthony Sottile
2018-01-12 17:34:16eryksunsetmessageid: <1515778456.64.0.467229070634.issue32539@psf.upfronthosting.co.za>
2018-01-12 17:34:16eryksunlinkissue32539 messages
2018-01-12 17:34:16eryksuncreate