Defined macros Py_RETURN_(TRUE|FALSE|NONE) as helper functions for returning
the specified value. All three Py_INCREF the singleton and then return it.
diff --git a/Include/boolobject.h b/Include/boolobject.h
index e7a4e60..7c4939b 100644
--- a/Include/boolobject.h
+++ b/Include/boolobject.h
@@ -23,6 +23,10 @@
#define Py_False ((PyObject *) &_Py_ZeroStruct)
#define Py_True ((PyObject *) &_Py_TrueStruct)
+/* Macros for returning Py_True or Py_False, respectively */
+#define Py_RETURN_TRUE Py_INCREF(Py_True); return Py_True;
+#define Py_RETURN_FALSE Py_INCREF(Py_False); return Py_False;
+
/* Function to return a bool from a C long */
PyAPI_FUNC(PyObject *) PyBool_FromLong(long);
diff --git a/Include/object.h b/Include/object.h
index 252e99c..8fdd4dc 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -633,6 +633,9 @@
PyAPI_DATA(PyObject) _Py_NoneStruct; /* Don't use this directly */
#define Py_None (&_Py_NoneStruct)
+/* Macro for returning Py_None from a function */
+#define Py_RETURN_NONE Py_INCREF(Py_None); return Py_None;
+
/*
Py_NotImplemented is a singleton used to signal that an operation is
not implemented for a given type combination.