From 3f12a0d62b6df96179a84e63bb12eb030e1af4a1 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Mon, 29 Jun 2026 12:29:10 +0200 Subject: [PATCH] [3.14] gh-71450: Document that Tcl sets the HOME variable on Windows (GH-152568) (GH-152575) Also fix the ntpath.expanduser() docstring, which no longer uses $HOME. (cherry picked from commit 1540584d5d0b6483b78256194825e76d2e52ad21) Co-authored-by: Serhiy Storchaka Co-authored-by: Claude Opus 4.8 --- Doc/library/tkinter.rst | 8 ++++++++ Lib/ntpath.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Doc/library/tkinter.rst b/Doc/library/tkinter.rst index 9f05fb5640a3..8bac17f69382 100644 --- a/Doc/library/tkinter.rst +++ b/Doc/library/tkinter.rst @@ -3241,6 +3241,14 @@ Toplevel widgets profile files is the :envvar:`HOME` environment variable or, if that isn't defined, then :data:`os.curdir`. + .. note:: + + On Windows, creating a Tcl interpreter (by instantiating :class:`Tk` or + calling :func:`Tcl`) sets the :envvar:`HOME` environment variable for + the process, if it is not already set, to ``%HOMEDRIVE%%HOMEPATH%`` (or + :envvar:`USERPROFILE`, or ``c:\``). This is done by Tcl and can affect + other code that reads :envvar:`HOME`. + .. attribute:: tk The Tk application object created by instantiating :class:`Tk`. This diff --git a/Lib/ntpath.py b/Lib/ntpath.py index eb127ec2632c..36da5b7cb0fb 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -345,7 +345,7 @@ def _isreservedname(name): def expanduser(path): """Expand ~ and ~user constructs. - If user or $HOME is unknown, do nothing.""" + If user or home directory is unknown, do nothing.""" path = os.fspath(path) if isinstance(path, bytes): seps = b'\\/' -- 2.47.3