diff options
| author | Wez Furlong <wez@php.net> | 2002-09-27 17:03:53 +0000 |
|---|---|---|
| committer | Wez Furlong <wez@php.net> | 2002-09-27 17:03:53 +0000 |
| commit | dd6d22b6a103313aed54920f6927eb4439c3a493 (patch) | |
| tree | de8237977032acba78fa268fc0c9bbeaedbd3f3b /ext/ncurses/ncurses.c | |
| parent | 69e677cda7dfa3c1b7b55aa8db5cfd247abc0a8f (diff) | |
| download | php-git-dd6d22b6a103313aed54920f6927eb4439c3a493.tar.gz | |
Implement some more window routines, add pad functions.
Add panel functions when libpanel is also detected.
Register STDSCR constant during ncurses_init().
Diffstat (limited to 'ext/ncurses/ncurses.c')
| -rw-r--r-- | ext/ncurses/ncurses.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/ext/ncurses/ncurses.c b/ext/ncurses/ncurses.c index 92a98e8940..cdad69a1b6 100644 --- a/ext/ncurses/ncurses.c +++ b/ext/ncurses/ncurses.c @@ -30,10 +30,12 @@ ZEND_DECLARE_MODULE_GLOBALS(ncurses) */ /* True global resources - no need for thread safety here */ -int le_ncurses; - +int le_ncurses_windows; +#if HAVE_NCURSES_PANEL +int le_ncurses_panels; +#endif -static void ncurses_destruct(zend_rsrc_list_entry *rsrc TSRMLS_DC) +static void ncurses_destruct_window(zend_rsrc_list_entry *rsrc TSRMLS_DC) { WINDOW **pwin = (WINDOW **)rsrc->ptr; @@ -41,6 +43,15 @@ static void ncurses_destruct(zend_rsrc_list_entry *rsrc TSRMLS_DC) efree(pwin); } +#if HAVE_NCURSES_PANEL +static void ncurses_destruct_panel(zend_rsrc_list_entry *rsrc TSRMLS_DC) +{ + PANEL **ppanel = (PANEL **)rsrc->ptr; + + del_panel(*ppanel); + efree(ppanel); +} +#endif /* {{{ ncurses_module_entry */ @@ -238,7 +249,10 @@ PHP_MINIT_FUNCTION(ncurses) PHP_NCURSES_CONST(ALL_MOUSE_EVENTS); PHP_NCURSES_CONST(REPORT_MOUSE_POSITION); - le_ncurses = zend_register_list_destructors_ex(ncurses_destruct, NULL, "ncurses_handle", module_number); + le_ncurses_windows = zend_register_list_destructors_ex(ncurses_destruct_window, NULL, "ncurses_window", module_number); +#if HAVE_NCURSES_PANEL + le_ncurses_panels = zend_register_list_destructors_ex(ncurses_destruct_panel, NULL, "ncurses_panel", module_number); +#endif return SUCCESS; } |
