From 83a72c0dad2f0da52131224e9b072ef3490db56f Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Tue, 22 Oct 2019 18:50:19 +0100 Subject: [PATCH] *.[ch]: Some preparatory reformatting for the Python 3 porting. Nothing very complicated or profound. These are intended to make the upcoming diff easier to check for stupid mistakes. A lot of this is whitespace change that disappears in `git show -w'. --- mapping.c | 3 ++- pyke-mLib.c | 3 ++- pyke.c | 6 ++--- pyke.h | 88 ++++++++++++++++++++++++++++++------------------------------- 4 files changed, 51 insertions(+), 49 deletions(-) diff --git a/mapping.c b/mapping.c index 04616e1..3ad1ac7 100644 --- a/mapping.c +++ b/mapping.c @@ -493,7 +493,8 @@ static int update_core(PyObject *me, PyObject *map) unsigned foundp; int rc = -1; - i = PyObject_CallMethod(map, "iteritems", 0); + v = PyObject_CallMethod(map, "iteritems", 0); + i = v; v = 0; if (i) { for (;;) { diff --git a/pyke-mLib.c b/pyke-mLib.c index a29f34c..fd6f895 100644 --- a/pyke-mLib.c +++ b/pyke-mLib.c @@ -53,7 +53,8 @@ PyObject *getk64(kludge64 u) if ((j = PyLong_FromUnsignedLong(LO64(u))) == 0) goto end; if ((t = PyNumber_InPlaceOr(i, j)) == 0) goto end; Py_DECREF(i); i = t; - if ((rc = PyNumber_Int(i)) == 0) goto end; + if ((t = PyNumber_Int(i)) == 0) goto end; + rc = t; end: Py_XDECREF(i); Py_XDECREF(j); diff --git a/pyke.c b/pyke.c index 1d4458b..03f1c1f 100644 --- a/pyke.c +++ b/pyke.c @@ -46,16 +46,16 @@ PyObject *getbool(int b) int convulong(PyObject *o, void *pp) { - long i; unsigned long *p = pp; PyObject *t; if (!o) VALERR("can't delete"); if (PyInt_Check(o)) { - i = PyInt_AS_LONG(o); + long i = PyInt_AS_LONG(o); if (i < 0) VALERR("must be nonnegative"); *p = i; - } else { + } else + { if ((t = PyNumber_Long(o)) == 0) goto end; *p = PyLong_AsUnsignedLong(t); Py_DECREF(t); diff --git a/pyke.h b/pyke.h index cd13507..06c30c2 100644 --- a/pyke.h +++ b/pyke.h @@ -115,23 +115,23 @@ PRIVATE_SYMBOLS; # * `YN' is a format character for `PyArg_ParseTuple...' for retrieving an * octet string and length from any sort-of vaguely binary-ish object. */ -#define BINOBJ PyStringObject -#define BIN_TYPE PyString_Type -#define BIN_CHECK(obj) PyString_Check(obj) -#define BIN_PTR(obj) PyString_AS_STRING(obj) -#define BIN_LEN(obj) PyString_GET_SIZE(obj) -#define BIN_FROMSTR(str) PyString_FromString(str) -#define BIN_FROMSTRLEN(str, len) PyString_FromStringAndSize(str, len) -#define BIN_FORMAT PyString_FromFormat -#define BIN_VFORMAT PyString_FromFormatV -#define BIN_PREPAREWRITE(obj, ptr, sz) do { \ - (obj) = PyString_FromStringAndSize(0, (sz)); \ - (ptr) = PyString_AS_STRING(obj); \ -} while (0) -#define BIN_DONEWRITE(obj, sz) do Py_SIZE(obj) = (sz); while (0) -#define BIN_SETLEN(obj, len) do Py_SIZE(obj) = (len); while (0) -#define Y "s" -#define YN "s#" +# define BINOBJ PyStringObject +# define BIN_TYPE PyString_Type +# define BIN_CHECK(obj) PyString_Check(obj) +# define BIN_PTR(obj) PyString_AS_STRING(obj) +# define BIN_LEN(obj) PyString_GET_SIZE(obj) +# define BIN_FROMSTR(str) PyString_FromString(str) +# define BIN_FROMSTRLEN(str, len) PyString_FromStringAndSize(str, len) +# define BIN_FORMAT PyString_FromFormat +# define BIN_VFORMAT PyString_FromFormatV +# define BIN_PREPAREWRITE(obj, ptr, sz) do { \ + (obj) = PyString_FromStringAndSize(0, (sz)); \ + (ptr) = PyString_AS_STRING(obj); \ + } while (0) +# define BIN_DONEWRITE(obj, sz) do Py_SIZE(obj) = (sz); while (0) +# define BIN_SETLEN(obj, len) do Py_SIZE(obj) = (len); while (0) +# define Y "s" +# define YN "s#" /* Text strings. Both Python 2 and Python 3 call these `str', but they're * very different because a Python 3 `str' is Unicode inside. When dealing @@ -161,24 +161,24 @@ PRIVATE_SYMBOLS; * * (Use `s' and `s#' in `PyArg_ParseTuple...'.) */ -#define TEXTOBJ PyStringObject -#define TEXT_TYPE PyString_Type -#define TEXT_CHECK(obj) PyString_Check(obj) -#define TEXT_PTR(obj) PyString_AS_STRING(obj) -#define TEXT_STR(obj) PyString_AsString(obj) -#define TEXT_PTRLEN(obj, ptr, len) do { \ - (ptr) = PyString_AS_STRING(obj); \ - (len) = PyString_GET_SIZE(obj); \ -} while (0) -#define TEXT_FORMAT PyString_FromFormat -#define TEXT_VFORMAT PyString_FromFormatV -#define TEXT_PREPAREWRITE(obj, ptr, sz) do { \ - (obj) = PyString_FromStringAndSize(0, (sz)); \ - (ptr) = PyString_AS_STRING(obj); \ -} while (0) -#define TEXT_DONEWRITE(obj, sz) do { Py_SIZE(obj) = (sz); } while (0) -#define TEXT_FROMSTR(str) PyString_FromString(str) -#define TEXT_FROMSTRLEN(str, len) PyString_FromStringAndSize(str, len) +# define TEXTOBJ PyStringObject +# define TEXT_TYPE PyString_Type +# define TEXT_CHECK(obj) PyString_Check(obj) +# define TEXT_PTR(obj) PyString_AS_STRING(obj) +# define TEXT_STR(obj) PyString_AsString(obj) +# define TEXT_PTRLEN(obj, ptr, len) do { \ + (ptr) = PyString_AS_STRING(obj); \ + (len) = PyString_GET_SIZE(obj); \ + } while (0) +# define TEXT_FORMAT PyString_FromFormat +# define TEXT_VFORMAT PyString_FromFormatV +# define TEXT_PREPAREWRITE(obj, ptr, sz) do { \ + (obj) = PyString_FromStringAndSize(0, (sz)); \ + (ptr) = PyString_AS_STRING(obj); \ + } while (0) +# define TEXT_DONEWRITE(obj, sz) do { Py_SIZE(obj) = (sz); } while (0) +# define TEXT_FROMSTR(str) PyString_FromString(str) +# define TEXT_FROMSTRLEN(str, len) PyString_FromStringAndSize(str, len) /*----- Utilities for returning values and exceptions ---------------------*/ @@ -556,15 +556,15 @@ typedef struct gmap_pyobj { #define GMAP_NAMETHDECL(func, doc) \ extern PyObject *gmapmeth_##func(PyObject *); -#define GMAP_DOROMETHODS(METH, KWMETH, NAMETH) \ - METH (has_key, "D.has_key(KEY) -> BOOL") \ - NAMETH(keys, "D.keys() -> LIST") \ - NAMETH(values, "D.values() -> LIST") \ - NAMETH(items, "D.items() -> LIST") \ - NAMETH(iterkeys, "D.iterkeys() -> ITER") \ - NAMETH(itervalues, "D.itervalues() -> ITER") \ - NAMETH(iteritems, "D.iteritems() -> ITER") \ - KWMETH(get, "D.get(KEY, [default = None]) -> VALUE") +# define GMAP_DOROMETHODS(METH, KWMETH, NAMETH) \ + METH (has_key, "D.has_key(KEY) -> BOOL") \ + NAMETH(keys, "D.keys() -> LIST") \ + NAMETH(values, "D.values() -> LIST") \ + NAMETH(items, "D.items() -> LIST") \ + NAMETH(iterkeys, "D.iterkeys() -> ITER") \ + NAMETH(itervalues, "D.itervalues() -> ITER") \ + NAMETH(iteritems, "D.iteritems() -> ITER") \ + KWMETH(get, "D.get(KEY, [default = None]) -> VALUE") #define GMAP_DOMETHODS(METH, KWMETH, NAMETH) \ GMAP_DOROMETHODS(METH, KWMETH, NAMETH) \ -- 2.11.0