]> granicus.if.org Git - php/commitdiff
MFH
authorMoriyoshi Koizumi <moriyoshi@php.net>
Sun, 22 Dec 2002 19:03:14 +0000 (19:03 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Sun, 22 Dec 2002 19:03:14 +0000 (19:03 +0000)
ext/ncurses/ncurses.c
ext/ncurses/ncurses_functions.c
ext/ncurses/php_ncurses.h

index 59309da5cfd7536c19e8563ceff7f2b7e14e22b3..31c992c550b8f385bbf124f16af0d4dcac04e7f3 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 5c3e7f60c49d62ac45d17f585f71a27cdbc32b23..37c485ea768117abd33c10cedf3e3165900b6e73 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 3cf60cf72e7683f16fae8b2e4261480a2cf82203..d29ebc4f9058d7d78f92e519e23a32142c002ea7 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)