Show More
@@ -9,6 +9,7 b' from __future__ import absolute_import, ' | |||
|
9 | 9 | |
|
10 | 10 | import locale |
|
11 | 11 | import os |
|
12 | import re | |
|
12 | 13 | import unicodedata |
|
13 | 14 | |
|
14 | 15 | from .pycompat import getattr |
@@ -352,6 +353,8 b' if not _nativeenviron:' | |||
|
352 | 353 | environ[tolocal(k.encode('utf-8'))] = tolocal(v.encode('utf-8')) |
|
353 | 354 | |
|
354 | 355 | |
|
356 | DRIVE_RE = re.compile(b'^[a-z]:') | |
|
357 | ||
|
355 | 358 | if pycompat.ispy3: |
|
356 | 359 | # os.getcwd() on Python 3 returns string, but it has os.getcwdb() which |
|
357 | 360 | # returns bytes. |
@@ -363,7 +366,21 b' if pycompat.ispy3:' | |||
|
363 | 366 | # os.path.realpath(), which is used on ``repo.root``. Since those |
|
364 | 367 | # strings are compared in various places as simple strings, also call |
|
365 | 368 | # realpath here. See https://bugs.python.org/issue40368 |
|
366 | getcwd = lambda: strtolocal(os.path.realpath(os.getcwd())) # re-exports | |
|
369 | # | |
|
370 | # However this is not reliable, so lets explicitly make this drive | |
|
371 | # letter upper case. | |
|
372 | # | |
|
373 | # note: we should consider dropping realpath here since it seems to | |
|
374 | # change the semantic of `getcwd`. | |
|
375 | ||
|
376 | def getcwd(): | |
|
377 | cwd = os.getcwd() # re-exports | |
|
378 | cwd = os.path.realpath(cwd) | |
|
379 | cwd = strtolocal(cwd) | |
|
380 | if DRIVE_RE.match(cwd): | |
|
381 | cwd = cwd[0:1].upper() + cwd[1:] | |
|
382 | return cwd | |
|
383 | ||
|
367 | 384 | else: |
|
368 | 385 | getcwd = os.getcwdb # re-exports |
|
369 | 386 | else: |
General Comments 0
You need to be logged in to leave comments.
Login now