From 2d5157eb913bdf0eeefd0016ab6a621dd1727525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Fri, 4 Jun 2010 19:50:26 +0000 Subject: Merged revisions 81701 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r81701 | martin.v.loewis | 2010-06-04 21:39:07 +0200 (Fr, 04 Jun 2010) | 2 lines Issue #6470: Drop UNC prefix in FixTk.py Patch by Christop Gohlke and Amaury Forgeot d'Arc. ........ --- Lib/test/test_tcl.py | 25 +++++++++++++++++++++++++ Lib/tkinter/_fix.py | 2 ++ Misc/NEWS | 2 ++ 3 files changed, 29 insertions(+) diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py index 0df1fea..5bd781d 100644 --- a/Lib/test/test_tcl.py +++ b/Lib/test/test_tcl.py @@ -127,6 +127,31 @@ class TclTest(unittest.TestCase): tcl = self.interp self.assertRaises(TclError,tcl.eval,'package require DNE') + def testLoadWithUNC(self): + import sys + if sys.platform != 'win32': + return + + # Build a UNC path from the regular path. + # Something like + # \\%COMPUTERNAME%\c$\python27\python.exe + + fullname = os.path.abspath(sys.executable) + if fullname[1] != ':': + return + unc_name = r'\\%s\%s$\%s' % (os.environ['COMPUTERNAME'], + fullname[0], + fullname[3:]) + + with test_support.EnvironmentVarGuard() as env: + env.unset("TCL_LIBRARY") + f = os.popen('%s -c "import Tkinter; print Tkinter"' % (unc_name,)) + + self.assert_('Tkinter.py' in f.read()) + # exit code must be zero + self.assertEqual(f.close(), None) + + def test_main(): support.run_unittest(TclTest, TkinterTest) diff --git a/Lib/tkinter/_fix.py b/Lib/tkinter/_fix.py index c11d663..5a69d89 100644 --- a/Lib/tkinter/_fix.py +++ b/Lib/tkinter/_fix.py @@ -42,6 +42,8 @@ else: # Ignore leading \\?\ if s.startswith("\\\\?\\"): s = s[4:] + if s.startswith("UNC"): + s = "\\" + s[3:] return s prefix = os.path.join(sys.prefix,"tcl") diff --git a/Misc/NEWS b/Misc/NEWS index 51d1c3f..ee99737 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -398,6 +398,8 @@ C-API Library ------- +- Issue #6470: Drop UNC prefix in FixTk. + - Issue #4768: base64 encoded email body parts were incorrectly stored as binary strings. They are now correctly converted to strings. -- cgit v0.12