[Python-Dev] ntpath r54364 (was: PEP 370, open questions)
Paul Moore
p.f.moore at gmail.com
Thu Jan 17 18:32:18 CET 2008
On 17/01/2008, Tim Golden <mail at timgolden.me.uk> wrote:
> Ummm... see my earlier point a few posts back which refers
> to r54364 which gave priority to USERPROFILE over HOMEDRIVE/HOMEPATH
Sorry. I'd not realised this was a post-2.5 revision (ie, not in
released code yet...)
Looking at the change, it appears that the point is to support ~user,
which it does by getting the current user's home, and replacing the
last part, on the assumption that it is the user name.
This works for USERPROFILE (in my experience, I don't know if there
are corner cases where it isn't true) but does *not* work if HOME is
set, and only works otherwise by preferring USERPROFILE over
HOMEDRIVE/HOMEPATH (and I believe that preference is misleading, as
USERPROFILE is always set if HOMEDRIVE/PATH is, so there's no point
checking for HD/HP if USERDIR fails).
I'd recommend that this change be reverted. To correctly get another
user's home directory would involve reading (via the registry, or
maybe some utility function I couldn't find at a quick glance) the
value of HOMEDRIVE/HOMEPATH which is set for the other user. (In fact,
given that I guess these could be set in a login script, it's entirely
possible that the information simply isn't available).
I don't believe that ~user is a useful concept on Windows, and I'd
rather that code using it fail than give what are quite probably
unreliable answers.
If someone wants to support ~user where user is the name of the
current user, then that could be covered by an explicit check that the
name matches, and if so use the code for '~', but personally I don't
think that's worth it.
Paul.
More information about the Python-Dev
mailing list