I'm not really familiar with C APIs, but I thought that the 0/-1 inconsistency was necessary because 0 may be a valid return value in some contexts, and there is no -1 if you're using a unsigned integer type. Looking quickly at the Python docs, the pattern seems to be that functions returning a pointer return NULL on error, and the rest use -1 to indicate an error - though I don't know if that's always followed.
I would think that API changes don't belong in a 1.9.x release, but that's not my decision. :-) On 15 June 2018 at 23:45, Lenard Lindstrom <le...@telus.net> wrote: > Hi everyone, > > A part of the preparation for pygame 2 I have documented the functions and > types exported by various pygame extension modules. For instance, the > pygame.surface module exports C functions for creating and accessing > pygame.Surface instances. These are used in other modules, such as > pygame.display and pygame.image, where surfaces are created. In total, > twelve extension modules make C functions available for use in other > extension modules. > > While documenting the C API I renamed C types, functions, and variables to > be consistent with Python's PEP 7. Names starting with 'Py' and 'Pg' were > changed to use the 'pg' prefix. This avoids conflicts with possible future > Python C functions as well as make the pygame naming convention consistent. > I have also found other inconsistencies in the pygame C API. Functions that > return a Python object are consistent in returning NULL to indicate an > error. However, for functions that return an error code, some may use -1 to > indicate an error, while others use 0. Should I make an effort to make > pygame error handling consistent within the C API? Would it make sense to > do this before pygame 1.9.4 is released, or wait until pygame 2? Python is > not much help since it has mixed error codes within its C API. > > Lenard Lindstrom > > >