python (3.12.0)

(root)/
include/
python3.12/
py_curses.h
       1  
       2  #ifndef Py_CURSES_H
       3  #define Py_CURSES_H
       4  
       5  #ifdef __APPLE__
       6  /*
       7  ** On Mac OS X 10.2 [n]curses.h and stdlib.h use different guards
       8  ** against multiple definition of wchar_t.
       9  */
      10  #ifdef _BSD_WCHAR_T_DEFINED_
      11  #define _WCHAR_T
      12  #endif
      13  #endif /* __APPLE__ */
      14  
      15  /* On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards
      16     against multiple definition of wchar_t and wint_t. */
      17  #if defined(__FreeBSD__) && defined(_XOPEN_SOURCE_EXTENDED)
      18  # ifndef __wchar_t
      19  #   define __wchar_t
      20  # endif
      21  # ifndef __wint_t
      22  #   define __wint_t
      23  # endif
      24  #endif
      25  
      26  #if !defined(HAVE_CURSES_IS_PAD) && defined(WINDOW_HAS_FLAGS)
      27  /* The following definition is necessary for ncurses 5.7; without it,
      28     some of [n]curses.h set NCURSES_OPAQUE to 1, and then Python
      29     can't get at the WINDOW flags field. */
      30  #define NCURSES_OPAQUE 0
      31  #endif
      32  
      33  #ifdef HAVE_NCURSES_H
      34  #include <ncurses.h>
      35  #else
      36  #include <curses.h>
      37  #endif
      38  
      39  #ifdef HAVE_NCURSES_H
      40  /* configure was checking <curses.h>, but we will
      41     use <ncurses.h>, which has some or all these features. */
      42  #if !defined(WINDOW_HAS_FLAGS) && !(NCURSES_OPAQUE+0)
      43  #define WINDOW_HAS_FLAGS 1
      44  #endif
      45  #if !defined(HAVE_CURSES_IS_PAD) && NCURSES_VERSION_PATCH+0 >= 20090906
      46  #define HAVE_CURSES_IS_PAD 1
      47  #endif
      48  #ifndef MVWDELCH_IS_EXPRESSION
      49  #define MVWDELCH_IS_EXPRESSION 1
      50  #endif
      51  #endif
      52  
      53  #ifdef __cplusplus
      54  extern "C" {
      55  #endif
      56  
      57  #define PyCurses_API_pointers 4
      58  
      59  /* Type declarations */
      60  
      61  typedef struct {
      62      PyObject_HEAD
      63      WINDOW *win;
      64      char *encoding;
      65  } PyCursesWindowObject;
      66  
      67  #define PyCursesWindow_Check(v) Py_IS_TYPE((v), &PyCursesWindow_Type)
      68  
      69  #define PyCurses_CAPSULE_NAME "_curses._C_API"
      70  
      71  
      72  #ifdef CURSES_MODULE
      73  /* This section is used when compiling _cursesmodule.c */
      74  
      75  #else
      76  /* This section is used in modules that use the _cursesmodule API */
      77  
      78  static void **PyCurses_API;
      79  
      80  #define PyCursesWindow_Type (*_PyType_CAST(PyCurses_API[0]))
      81  #define PyCursesSetupTermCalled  {if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;}
      82  #define PyCursesInitialised      {if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;}
      83  #define PyCursesInitialisedColor {if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;}
      84  
      85  #define import_curses() \
      86      PyCurses_API = (void **)PyCapsule_Import(PyCurses_CAPSULE_NAME, 1);
      87  
      88  #endif
      89  
      90  /* general error messages */
      91  static const char catchall_ERR[]  = "curses function returned ERR";
      92  static const char catchall_NULL[] = "curses function returned NULL";
      93  
      94  #ifdef __cplusplus
      95  }
      96  #endif
      97  
      98  #endif /* !defined(Py_CURSES_H) */
      99