cvs: php4 /ext/ncurses ncurses.c ncurses_functions.c php_ncurses.h

From: Date: Sun, 22 Dec 2002 19:01:44 +0000
Subject: cvs: php4 /ext/ncurses ncurses.c ncurses_functions.c php_ncurses.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-17358@lists.php.net to get a copy of this message
moriyoshi Sun Dec 22 14:01:44 2002 EDT Modified files: /php4/ext/ncurses ncurses.c ncurses_functions.c php_ncurses.h Log: Fixed bug #21144 Index: php4/ext/ncurses/ncurses.c diff -u php4/ext/ncurses/ncurses.c:1.19 php4/ext/ncurses/ncurses.c:1.20 --- php4/ext/ncurses/ncurses.c:1.19 Mon Nov 25 07:30:24 2002 +++ php4/ext/ncurses/ncurses.c Sun Dec 22 14:01:43 2002 @@ -84,11 +84,19 @@ #define PHP_NCURSES_CONST(x) REGISTER_LONG_CONSTANT("NCURSES_"#x, x, CONST_CS | CONST_PERSISTENT) #define PHP_NCURSES_FKEY_CONST(x) REGISTER_LONG_CONSTANT("NCURSES_KEY_F"#x, KEY_F0 + x, CONST_CS | CONST_PERSISTENT) +/* {{{ php_ncurses_globals_ctor */ +static void php_ncurses_globals_ctor(zend_ncurses_globals *pglobals) +{ + pglobals->registered_constants = 0; + pglobals->is_initialised = 0; +} +/* }}} */ /* {{{ PHP_MINIT_FUNCTION */ PHP_MINIT_FUNCTION(ncurses) { + ZEND_INIT_MODULE_GLOBALS(ncurses, php_ncurses_globals_ctor, NULL); /* color constants */ PHP_NCURSES_CONST(COLOR_BLACK); PHP_NCURSES_CONST(COLOR_RED); Index: php4/ext/ncurses/ncurses_functions.c diff -u php4/ext/ncurses/ncurses_functions.c:1.27 php4/ext/ncurses/ncurses_functions.c:1.28 --- php4/ext/ncurses/ncurses_functions.c:1.27 Mon Nov 25 07:30:25 2002 +++ php4/ext/ncurses/ncurses_functions.c Sun Dec 22 14:01:43 2002 @@ -131,6 +131,8 @@ (void) nonl(); /* tell curses not to do NL->CR/NL on output */ (void) cbreak(); /* take input chars one at a time, no wait for \n */ + NCURSES_G(is_initialised) = 1; + if (!NCURSES_G(registered_constants)) { zend_constant c; @@ -315,7 +317,12 @@ Starts using colors */ PHP_FUNCTION(ncurses_start_color) { - RETURN_LONG(start_color()); + if (NCURSES_G(is_initialised)) { + RETURN_LONG(start_color()); + } else { + php_error(E_WARNING, "ncurses library is not initialised by ncurses_init()."); + RETURN_FALSE; + } } /* }}} */ Index: php4/ext/ncurses/php_ncurses.h diff -u php4/ext/ncurses/php_ncurses.h:1.9 php4/ext/ncurses/php_ncurses.h:1.10 --- php4/ext/ncurses/php_ncurses.h:1.9 Mon Nov 25 07:30:26 2002 +++ php4/ext/ncurses/php_ncurses.h Sun Dec 22 14:01:44 2002 @@ -48,6 +48,7 @@ PHP_MINFO_FUNCTION(ncurses); ZEND_BEGIN_MODULE_GLOBALS(ncurses) + int is_initialised; int registered_constants; ZEND_END_MODULE_GLOBALS(ncurses)

« previous php.cvs (#17358) next »