[Python-Dev] PEP 370, open questions (original) (raw)

Mark Hammond mhammond at skippinet.com.au
Thu Jan 17 12:31:26 CET 2008


Isn't SHGetSpecialFolderPath() XP and newer only?

MSDN documents: Minimum operating systems Windows 2000, Windows NT 4.0 with Internet Explorer 4.0, Windows 98, Windows 95 with Internet Explorer 4.0

The patch is available at http://bugs.python.org/issue1763. Maybe you have some time to review it?

Sure - I'll do my best to do that in the next 24 hours - feel free to prod if I don't :)

As far as I understand and remember the Windows API SHGetFolderPath() and friends are retrieving the information from the registry. The shell folder keys are (IIRC) REGEXPANDSZ keys which are expanded with the function ExpandEnvironmentStrings(). So at the end CSIDLAPPDATA uses the %APPDATA% env var -- unless I'm totally mistaken.

I'm not sure exactly how that is implemented, and I'm not necessarily arguing you must call that function (eg, it's not hard to argue the env-var may be preferred, as it offers an easy override) - it's just that the PEP shouldn't be silent about the issue.

Something I meant to mention was that supporting multiple "per-user" directories could be considered - that way CSIDL_LOCAL_APPDATA could be added later. YAGNI is easy to justify here, but now is the time to consider such issues.

PS: Have you tested the new PCbuild directory for VS 2008? Martin said that you know how to create a new set of base addresses for pre- linking. dllbasent.txt is probably outdated.

I'm afaid I haven't. The base-addresses are fairly easily tested - just import each and every module listed while running under the debugger - if you see messages in the output window telling you about relocation, you have a problem :) pywin32 is screaming for a new release (it didn't manage a single one in 2007!) and that is likely to happen before I get to play with the new-fangled stuff

Mark



More information about the Python-Dev mailing list