[Python-Dev] Adding insint() function
Tim Peters
tim_one@email.msn.com
Fri, 18 Aug 2000 13:52:20 -0400
[Andrew Kuchling]
> Four modules define insint() functions to insert an integer into a
Five or macro
> dictionary in order to initialize constants in their module
> dictionaries:
>
> kronos Modules>grep -l insint *.c
> pcremodule.c
> shamodule.c
> socketmodule.c
> zlibmodule.c
> kronos Modules>
It's actually a macro in shamodule. Missing is _winreg.c (in the PC
directory). The perils of duplication manifest in subtle differences among
these guys (like _winreg's inserts a long while the others insert an int --
and _winreg is certainly more correct here because a Python int *is* a C
long; and they differ in treatment of errors, and it's not at all clear
that's intentional).
> ...
> This duplication bugs me. Shall I submit a patch to add an API
> convenience function to do this, and change the modules to use it?
> Suggested prototype and name: PyDict_InsertInteger( dict *, string,
> long)
+1, provided the treatment of errors is clearly documented.