File: /Users/paulross/dev/Python-3.6.2/Include/boolobject.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /* Boolean object interface */
       2: 
       3: #ifndef Py_BOOLOBJECT_H
       4: #define Py_BOOLOBJECT_H
       5: #ifdef __cplusplus
       6: extern "C" {
       7: #endif
       8: 
       9: 
      10: PyAPI_DATA(PyTypeObject) PyBool_Type;
      11: 
      12: #define PyBool_Check(x) (Py_TYPE(x) == &PyBool_Type)
      13: 
      14: /* Py_False and Py_True are the only two bools in existence.
      15: Don't forget to apply Py_INCREF() when returning either!!! */
      16: 
      17: /* Don't use these directly */
      18: PyAPI_DATA(struct _longobject) _Py_FalseStruct, _Py_TrueStruct;
      19: 
      20: /* Use these macros */
      21: #define Py_False ((PyObject *) &_Py_FalseStruct)
      22: #define Py_True ((PyObject *) &_Py_TrueStruct)
      23: 
      24: /* Macros for returning Py_True or Py_False, respectively */
      25: #define Py_RETURN_TRUE return Py_INCREF(Py_True), Py_True
      26: #define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False
      27: 
      28: /* Function to return a bool from a C long */
      29: PyAPI_FUNC(PyObject *) PyBool_FromLong(long);
      30: 
      31: #ifdef __cplusplus
      32: }
      33: #endif
      34: #endif /* !Py_BOOLOBJECT_H */
      35: