History for Pillow/path.c
Commits on Jun 30, 2013
Commits on Apr 12, 2013
Commits on Mar 8, 2013
Commits on Jan 10, 2013
cgohlke committed with Brian Crowell
This is Gohlke's fix for two issues: negative indexes on paths were not resolved to the correct index, and path slicing didn't work. His fix for slicing is related to the one found at: http://renesd.blogspot.com/2009/07/python3-c-api-simple-slicing-sqslice.html With this commit, all 79 tests (82 minus the three skipped ones) run successfully on Python 2.6.8, Python 2.7.3rc2, and Python 3.2.3.
This commit: * Adds Python 3 module initialization functions. I split out the main init of each module into a static setup_module function. * Adds a py3.h which unifies int/long in Python 3 and unicode/bytes in Python 2. _imagingft.c unfortunately looks a little kludgy after this because it was already using PyUnicode functions, and I had to mix and match there manually. With this commit, the modules all build successfully under Python 3. What this commit does NOT do is patch all of the uses of PyArg_ParseTuple and Py_BuildValue, which all need to be checked for proper use of bytes and unicode codes. It also does not let selftest.py run yet, because there are probably hundreds of issues to fix in the Python code itself.
Other ports have taken advantage of the fact that Python 3 has wrappers for the old buffer protocol, but there's a significant disadvantage: you can't let the buffered object know when you're done with it. Since Python 2.6 supports the new protocol, we just go ahead and move to it.
This updates several Python type definitions and uses to bring us closer to Python 3 compatibility. This includes: * Replacing staticforward and statichere with static. These were a hack for old compilers and are not supported/needed anymore. * Using Py_TYPE() instead of ob_type; ob_type is hidden in Py3. * Replacing getattr with getters/setters. getattr is sort-of supported in Py3, but Py_FindMethod is not. So we just use the newer methods/getsetters mechanisms and start using PyType_Ready everywhere. * Use PyVarObject_HEAD_INIT for types, since types are PyVarObject. * Use PyMODINIT_FUNC for module initialization functions. There are some tab/space issues in this commit. I'm set for spaces; the source is a little schizo.
Commits on Jul 31, 2010