# HG changeset patch # User Matt Harbison # Date 2015-05-02 00:17:00 # Node ID 30b910fea244374e5a0418fa1bc95f3b47c1fa7d # Parent 9570587b6986e28edc50f3d9a156da7ff0b0a751 windows: add doctest for shellquote() This is actual test coverage for issue4629. The test changes in eea3977e6fca were simply the addition of quotes to the output, not ensuring that strings with backslashes are quoted. diff --git a/mercurial/windows.py b/mercurial/windows.py --- a/mercurial/windows.py +++ b/mercurial/windows.py @@ -162,6 +162,18 @@ def samestat(s1, s2): _quotere = None _needsshellquote = None def shellquote(s): + r""" + >>> shellquote(r'C:\Users\xyz') + '"C:\\Users\\xyz"' + >>> shellquote(r'C:\Users\xyz/mixed') + '"C:\\Users\\xyz/mixed"' + >>> # Would be safe not to quote too, since it is all double backslashes + >>> shellquote(r'C:\\Users\\xyz') + '"C:\\\\Users\\\\xyz"' + >>> # But this must be quoted + >>> shellquote(r'C:\\Users\\xyz/abc') + '"C:\\\\Users\\\\xyz/abc"' + """ global _quotere if _quotere is None: _quotere = re.compile(r'(\\*)("|\\$)')