cvs: php4(PHP_4_3) /ext/ncurses ncurses.c ncurses_functions.c php_ncurses.h

From: Date: Sun, 22 Dec 2002 19:45:21 +0000
Subject: cvs: php4(PHP_4_3) /ext/ncurses ncurses.c ncurses_functions.c php_ncurses.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-17372@lists.php.net to get a copy of this message
iliaa Sun Dec 22 14:45:21 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/ncurses ncurses.c ncurses_functions.c php_ncurses.h Log: MFH (fix for bug #21146). # Approved by Andrei

Index: php4/ext/ncurses/ncurses.c diff -u php4/ext/ncurses/ncurses.c:1.18.2.2 php4/ext/ncurses/ncurses.c:1.18.2.3 --- php4/ext/ncurses/ncurses.c:1.18.2.2 Sun Dec 22 14:06:29 2002 +++ php4/ext/ncurses/ncurses.c Sun Dec 22 14:45:21 2002 @@ -84,19 +84,15 @@ #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) +static void php_ncurses_init_globals(zend_ncurses_globals *ncurses_globals) { - pglobals->registered_constants = 0; - pglobals->is_initialised = 0; + memset(ncurses_globals, 0, sizeof(*ncurses_globals)); } -/* }}} */ /* {{{ 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); @@ -254,6 +250,8 @@ PHP_NCURSES_CONST(BUTTON_ALT); PHP_NCURSES_CONST(ALL_MOUSE_EVENTS); PHP_NCURSES_CONST(REPORT_MOUSE_POSITION); + + ZEND_INIT_MODULE_GLOBALS(ncurses, php_ncurses_init_globals, NULL); le_ncurses_windows = zend_register_list_destructors_ex(ncurses_destruct_window, NULL, "ncurses_window", module_number); #if HAVE_NCURSES_PANEL Index: php4/ext/ncurses/ncurses_functions.c diff -u php4/ext/ncurses/ncurses_functions.c:1.26.2.2 php4/ext/ncurses/ncurses_functions.c:1.26.2.3 --- php4/ext/ncurses/ncurses_functions.c:1.26.2.2 Sun Dec 22 14:16:42 2002 +++ php4/ext/ncurses/ncurses_functions.c Sun Dec 22 14:45:21 2002 @@ -30,6 +30,12 @@ # define FETCH_PANEL(r, z) ZEND_FETCH_RESOURCE(r, PANEL **, z, -1, "ncurses_panel", le_ncurses_panels) #endif +#define IS_NCURSES_INITIALIZED() \ + if (!NCURSES_G(registered_constants)) { \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "You must initialize ncruses via ncurses_init(), before calling any ncurses functions."); \ + RETURN_FALSE; \ + } + /* {{{ proto int ncurses_addch(int ch) Adds character at current position and advance cursor */ PHP_FUNCTION(ncurses_addch) @@ -37,9 +43,10 @@ long ch; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&ch)==FAILURE) { - return; + return; } + IS_NCURSES_INITIALIZED(); RETURN_LONG(addch(ch)); } /* }}} */ @@ -53,7 +60,7 @@ WINDOW **win; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &handle, &ch)==FAILURE) { - return; + return; } FETCH_WINRES(win, &handle); @@ -73,6 +80,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&pair)==FAILURE) { return; } + IS_NCURSES_INITIALIZED(); RETURN_LONG(color_set(pair,NULL)); #else php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s not supported in this build"); @@ -102,6 +110,7 @@ Stops using ncurses, clean up the screen */ PHP_FUNCTION(ncurses_end) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(endwin()); /* endialize the curses library */ } /* }}} */ @@ -110,6 +119,7 @@ Reads a character from keyboard */ PHP_FUNCTION(ncurses_getch) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(getch()); } /* }}} */ @@ -118,6 +128,7 @@ Checks if terminal has colors */ PHP_FUNCTION(ncurses_has_colors) { + IS_NCURSES_INITIALIZED(); RETURN_BOOL(has_colors()); } /* }}} */ @@ -131,8 +142,6 @@ (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; @@ -203,7 +212,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll",&pair,&fg,&bg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(init_pair(pair,fg,bg)); } /* }}} */ @@ -216,6 +225,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&y,&x)==FAILURE) { return; } + IS_NCURSES_INITIALIZED(); RETURN_LONG(move(y,x)); } /* }}} */ @@ -230,7 +240,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&rows,&cols)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); *pwin = newpad(rows,cols); if(!*pwin) { @@ -294,6 +304,7 @@ return; } + IS_NCURSES_INITIALIZED(); *pwin=newwin(rows,cols,y,x); if(!*pwin) { @@ -309,6 +320,7 @@ Refresh screen */ PHP_FUNCTION(ncurses_refresh) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(refresh()); } /* }}} */ @@ -317,12 +329,8 @@ Starts using colors */ PHP_FUNCTION(ncurses_start_color) { - if (NCURSES_G(is_initialised)) { - RETURN_LONG(start_color()); - } else { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "ncurses library is not initialised by ncurses_init()."); - RETURN_FALSE; - } + IS_NCURSES_INITIALIZED(); + RETURN_LONG(start_color()); } /* }}} */ @@ -330,6 +338,7 @@ Starts using 'standout' attribute */ PHP_FUNCTION(ncurses_standout) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(standout()); } /* }}} */ @@ -338,6 +347,7 @@ Stops using 'standout' attribute */ PHP_FUNCTION(ncurses_standend) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(standend()); } /* }}} */ @@ -346,6 +356,7 @@ Returns baudrate of terminal */ PHP_FUNCTION(ncurses_baudrate) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(baudrate()); } /* }}} */ @@ -354,6 +365,7 @@ Let the terminal beep */ PHP_FUNCTION(ncurses_beep) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(beep()); } /* }}} */ @@ -362,6 +374,7 @@ Checks if we can change terminals colors */ PHP_FUNCTION(ncurses_can_change_color) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(can_change_color()); } /* }}} */ @@ -370,6 +383,7 @@ Switches of input buffering */ PHP_FUNCTION(ncurses_cbreak) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(cbreak()); } /* }}} */ @@ -378,6 +392,7 @@ Clears screen */ PHP_FUNCTION(ncurses_clear) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(clear()); } /* }}} */ @@ -386,6 +401,7 @@ Clears screen from current position to bottom */ PHP_FUNCTION(ncurses_clrtobot) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(clrtobot()); } /* }}} */ @@ -394,6 +410,7 @@ Clears screen from current position to end of line */ PHP_FUNCTION(ncurses_clrtoeol) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(clrtoeol()); } /* }}} */ @@ -405,6 +422,7 @@ if (ZEND_NUM_ARGS() != 0) { WRONG_PARAM_COUNT; } + IS_NCURSES_INITIALIZED(); RETURN_LONG(reset_prog_mode()); } /* }}} */ @@ -416,6 +434,7 @@ if (ZEND_NUM_ARGS() != 0) { WRONG_PARAM_COUNT; } + IS_NCURSES_INITIALIZED(); RETURN_LONG(reset_shell_mode()); } /* }}} */ @@ -424,6 +443,7 @@ Saves terminals (program) mode */ PHP_FUNCTION(ncurses_def_prog_mode) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(def_prog_mode()); } /* }}} */ @@ -432,6 +452,7 @@ Saves terminal (shell) mode*/ PHP_FUNCTION(ncurses_def_shell_mode) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(def_shell_mode()); } /* }}} */ @@ -440,6 +461,7 @@ Deletes character at current position, move rest of line left */ PHP_FUNCTION(ncurses_delch) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(delch()); } /* }}} */ @@ -448,6 +470,7 @@ Deletes line at current position, move rest of screen up */ PHP_FUNCTION(ncurses_deleteln) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(deleteln()); } /* }}} */ @@ -456,6 +479,7 @@ Writes all prepared refreshes to terminal */ PHP_FUNCTION(ncurses_doupdate) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(doupdate()); } /* }}} */ @@ -464,6 +488,7 @@ Activates keyboard input echo */ PHP_FUNCTION(ncurses_echo) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(echo()); } /* }}} */ @@ -472,6 +497,7 @@ Erases terminal screen */ PHP_FUNCTION(ncurses_erase) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(erase()); } /* }}} */ @@ -482,6 +508,7 @@ { char temp[2]; + IS_NCURSES_INITIALIZED(); temp[0] = erasechar(); temp[1] = '\0'; @@ -493,6 +520,7 @@ Flashes terminal screen (visual bell) */ PHP_FUNCTION(ncurses_flash) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(flash()); } /* }}} */ @@ -501,6 +529,7 @@ Flushes keyboard input buffer */ PHP_FUNCTION(ncurses_flushinp) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(flushinp()); } /* }}} */ @@ -509,6 +538,7 @@ Checks for insert- and delete-capabilities */ PHP_FUNCTION(ncurses_has_ic) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(has_ic()); } /* }}} */ @@ -518,6 +548,7 @@ Checks for line insert- and delete-capabilities */ PHP_FUNCTION(ncurses_has_il) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(has_il()); } /* }}} */ @@ -528,6 +559,7 @@ { char temp[2]; + IS_NCURSES_INITIALIZED(); temp[0] = inch(); temp[1] = '\0'; @@ -539,6 +571,7 @@ Inserts a line, move rest of screen down */ PHP_FUNCTION(ncurses_insertln) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(insertln()); } /* }}} */ @@ -547,6 +580,7 @@ Ncurses is in endwin mode, normal screen output may be performed */ PHP_FUNCTION(ncurses_isendwin) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(isendwin()); } /* }}} */ @@ -557,6 +591,7 @@ { char temp[2]; + IS_NCURSES_INITIALIZED(); temp[0] = killchar(); temp[1] = '\0'; @@ -568,6 +603,7 @@ Translates newline and carriage return / line feed */ PHP_FUNCTION(ncurses_nl) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(nl()); } /* }}} */ @@ -576,6 +612,7 @@ Switches terminal to cooked mode */ PHP_FUNCTION(ncurses_nocbreak) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(nocbreak()); } /* }}} */ @@ -584,6 +621,7 @@ Switches off keyboard input echo */ PHP_FUNCTION(ncurses_noecho) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(noecho()); } /* }}} */ @@ -600,6 +638,7 @@ Switches terminal out of raw mode */ PHP_FUNCTION(ncurses_noraw) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(noraw()); } /* }}} */ @@ -608,6 +647,7 @@ Switches terminal into raw mode */ PHP_FUNCTION(ncurses_raw) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(raw()); } /* }}} */ @@ -621,7 +661,7 @@ WINDOW **win; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &handle, &enable)==FAILURE) { - return; + return; } FETCH_WINRES(win, &handle); @@ -638,7 +678,7 @@ WINDOW **win; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &handle)==FAILURE) { - return; + return; } FETCH_WINRES(win, &handle); @@ -652,6 +692,7 @@ Restores saved terminal state */ PHP_FUNCTION(ncurses_resetty) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(resetty()); } /* }}} */ @@ -660,6 +701,7 @@ Saves terminal state */ PHP_FUNCTION(ncurses_savetty) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(savetty()); } /* }}} */ @@ -668,6 +710,7 @@ Returns a logical OR of all attribute flags supported by terminal */ PHP_FUNCTION(ncurses_termattrs) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(termattrs()); } /* }}} */ @@ -676,6 +719,7 @@ Assigns terminal default colors to color id -1 */ PHP_FUNCTION(ncurses_use_default_colors) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(use_default_colors()); } /* }}} */ @@ -684,6 +728,7 @@ Returns current soft label keys attribute */ PHP_FUNCTION(ncurses_slk_attr) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_attr()); } /* }}} */ @@ -692,6 +737,7 @@ Clears soft label keys from screen */ PHP_FUNCTION(ncurses_slk_clear) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_clear()); } /* }}} */ @@ -700,6 +746,7 @@ Copies soft label keys to virtual screen */ PHP_FUNCTION(ncurses_slk_noutrefresh) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_noutrefresh()); } /* }}} */ @@ -708,6 +755,7 @@ Copies soft label keys to screen */ PHP_FUNCTION(ncurses_slk_refresh) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_refresh()); } /* }}} */ @@ -716,6 +764,7 @@ Restores soft label keys */ PHP_FUNCTION(ncurses_slk_restore) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_restore()); } /* }}} */ @@ -724,6 +773,7 @@ Forces output when ncurses_slk_noutrefresh is performed */ PHP_FUNCTION(ncurses_slk_touch) { + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_touch()); } /* }}} */ @@ -740,6 +790,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsl",&labelnr, &str, &len, &format)==FAILURE) { return; } + IS_NCURSES_INITIALIZED(); RETURN_BOOL(slk_set(labelnr, str, format)); } /* }}} */ @@ -754,7 +805,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(attroff(intarg)); } /* }}} */ @@ -768,7 +819,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(attron(intarg)); } /* }}} */ @@ -782,7 +833,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(attrset(intarg)); } /* }}} */ @@ -796,7 +847,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(bkgd(intarg)); } /* }}} */ @@ -810,7 +861,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(curs_set(intarg)); } /* }}} */ @@ -824,7 +875,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(delay_output(intarg)); } /* }}} */ @@ -838,7 +889,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(echochar(intarg)); } /* }}} */ @@ -852,7 +903,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(halfdelay(intarg)); } /* }}} */ @@ -866,7 +917,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(has_key(intarg)); } /* }}} */ @@ -880,7 +931,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(insch(intarg)); } /* }}} */ @@ -894,7 +945,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(insdelln(intarg)); } /* }}} */ @@ -908,7 +959,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mouseinterval(intarg)); } /* }}} */ @@ -922,7 +973,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(napms(intarg)); } /* }}} */ @@ -936,7 +987,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(scrl(intarg)); } /* }}} */ @@ -950,7 +1001,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_attroff(intarg)); } /* }}} */ @@ -964,7 +1015,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_attron(intarg)); } /* }}} */ @@ -978,7 +1029,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_attrset(intarg)); } /* }}} */ @@ -993,7 +1044,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_color(intarg)); #else php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s not supported in this build"); @@ -1011,7 +1062,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(slk_init(intarg)); } /* }}} */ @@ -1025,7 +1076,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(typeahead(intarg)); } /* }}} */ @@ -1039,7 +1090,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(ungetch(intarg)); } /* }}} */ @@ -1053,7 +1104,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(vidattr(intarg)); } /* }}} */ @@ -1068,7 +1119,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(use_extended_names(intarg)); #else php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s not supported in this build"); @@ -1086,7 +1137,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); bkgdset(intarg); } /* }}} */ @@ -1095,6 +1146,7 @@ */ PHP_FUNCTION(ncurses_filter) { + IS_NCURSES_INITIALIZED(); filter(); } /* }}} */ @@ -1103,6 +1155,7 @@ Do not flush on signal characters*/ PHP_FUNCTION(ncurses_noqiflush) { + IS_NCURSES_INITIALIZED(); noqiflush(); } /* }}} */ @@ -1111,6 +1164,7 @@ Flushes on signal characters */ PHP_FUNCTION(ncurses_qiflush) { + IS_NCURSES_INITIALIZED(); qiflush(); } /* }}} */ @@ -1124,7 +1178,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); timeout(intarg); } /* }}} */ @@ -1138,7 +1192,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); use_env(intarg); } /* }}} */ @@ -1153,7 +1207,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(addstr(str)); } /* }}} */ @@ -1168,7 +1222,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(putp(str)); } /* }}} */ @@ -1183,7 +1237,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(scr_dump(str)); } /* }}} */ @@ -1198,7 +1252,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(scr_init(str)); } /* }}} */ @@ -1213,7 +1267,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(scr_restore(str)); } /* }}} */ @@ -1228,7 +1282,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(scr_set(str)); } /* }}} */ @@ -1240,9 +1294,9 @@ long y,x,c; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll",&y,&x,&c)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvaddch(y,x,c)); } /* }}} */ @@ -1256,9 +1310,9 @@ int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llsl",&y,&x,&str,&str_len,&n)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvaddchnstr(y,x,(chtype *)str,n)); } /* }}} */ @@ -1272,9 +1326,9 @@ int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl",&str,&str_len,&n)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(addchnstr((chtype *)str,n)); } /* }}} */ @@ -1288,9 +1342,9 @@ int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x,&str,&str_len)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvaddchstr(y,x,(chtype *)str)); } /* }}} */ @@ -1305,7 +1359,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(addchstr((chtype *)str)); } /* }}} */ @@ -1319,9 +1373,9 @@ int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llsl",&y,&x,&str,&str_len,&n)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvaddnstr(y,x,str,n)); } /* }}} */ @@ -1335,9 +1389,9 @@ int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl",&str,&str_len,&n)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(addnstr(str,n)); } /* }}} */ @@ -1351,9 +1405,9 @@ int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x,&str,&str_len)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvaddstr(y,x,str)); } /* }}} */ @@ -1365,9 +1419,9 @@ long y,x; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvdelch(y,x)); } /* }}} */ @@ -1380,9 +1434,9 @@ long y,x; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvgetch(y,x)); } /* }}} */ @@ -1394,9 +1448,9 @@ long y,x; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvinch(y,x)); } /* }}} */ @@ -1411,7 +1465,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(insstr(str)); } /* }}} */ @@ -1428,7 +1482,7 @@ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &param) == FAILURE ){ WRONG_PARAM_COUNT; } - + IS_NCURSES_INITIALIZED(); convert_to_string_ex(param); str = (char *)emalloc(COLS + 1); @@ -1449,9 +1503,9 @@ long i1,i2,i3,i4; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&i1,&i2,&i3,&i4)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvhline(i1,i2,i3,i4)); } /* }}} */ @@ -1463,9 +1517,9 @@ long i1,i2,i3,i4; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&i1,&i2,&i3,&i4)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvvline(i1,i2,i3,i4)); } /* }}} */ @@ -1477,9 +1531,9 @@ long i1,i2,i3,i4; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&i1,&i2,&i3,&i4)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(mvcur(i1,i2,i3,i4)); } /* }}} */ @@ -1491,9 +1545,9 @@ long i1,i2,i3,i4; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&i1,&i2,&i3,&i4)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(init_color(i1,i2,i3,i4)); } /* }}} */ @@ -1509,7 +1563,7 @@ if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &c, &r, &g, &b) == FAILURE) { WRONG_PARAM_COUNT; } - + IS_NCURSES_INITIALIZED(); convert_to_long_ex(c); convert_to_long_ex(r); convert_to_long_ex(g); @@ -1540,7 +1594,7 @@ if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &p, &f, &b) == FAILURE) { WRONG_PARAM_COUNT; } - + IS_NCURSES_INITIALIZED(); convert_to_long_ex(p); convert_to_long_ex(f); convert_to_long_ex(b); @@ -1566,9 +1620,9 @@ long i1,i2,i3,i4,i5,i6,i7,i8; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llllllll",&i1,&i2,&i3,&i4,&i5,&i6,&i7,&i8)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(border(i1,i2,i3,i4,i5,i6,i7,i8)); } /* }}} */ @@ -1582,7 +1636,7 @@ WINDOW **win; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllllllll",&handle,&i1,&i2,&i3,&i4,&i5,&i6,&i7,&i8)==FAILURE) { - return; + return; } FETCH_WINRES(win,&handle); @@ -1601,9 +1655,9 @@ long i1,i2; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i1,&i2)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(assume_default_colors(i1,i2)); #else php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s not supported in this build"); @@ -1621,9 +1675,9 @@ int str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl",&str,&str_len,&n)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(define_key(str,n)); } /* }}} */ @@ -1635,9 +1689,9 @@ long i1,i2; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i1,&i2)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(hline(i1,i2)); } /* }}} */ @@ -1649,9 +1703,9 @@ long i1,i2; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i1,&i2)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(vline(i1,i2)); } /* }}} */ @@ -1665,7 +1719,7 @@ WINDOW **win; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rll",&handle,&i1,&i2)==FAILURE) { - return; + return; } FETCH_WINRES(win,&handle); @@ -1683,7 +1737,7 @@ WINDOW **win; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rll",&handle,&i1,&i2)==FAILURE) { - return; + return; } FETCH_WINRES(win,&handle); @@ -1700,9 +1754,9 @@ long i,b; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i,&b)==FAILURE) { - return; + return; } - + IS_NCURSES_INITIALIZED(); RETURN_LONG(hline(i,b)); } /* }}} */ @@ -1751,7 +1805,7 @@ PHP_FUNCTION(ncurses_termname) { char temp[15]; - + IS_NCURSES_INITIALIZED(); strcpy (temp, termname()); RETURN_STRINGL (temp, strlen(temp), 1); } @@ -1762,7 +1816,7 @@ PHP_FUNCTION(ncurses_longname) { char temp[128]; - + IS_NCURSES_INITIALIZED(); strcpy (temp, longname()); RETURN_STRINGL (temp, strlen(temp), 1); } @@ -1779,7 +1833,7 @@ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &newmask, &param) == FAILURE ){ WRONG_PARAM_COUNT; } - + IS_NCURSES_INITIALIZED(); convert_to_long_ex(newmask); retval = mousemask(Z_LVAL_PP(newmask), &oldmask); @@ -1802,7 +1856,7 @@ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE){ WRONG_PARAM_COUNT; } - + IS_NCURSES_INITIALIZED(); pval_destructor(*arg); array_init(*arg); @@ -1829,7 +1883,7 @@ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE){ WRONG_PARAM_COUNT; } - + IS_NCURSES_INITIALIZED(); if (Z_TYPE_PP(arg) != IS_ARRAY){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected mevent as array"); RETURN_FALSE; @@ -1876,7 +1930,7 @@ if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &y, &x, &toscreen) == FAILURE){ WRONG_PARAM_COUNT; } - + IS_NCURSES_INITIALIZED(); convert_to_long_ex(x); convert_to_long_ex(y); convert_to_boolean_ex(toscreen); @@ -2425,6 +2479,7 @@ if (ZEND_NUM_ARGS() != 0) { WRONG_PARAM_COUNT; } + IS_NCURSES_INITIALIZED(); update_panels(); } /* }}} */ Index: php4/ext/ncurses/php_ncurses.h diff -u php4/ext/ncurses/php_ncurses.h:1.8.2.1 php4/ext/ncurses/php_ncurses.h:1.8.2.2 --- php4/ext/ncurses/php_ncurses.h:1.8.2.1 Sun Dec 22 14:03:14 2002 +++ php4/ext/ncurses/php_ncurses.h Sun Dec 22 14:45:21 2002 @@ -48,7 +48,6 @@ PHP_MINFO_FUNCTION(ncurses); ZEND_BEGIN_MODULE_GLOBALS(ncurses) - int is_initialised; int registered_constants; ZEND_END_MODULE_GLOBALS(ncurses)
« previous php.cvs (#17372) next »