ctypedef struct PyTypeObject:
pass
- object PyString_FromStringAndSize(char *p, Py_ssize_t len)
- int PyString_AsStringAndSize(obj, char **p, Py_ssize_t *len) except -1
int PyObject_AsReadBuffer(obj, void **buf, Py_ssize_t *len) except -1
- int PyObject_TypeCheck(obj, ty)
object PyInt_FromLong(long i)
object PyLong_FromUnsignedLong(unsigned long i)
- char *PyString_AS_STRING(string)
- int _PyString_Resize(PyObject **string, int size) except -1
+ void PyErr_Clear()
void Py_INCREF(PyObject *obj)
void Py_DECREF(PyObject *obj)
+ PyTypeObject *Py_TYPE(PyObject *obj)
+ Py_ssize_t Py_SIZE(PyObject *obj)
+ Py_ssize_t Py_REFCNT(PyObject *obj)
+
###--------------------------------------------------------------------------
### mLib basic stuff.
### CRC32.
cdef extern from 'mLib/crc32.h':
- uint32 c_crc32 "crc32" (uint32 a, void *p, int sz)
+ uint32 _crc32 "crc32" (uint32 a, void *p, int sz)
###--------------------------------------------------------------------------
### Universal hashing.
void str_sanitize(char *d, char *p, size_t sz)
cdef extern from 'mLib/versioncmp.h':
- int _versioncmp "versioncmp"(char *va, char *vb)
+ int _versioncmp "versioncmp" (char *va, char *vb)
###--------------------------------------------------------------------------
### Form-urlencoding functions.
void atom_mkiter(atom_iter *i, atom_table *t)
atom *atom_next(atom_iter *)
void atom_pysetup()
- atom_pywrap(atom *a)
- atom_pyintern(obj)
- atom *ATOM_A(obj)
+ object atom_pywrap(atom *a)
+ object atom_pyintern(object obj)
+ atom *ATOM_A(object obj)
PyTypeObject atom_pytype
## Association tables.
cdef extern from 'grim.h':
int PSIZEOF(void *x)
+ void TEXT_PTRLEN(str s, const char **p, Py_ssize_t *sz)
+ object TEXT_FROMSTRLEN(const char *p, Py_ssize_t sz)
+ ctypedef void *cvp
###----- That's all, folks --------------------------------------------------