Python warning which can be catched by means of the Python warning
framework.
It also adds two new APIs which hopefully make it easier for Python
to switch to buffer overflow safe [v]snprintf() APIs for error
reporting et al. The two new APIs are PyOS_snprintf() and
PyOS_vsnprintf() and work just like the standard ones in many
C libs. On platforms which have snprintf(), the native APIs are used,
on all other an emulation with snprintf() tries to do its best.
GUI inserting those once before shortly after I started using it, but
don't know what triggers it -- presumably something in the "expert" view
(which is, suitably enough, unsuited to experts <wink>).
plain unprivileged User acct:
+ Had to duplicate Wise's Uninstal.wse script, in order to change the line
at its end that unconditionally tries to write uninstall info under HKLM.
This is our new file Uninstal.wse, which must be included by python20.wse
instead of using Wise's version.
+ In every other case we write to HKLM, also write to HKCU instead (we
were already doing that in *most* places, but not quite all).
+ If the user doesn't have admin privs, the DLLs we usually write to the
system dir are written to the root of the Python installation instead.
That's python22.dll, plus the two MSVC runtime DLLs.
+ Added a new component "Register file extensions". Registering .py etc
is done under HKEY_CLASSES_ROOT, and that also requires admin privs;
i.e., AFAICT it's impossible for an unprivileged user to accomplish this.
In the component selection dialog, if the user doesn't have admin privs
I gray out this new component so the user knows they aren't getting file
extensions.
After all that, Python installs, the Start Menu entries are OK, it runs
its test suite to completion, and the uninstaller works too. Only known
problem so far is that the integration with Win2K's Add/Remove subsystem
isn't quite right yet in this irritating case.
Fix suggested by Michael Hudson: Raise TypeError if attribute name
passed to getattr() is not a string or Unicode. There is some
unfortunate duplication of code between builtin_getattr() and
PyObject_GetAttr(), but it appears to be unavoidable.
And remove all the extern decls in the middle of .c files.
Apparently, it was excluded from the header file because it is
intended for internal use by the interpreter. It's still intended for
internal use and documented as such in the header file.
If pyexpat is not available and more than one attempt is made to load
an expat-based xml parser, an empty xml.parser.expat module will be
created. This empty module will confuse xml.sax.expatreader into
thinking that pyexpat is available.
The ugly fix is to verify that the expat module actually defines the
names that are imported from pyexpat.
1. Only .py files were getting installed.
2. Empty CVS directories were getting created.
Both were due to trying to get away with "recursively copy *.py" one-
liner scripting.
Got rid of useless "Welcome" screen.
Folded Tcl/Tk into the main Python component.
Bug introduced during upgrade: Start Menu entries didn't work if
installation was to a path with an embedded space, because the
enclosing quotes somehow got dropped on the cmdline args. Repaired.
Years of wizard-generated code blocks left this script hard to read.
Added many more comments, blank lines, and rearranged related code
into related blocks where they had drifted apart.
Added %_PYMAJOR_% and %_PYMINOR_% compiler vrbls, and reworked script
items to use them as appropriate. This should slash the amount of
hand-fiddling needed when version numbers change. Indeed, in the
body of the script, only the first line should need changing now.
Deleted unreferenced wizard-generated compiler vrbls.
"relative paths" option is enabled, 8.1 rewrites *every* path to be
relative to PCbuild (the dir containing the .wse script), even absolute
paths you type in by hand, paths to the Wise installation itself, and even
paths to the Windows directories (sheesh). Only way to stop it is to
start a path with a variable reference, and we screwed ourselves before
by not using the predefined %_WISE_% vrbl to point to the Wise
installation. Repaired that old, repeated and well-hidden mistake.
Also:
+ Got rid of the %_SRC_% vrbl (such paths always relative to PCBuild now).
+ Changed the %_DOC_% vrbl to prompt for the location of the unzipped
HTML files (defaults to ..\html, cuz that's where I put them, but I
expect I'll change that later cuz I always hated mixing the generated
docs into the CVS tree ... Guido, if you're reading this, where did you
unpack the docs when building a Windows installer? Happy to oblige.).
+ Stopped the generated installer from filling up the entire screen (got
rid of the massive blue background gradient -- new option).
+ Added the helpful app publisher and app URL registry entries that Win2K
displays in its version of Add/Remove.
the old script without any complaints, didn't demand any manual changes,
and built a working installer from it that acts very much like the old one.
It did add a few script items, and changed one, so checking it in now
before I break everything again.