debugcommands: print out the editor that was searched for (post shlexsplit)
A user was in #mercurial and had the following settings in their hgrc:
[ui]
editor = C:\home\npp\notepad++.exe -multiInst -nosession
After shlexsplit, the first argument was mangled into C:homenppnotepad++.exe,
which was quite unlikely to exist. It took many back-and-forths to identify
that adding " characters around the exe would fix the issue; we were thinking
that it's because something was incorrectly *not* splitting and adding/moving
the " characters fixed the split boundaries, but when testing afterward it
appears that it's just mangled.
I considered adding an informational if pycompat.iswindows and \ in the string
about this issue, but was worried that might have too many false positives and
did not do so at this time.
Differential Revision: https://phab.mercurial-scm.org/D1808
from __future__ import absolute_import
from __future__ import print_function
import unittest
from mercurial import (
mdiff,
)
class splitnewlinesTests(unittest.TestCase):
def test_splitnewlines(self):
cases = {'a\nb\nc\n': ['a\n', 'b\n', 'c\n'],
'a\nb\nc': ['a\n', 'b\n', 'c'],
'a\nb\nc\n\n': ['a\n', 'b\n', 'c\n', '\n'],
'': [],
'abcabc': ['abcabc'],
}
for inp, want in cases.iteritems():
self.assertEqual(mdiff.splitnewlines(inp), want)
if __name__ == '__main__':
import silenttestrunner
silenttestrunner.main(__name__)