Show More
@@ -238,6 +238,38 else: | |||
|
238 | 238 | # Fallback to the likely inadequate Python builtin function. |
|
239 | 239 | realpath = os.path.realpath |
|
240 | 240 | |
|
241 | if sys.platform == 'cygwin': | |
|
242 | # workaround for cygwin, in which mount point part of path is | |
|
243 | # treated as case sensitive, even though underlying NTFS is case | |
|
244 | # insensitive. | |
|
245 | ||
|
246 | # default mount points | |
|
247 | cygwinmountpoints = sorted([ | |
|
248 | "/usr/bin", | |
|
249 | "/usr/lib", | |
|
250 | "/cygdrive", | |
|
251 | ], reverse=True) | |
|
252 | ||
|
253 | # use upper-ing as normcase as same as NTFS workaround | |
|
254 | def normcase(path): | |
|
255 | pathlen = len(path) | |
|
256 | if (pathlen == 0) or (path[0] != os.sep): | |
|
257 | # treat as relative | |
|
258 | return encodingupper(path) | |
|
259 | ||
|
260 | # to preserve case of mountpoint part | |
|
261 | for mp in cygwinmountpoints: | |
|
262 | if not path.startswith(mp): | |
|
263 | continue | |
|
264 | ||
|
265 | mplen = len(mp) | |
|
266 | if mplen == pathlen: # mount point itself | |
|
267 | return mp | |
|
268 | if path[mplen] == os.sep: | |
|
269 | return mp + encodingupper(path[mplen:]) | |
|
270 | ||
|
271 | return encodingupper(path) | |
|
272 | ||
|
241 | 273 | def shellquote(s): |
|
242 | 274 | if os.sys.platform == 'OpenVMS': |
|
243 | 275 | return '"%s"' % s |
General Comments 0
You need to be logged in to leave comments.
Login now