]> granicus.if.org Git - php/commitdiff
Fixed bug #21144
authorMoriyoshi Koizumi <moriyoshi@php.net>
Sun, 22 Dec 2002 19:01:44 +0000 (19:01 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Sun, 22 Dec 2002 19:01:44 +0000 (19:01 +0000)
ext/ncurses/ncurses.c
ext/ncurses/ncurses_functions.c
ext/ncurses/php_ncurses.h

index f72b82a8111a999cddbc3235d76e7d5b4f00a0b2..96143dd3a724759c1cd9eae1f43bdbeed6989711 100644 (file)
@@ -84,11 +84,19 @@ PHP_INI_END()
 #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 61c99a25e2ddea6207dfc4e6c0a6e0e82de3f9ab..fa3aa7c146eee7579e2ab8d346d45cef4f80b0ff 100644 (file)
@@ -131,6 +131,8 @@ PHP_FUNCTION(ncurses_init)
        (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 @@ PHP_FUNCTION(ncurses_refresh)
    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 e432bf4e3c03982f1375fb250928f6befda4b8cb..b88559c27f68832ad61a2fee1624f83e46c644b6 100644 (file)
@@ -48,6 +48,7 @@ PHP_RSHUTDOWN_FUNCTION(ncurses);
 PHP_MINFO_FUNCTION(ncurses);
 
 ZEND_BEGIN_MODULE_GLOBALS(ncurses)
+       int   is_initialised;
        int       registered_constants;
 ZEND_END_MODULE_GLOBALS(ncurses)