From 4fb28d67b60f25da411036c940131bfa5c02532a Mon Sep 17 00:00:00 2001 From: Hartmut Holzgraefe Date: Thu, 13 Dec 2001 09:06:11 +0000 Subject: [PATCH] - new parameter parsing api used - added proto descriptions (not complete) - swapped x/y arguments - indentation style fix (no seperate WS fix as most of the file changed anyway) --- ext/ncurses/ncurses_functions.c | 1365 ++++++++++++++----------------- 1 file changed, 622 insertions(+), 743 deletions(-) diff --git a/ext/ncurses/ncurses_functions.c b/ext/ncurses/ncurses_functions.c index 31c26799e7d..57859b4465c 100644 --- a/ext/ncurses/ncurses_functions.c +++ b/ext/ncurses/ncurses_functions.c @@ -1,21 +1,21 @@ /* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.02 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available at through the world-wide-web at | - | http://www.php.net/license/2_02.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Hartmut Holzgraefe | - | | - +----------------------------------------------------------------------+ - */ + +----------------------------------------------------------------------+ + | PHP Version 4 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.02 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available at through the world-wide-web at | + | http://www.php.net/license/2_02.txt. | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Hartmut Holzgraefe | + | | + +----------------------------------------------------------------------+ +*/ #ifdef HAVE_CONFIG_H #include "config.h" @@ -30,1457 +30,1336 @@ /* {{{ proto int ncurses_addch(int ch) - */ + Add character at current position and advance cursor */ PHP_FUNCTION(ncurses_addch) { - zval **ch; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &ch) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(ch); - - RETURN_LONG(addch(_INT(ch))); + long ch; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&ch)==FAILURE) { + return; + } + + RETURN_LONG(addch(ch)); } /* }}} */ /* {{{ proto int ncurses_color_set(int pair) - */ + Set fore- and background color */ PHP_FUNCTION(ncurses_color_set) { #ifdef HAVE_NCURSES_COLOR_SET - zval **pair; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &pair) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(pair); - - RETURN_LONG(color_set(_INT(pair),NULL)); + long pair; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&pair)==FAILURE) { + return; + } + RETURN_LONG(color_set(pair,NULL)); #else - php_error(E_WARNING,"%s not supported in this build"); - RETURN_FALSE; + php_error(E_WARNING,"%s not supported in this build"); + RETURN_FALSE; #endif } /* }}} */ /* {{{ proto int ncurses_delwin(resource window) - */ + Delete a ncurses window */ PHP_FUNCTION(ncurses_delwin) { - zval **handle; - WINDOW *w; + zval **handle; + WINDOW *w; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &handle) == FAILURE){ - WRONG_PARAM_COUNT; - } + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &handle) == FAILURE){ + WRONG_PARAM_COUNT; + } - FETCH_WINRES(w,handle); + FETCH_WINRES(w,handle); - zend_list_delete(_INT(handle)); + zend_list_delete(Z_LVAL_PP(handle)); } /* }}} */ /* {{{ proto int ncurses_end() - */ + Stop using ncurses, clean up the screen */ PHP_FUNCTION(ncurses_end) { - RETURN_LONG(endwin()); /* endialize the curses library */ + RETURN_LONG(endwin()); /* endialize the curses library */ } /* }}} */ /* {{{ proto int ncurses_getch() - */ + Read a character from keyboard */ PHP_FUNCTION(ncurses_getch) { - RETURN_LONG(getch()); + RETURN_LONG(getch()); } /* }}} */ -/* {{{ proto int ncurses_has_colors() - */ +/* {{{ proto bool ncurses_has_colors() + Check if terminal has colors */ PHP_FUNCTION(ncurses_has_colors) { - RETURN_LONG(has_colors()); + RETURN_BOOL(has_colors()); } /* }}} */ /* {{{ proto int ncurses_init() - */ + Initialize ncurses */ PHP_FUNCTION(ncurses_init) { - initscr(); /* initialize the curses library */ - keypad(stdscr, TRUE); /* enable keyboard mapping */ - (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 */} + initscr(); /* initialize the curses library */ + keypad(stdscr, TRUE); /* enable keyboard mapping */ + (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 */} /* }}} */ /* {{{ proto int ncurses_init_pair(int pair, int fg, int bg) - */ + Allocate a color pair */ PHP_FUNCTION(ncurses_init_pair) { - zval **pair, **fg, **bg; - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &pair, &fg, &bg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(pair); - convert_to_long_ex(fg); - convert_to_long_ex(bg); + long pair, fg, bg; - RETURN_LONG(init_pair(_INT(pair),_INT(fg),_INT(bg))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll",&pair,&fg,&bg)==FAILURE) { + return; + } + + RETURN_LONG(init_pair(pair,fg,bg)); } /* }}} */ -/* {{{ proto int ncurses_move(int x, int y) - */ +/* {{{ proto int ncurses_move(int y, int x) + Move output position */ PHP_FUNCTION(ncurses_move) { - zval **x, **y; - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &x, &y) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - - RETURN_LONG(move(_INT(x),_INT(y))); + long x, y; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&y,&x)==FAILURE) { + return; + } + RETURN_LONG(move(y,x)); } /* }}} */ + /* {{{ proto int ncurses_newwin(int rows, int cols, int y, int x) - */ + Create a new window */ PHP_FUNCTION(ncurses_newwin) { - zval **rows,**cols,**y,**x; - WINDOW **pwin = (WINDOW **)emalloc(sizeof(WINDOW *)); + long rows,cols,y,x; + WINDOW **pwin = (WINDOW **)emalloc(sizeof(WINDOW *)); - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &rows,&cols,&y,&x) == FAILURE){ - WRONG_PARAM_COUNT; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&rows,&cols,&y,&x)==FAILURE) { + return; + } - convert_to_long_ex(rows); - convert_to_long_ex(cols); - convert_to_long_ex(y); - convert_to_long_ex(x); - - *pwin=newwin(_INT(rows),_INT(cols),_INT(y),_INT(x)); + *pwin=newwin(rows,cols,y,x); - if(!*pwin) { - efree(pwin); - RETURN_FALSE; - } + if(!*pwin) { + efree(pwin); + RETURN_FALSE; + } - ZEND_REGISTER_RESOURCE(return_value, pwin, le_ncurses); + ZEND_REGISTER_RESOURCE(return_value, pwin, le_ncurses); } /* }}} */ /* {{{ proto int ncurses_refresh(int ch) - */ + Refresh screen */ PHP_FUNCTION(ncurses_refresh) { - RETURN_LONG(refresh()); + RETURN_LONG(refresh()); } /* }}} */ /* {{{ proto int ncurses_start_color() - */ + Start using colors */ PHP_FUNCTION(ncurses_start_color) { - RETURN_LONG(start_color()); + RETURN_LONG(start_color()); } /* }}} */ -/* ----- */ - /* {{{ proto int ncurses_standout() - */ + Start using 'standout' attribute */ PHP_FUNCTION(ncurses_standout) { - RETURN_LONG(standout()); + RETURN_LONG(standout()); } /* }}} */ /* {{{ proto int ncurses_standend() - */ + Stop using 'standout' attribute */ PHP_FUNCTION(ncurses_standend) { - RETURN_LONG(standend()); + RETURN_LONG(standend()); } /* }}} */ /* {{{ proto int ncurses_baudrate() - */ + Return baudrate of terminal */ PHP_FUNCTION(ncurses_baudrate) { - RETURN_LONG(baudrate()); + RETURN_LONG(baudrate()); } /* }}} */ /* {{{ proto int ncurses_beep() - */ + Let the terminal beep */ PHP_FUNCTION(ncurses_beep) { - RETURN_LONG(beep()); + RETURN_LONG(beep()); } /* }}} */ /* {{{ proto bool ncurses_can_change_color() - */ + Check if we can change terminals colors */ PHP_FUNCTION(ncurses_can_change_color) { - RETURN_LONG(can_change_color()); -} + RETURN_LONG(can_change_color()); +} /* }}} */ /* {{{ proto bool ncurses_cbreak() - */ + Switch of input buffering */ PHP_FUNCTION(ncurses_cbreak) { - RETURN_LONG(cbreak()); + RETURN_LONG(cbreak()); } /* }}} */ /* {{{ proto bool ncurses_clear() - */ + Clear screen */ PHP_FUNCTION(ncurses_clear) { - RETURN_LONG(clear()); + RETURN_LONG(clear()); } /* }}} */ /* {{{ proto bool ncurses_clrtobot() - */ + Clear screen from current position to bottom */ PHP_FUNCTION(ncurses_clrtobot) { - RETURN_LONG(clrtobot()); + RETURN_LONG(clrtobot()); } /* }}} */ /* {{{ proto bool ncurses_clrtoeol() - */ + Clear screen from current position to end of line */ PHP_FUNCTION(ncurses_clrtoeol) { - RETURN_LONG(clrtoeol()); + RETURN_LONG(clrtoeol()); } /* }}} */ /* {{{ proto bool ncurses_def_prog_mode() - */ + */ PHP_FUNCTION(ncurses_def_prog_mode) { - RETURN_LONG(def_prog_mode()); + RETURN_LONG(def_prog_mode()); } /* }}} */ /* {{{ proto bool ncurses_def_shell_mode() - */ + */ PHP_FUNCTION(ncurses_def_shell_mode) { - RETURN_LONG(def_shell_mode()); + RETURN_LONG(def_shell_mode()); } /* }}} */ /* {{{ proto bool ncurses_delch() - */ + Delete character at current position, move rest of line left */ PHP_FUNCTION(ncurses_delch) { - RETURN_LONG(delch()); + RETURN_LONG(delch()); } /* }}} */ /* {{{ proto bool ncurses_deleteln() - */ + Delete line at current position, move rest of screen up */ PHP_FUNCTION(ncurses_deleteln) { - RETURN_LONG(deleteln()); + RETURN_LONG(deleteln()); } /* }}} */ /* {{{ proto bool ncurses_doupdate() - */ + Write all prepared refreshes to terminal */ PHP_FUNCTION(ncurses_doupdate) { - RETURN_LONG(doupdate()); + RETURN_LONG(doupdate()); } /* }}} */ /* {{{ proto bool ncurses_echo() - */ + Activate keyboard input echo */ PHP_FUNCTION(ncurses_echo) { - RETURN_LONG(echo()); + RETURN_LONG(echo()); } /* }}} */ /* {{{ proto bool ncurses_erase() - */ + Erease terminal screen */ PHP_FUNCTION(ncurses_erase) { - RETURN_LONG(erase()); + RETURN_LONG(erase()); } /* }}} */ /* {{{ proto bool ncurses_erasechar() - */ + Return current erase character */ PHP_FUNCTION(ncurses_erasechar) { - RETURN_LONG(erasechar()); + RETURN_LONG(erasechar()); } /* }}} */ /* {{{ proto bool ncurses_flash() - */ + Flash terminal screen (visual bell) */ PHP_FUNCTION(ncurses_flash) { - RETURN_LONG(flash()); + RETURN_LONG(flash()); } /* }}} */ /* {{{ proto bool ncurses_flushinp() - */ + Flush keyboard input buffer */ PHP_FUNCTION(ncurses_flushinp) { - RETURN_LONG(flushinp()); + RETURN_LONG(flushinp()); } /* }}} */ /* {{{ proto bool ncurses_has_ic() - */ + Check for insert- and delete-capabilities */ PHP_FUNCTION(ncurses_has_ic) { - RETURN_LONG(has_ic()); + RETURN_LONG(has_ic()); } /* }}} */ /* {{{ proto bool ncurses_has_il() - */ + Check for line insert- and delete-capabilities */ PHP_FUNCTION(ncurses_has_il) { - RETURN_LONG(has_il()); + RETURN_LONG(has_il()); } /* }}} */ /* {{{ proto bool ncurses_inch() - */ + Get character and attribute at current position */ PHP_FUNCTION(ncurses_inch) { - RETURN_LONG(inch()); + RETURN_LONG(inch()); } /* }}} */ /* {{{ proto bool ncurses_insertln() - */ + Insert a line, move rest of screen down */ PHP_FUNCTION(ncurses_insertln) { - RETURN_LONG(insertln()); + RETURN_LONG(insertln()); } /* }}} */ /* {{{ proto bool ncurses_isendwin() - */ + Ncurses is in endwin mode, normal screen output may be performed */ PHP_FUNCTION(ncurses_isendwin) { - RETURN_LONG(isendwin()); + RETURN_LONG(isendwin()); } /* }}} */ /* {{{ proto bool ncurses_killchar() - */ + Return current line kill character */ PHP_FUNCTION(ncurses_killchar) { - RETURN_LONG(killchar()); + RETURN_LONG(killchar()); } /* }}} */ /* {{{ proto bool ncurses_nl() - */ + Translate newline and carriage return / line feed */ PHP_FUNCTION(ncurses_nl) { - RETURN_LONG(nl()); + RETURN_LONG(nl()); } /* }}} */ /* {{{ proto bool ncurses_nocbreak() - */ + Switch terminal to cooked mode */ PHP_FUNCTION(ncurses_nocbreak) { - RETURN_LONG(nocbreak()); + RETURN_LONG(nocbreak()); } /* }}} */ /* {{{ proto bool ncurses_noecho() - */ + Switch off keyboard input echo */ PHP_FUNCTION(ncurses_noecho) { - RETURN_LONG(noecho()); + RETURN_LONG(noecho()); } /* }}} */ /* {{{ proto bool ncurses_nonl() - */ + Do not ranslate newline and carriage return / line feed */ PHP_FUNCTION(ncurses_nonl) { - RETURN_LONG(nonl()); + RETURN_LONG(nonl()); } /* }}} */ /* {{{ proto bool ncurses_noraw() - */ + Switch terminal out of raw mode */ PHP_FUNCTION(ncurses_noraw) { - RETURN_LONG(noraw()); + RETURN_LONG(noraw()); } /* }}} */ /* {{{ proto bool ncurses_raw() - */ + Switch terminal into raw mode */ PHP_FUNCTION(ncurses_raw) { - RETURN_LONG(raw()); + RETURN_LONG(raw()); } /* }}} */ /* {{{ proto bool ncurses_resetty() - */ + Restore saved terminal state */ PHP_FUNCTION(ncurses_resetty) { - RETURN_LONG(resetty()); + RETURN_LONG(resetty()); } /* }}} */ /* {{{ proto bool ncurses_savetty() - */ + Save terminal state */ PHP_FUNCTION(ncurses_savetty) { - RETURN_LONG(savetty()); + RETURN_LONG(savetty()); } /* }}} */ /* {{{ proto bool ncurses_termattrs() - */ + Return a logical OR of all attribute flags supported by terminal */ PHP_FUNCTION(ncurses_termattrs) { - RETURN_LONG(termattrs()); + RETURN_LONG(termattrs()); } /* }}} */ /* {{{ proto bool ncurses_use_default_colors() - */ + Assign terminal default colors to color id -1 */ PHP_FUNCTION(ncurses_use_default_colors) { - RETURN_LONG(use_default_colors()); + RETURN_LONG(use_default_colors()); } /* }}} */ /* {{{ proto bool ncurses_slk_attr() - */ + */ PHP_FUNCTION(ncurses_slk_attr) { - RETURN_LONG(slk_attr()); + RETURN_LONG(slk_attr()); } /* }}} */ /* {{{ proto bool ncurses_slk_clear() - */ + */ PHP_FUNCTION(ncurses_slk_clear) { - RETURN_LONG(slk_clear()); + RETURN_LONG(slk_clear()); } /* }}} */ /* {{{ proto bool ncurses_slk_noutrefresh() - */ + */ PHP_FUNCTION(ncurses_slk_noutrefresh) { - RETURN_LONG(slk_noutrefresh()); + RETURN_LONG(slk_noutrefresh()); } /* }}} */ /* {{{ proto bool ncurses_slk_refresh() - */ + */ PHP_FUNCTION(ncurses_slk_refresh) { - RETURN_LONG(slk_refresh()); + RETURN_LONG(slk_refresh()); } /* }}} */ /* {{{ proto bool ncurses_slk_restore() - */ + */ PHP_FUNCTION(ncurses_slk_restore) { - RETURN_LONG(slk_restore()); + RETURN_LONG(slk_restore()); } /* }}} */ /* {{{ proto bool ncurses_slk_touch() - */ + */ PHP_FUNCTION(ncurses_slk_touch) { - RETURN_LONG(slk_touch()); + RETURN_LONG(slk_touch()); } /* }}} */ /* {{{ proto int ncurses_attroff(int intarg) - */ + Turn off the given attributes */ PHP_FUNCTION(ncurses_attroff) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(attroff(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(attroff(intarg)); } /* }}} */ /* {{{ proto int ncurses_attron(int intarg) - */ + Turn on the given attributes */ PHP_FUNCTION(ncurses_attron) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(attron(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(attron(intarg)); } /* }}} */ /* {{{ proto int ncurses_attrset(int intarg) - */ + Set given attributes */ PHP_FUNCTION(ncurses_attrset) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(attrset(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(attrset(intarg)); } /* }}} */ /* {{{ proto int ncurses_bkgd(int intarg) - */ + Set background property for terminal screen */ PHP_FUNCTION(ncurses_bkgd) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(bkgd(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(bkgd(intarg)); } /* }}} */ /* {{{ proto int ncurses_curs_set(int intarg) - */ + Set cursor state */ PHP_FUNCTION(ncurses_curs_set) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(curs_set(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(curs_set(intarg)); } /* }}} */ /* {{{ proto int ncurses_delay_output(int intarg) - */ + Delay output on terminal using padding characters */ PHP_FUNCTION(ncurses_delay_output) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(delay_output(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(delay_output(intarg)); } /* }}} */ /* {{{ proto int ncurses_echochar(int intarg) - */ + Single character output including refresh */ PHP_FUNCTION(ncurses_echochar) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(echochar(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(echochar(intarg)); } /* }}} */ /* {{{ proto int ncurses_halfdelay(int intarg) - */ + Put terminal into halfdelay mode */ PHP_FUNCTION(ncurses_halfdelay) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(halfdelay(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(halfdelay(intarg)); } /* }}} */ /* {{{ proto int ncurses_has_key(int intarg) - */ + Check for presence of a function key on terminal keyboard */ PHP_FUNCTION(ncurses_has_key) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(has_key(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(has_key(intarg)); } /* }}} */ /* {{{ proto int ncurses_insch(int intarg) - */ + Insert character moving rest of line including character at current position */ PHP_FUNCTION(ncurses_insch) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(insch(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(insch(intarg)); } /* }}} */ /* {{{ proto int ncurses_insdelln(int intarg) - */ + Insert lines before current line scrolling down (negative numbers delete and scroll up) */ PHP_FUNCTION(ncurses_insdelln) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(insdelln(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(insdelln(intarg)); } /* }}} */ /* {{{ proto int ncurses_mouseinterval(int intarg) - */ + Set timeout for mouse button clicks */ PHP_FUNCTION(ncurses_mouseinterval) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(mouseinterval(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(mouseinterval(intarg)); } /* }}} */ /* {{{ proto int ncurses_napms(int intarg) - */ + µs sleep */ PHP_FUNCTION(ncurses_napms) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(napms(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(napms(intarg)); } /* }}} */ /* {{{ proto int ncurses_scrl(int intarg) - */ + Scroll window content up or down without changing current position */ PHP_FUNCTION(ncurses_scrl) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(scrl(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(scrl(intarg)); } /* }}} */ /* {{{ proto int ncurses_slk_attroff(int intarg) - */ + */ PHP_FUNCTION(ncurses_slk_attroff) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); - - RETURN_LONG(slk_attroff(_INT(intarg))); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } + + RETURN_LONG(slk_attroff(intarg)); } /* }}} */ /* {{{ proto int ncurses_slk_attron(int intarg) - */ + */ PHP_FUNCTION(ncurses_slk_attron) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(slk_attron(_INT(intarg))); + RETURN_LONG(slk_attron(intarg)); } /* }}} */ /* {{{ proto int ncurses_slk_attrset(int intarg) - */ + */ PHP_FUNCTION(ncurses_slk_attrset) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(slk_attrset(_INT(intarg))); + RETURN_LONG(slk_attrset(intarg)); } /* }}} */ /* {{{ proto int ncurses_slk_color(int intarg) - */ + */ PHP_FUNCTION(ncurses_slk_color) { #ifdef HAVE_NCURSES_SLK_COLOR - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(slk_color(_INT(intarg))); + RETURN_LONG(slk_color(intarg)); #else - php_error(E_WARNING,"%s not supported in this build"); - RETURN_FALSE; + php_error(E_WARNING,"%s not supported in this build"); + RETURN_FALSE; #endif } /* }}} */ /* {{{ proto int ncurses_slk_init(int intarg) - */ + */ PHP_FUNCTION(ncurses_slk_init) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(slk_init(_INT(intarg))); + RETURN_LONG(slk_init(intarg)); } /* }}} */ /* {{{ proto int ncurses_typeahead(int intarg) - */ + Specify different filedescriptor for typeahead checking */ PHP_FUNCTION(ncurses_typeahead) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(typeahead(_INT(intarg))); + RETURN_LONG(typeahead(intarg)); } /* }}} */ /* {{{ proto int ncurses_ungetch(int intarg) - */ + Put a character back into the input stream */ PHP_FUNCTION(ncurses_ungetch) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(ungetch(_INT(intarg))); + RETURN_LONG(ungetch(intarg)); } /* }}} */ /* {{{ proto int ncurses_vidattr(int intarg) - */ + */ PHP_FUNCTION(ncurses_vidattr) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(vidattr(_INT(intarg))); + RETURN_LONG(vidattr(intarg)); } /* }}} */ /* {{{ proto int ncurses_use_extended_names(int intarg) - */ + Control use of extended names in terminfo descriptions */ PHP_FUNCTION(ncurses_use_extended_names) { #ifdef HAVE_NCURSES_USE_EXTENDED_NAMES - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - RETURN_LONG(use_extended_names(_INT(intarg))); + RETURN_LONG(use_extended_names(intarg)); #else - php_error(E_WARNING,"%s not supported in this build"); - RETURN_FALSE; + php_error(E_WARNING,"%s not supported in this build"); + RETURN_FALSE; #endif } /* }}} */ -/* {{{ proto int ncurses_bkgdset(int intarg) - */ +/* {{{ proto void ncurses_bkgdset(int intarg) + Control screen background */ PHP_FUNCTION(ncurses_bkgdset) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - bkgdset(_INT(intarg)); + bkgdset(intarg); } /* }}} */ /* {{{ proto int ncurses_filter() - */ + */ PHP_FUNCTION(ncurses_filter) { - filter(); + filter(); } /* }}} */ /* {{{ proto int ncurses_noqiflush() - */ + Do not flush on signal characters*/ PHP_FUNCTION(ncurses_noqiflush) { - noqiflush(); + noqiflush(); } /* }}} */ /* {{{ proto int ncurses_qiflush() - */ + Flush on signal characters */ PHP_FUNCTION(ncurses_qiflush) { - qiflush(); + qiflush(); } /* }}} */ -/* {{{ proto int ncurses_timeout(int intarg) - */ +/* {{{ proto void ncurses_timeout(int intarg) + Set timeout for special key sequences */ PHP_FUNCTION(ncurses_timeout) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - timeout(_INT(intarg)); + timeout(intarg); } /* }}} */ -/* {{{ proto int ncurses_use_env(int intarg) - */ +/* {{{ proto void ncurses_use_env(int intarg) + Control use of environment information about terminal size */ PHP_FUNCTION(ncurses_use_env) { - zval **intarg; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &intarg) == FAILURE){ - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(intarg); + long intarg; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l",&intarg)==FAILURE) { + return; + } - use_env(_INT(intarg)); + use_env(intarg); } /* }}} */ /* {{{ proto int ncurses_addstr(string text) - */ + Output text at current position */ PHP_FUNCTION(ncurses_addstr) { - zval **data; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &data) == FAILURE) { - WRONG_PARAM_COUNT; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } - convert_to_string_ex(data); - - RETURN_LONG(addstr(_STRING(data))); + RETURN_LONG(addstr(str)); } /* }}} */ - - - -/********************** area of work *************************************/ - - - - /* {{{ proto int ncurses_putp(string text) - */ + */ PHP_FUNCTION(ncurses_putp) { - zval **data; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &data) == FAILURE) { - WRONG_PARAM_COUNT; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } - convert_to_string_ex(data); - - RETURN_LONG(putp(_STRING(data))); + RETURN_LONG(putp(str)); } /* }}} */ /* {{{ proto int ncurses_scr_dump(string text) - */ + Dump screen content to file */ PHP_FUNCTION(ncurses_scr_dump) { - zval **data; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &data) == FAILURE) { - WRONG_PARAM_COUNT; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } - convert_to_string_ex(data); - - RETURN_LONG(scr_dump(_STRING(data))); + RETURN_LONG(scr_dump(str)); } /* }}} */ /* {{{ proto int ncurses_scr_init(string text) - */ + Initialize screen from file dump */ PHP_FUNCTION(ncurses_scr_init) { - zval **data; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &data) == FAILURE) { - WRONG_PARAM_COUNT; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } - convert_to_string_ex(data); - - RETURN_LONG(scr_init(_STRING(data))); + RETURN_LONG(scr_init(str)); } /* }}} */ /* {{{ proto int ncurses_scr_restore(string text) - */ + Restore screen from file dump */ PHP_FUNCTION(ncurses_scr_restore) { - zval **data; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &data) == FAILURE) { - WRONG_PARAM_COUNT; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } - convert_to_string_ex(data); - - RETURN_LONG(scr_restore(_STRING(data))); + RETURN_LONG(scr_restore(str)); } /* }}} */ /* {{{ proto int ncurses_scr_set(string text) - */ + Inherit screen from file dump */ PHP_FUNCTION(ncurses_scr_set) { - zval **data; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &data) == FAILURE) { - WRONG_PARAM_COUNT; - } + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } - convert_to_string_ex(data); - - RETURN_LONG(scr_set(_STRING(data))); + RETURN_LONG(scr_set(str)); } /* }}} */ -/* {{{ proto int ncurses_mvaddch(int x, int y, int c) - */ +/* {{{ proto int ncurses_mvaddch(int y, int x, int c) + Move current position and add character */ PHP_FUNCTION(ncurses_mvaddch) { - zval **x,**y,**c; - - if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &x, &y, &c) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - convert_to_long_ex(c); - - RETURN_LONG(mvaddch(_INT(x),_INT(y),_INT(c))); + long y,x,c; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll",&y,&x,&c)==FAILURE) { + return; + } + + RETURN_LONG(mvaddch(y,x,c)); } /* }}} */ -/* {{{ proto int ncurses_mvaddchnstr(int x, int y, string s, int n) - */ +/* {{{ proto int ncurses_mvaddchnstr(int y, int x, string s, int n) + Move position and add attrributed string with specified length */ PHP_FUNCTION(ncurses_mvaddchnstr) { - zval **x,**y,**s,**n; + long y,x,n; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &x, &y, &s, &n) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - convert_to_string_ex(s); - convert_to_long_ex(n); - - RETURN_LONG(mvaddchnstr(_INT(x),_INT(y),(chtype *)_STRING(s),_INT(n))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llsl",&y,&x,&str,&str_len,&n)==FAILURE) { + return; + } + + RETURN_LONG(mvaddchnstr(y,x,(chtype *)str,n)); } /* }}} */ /* {{{ proto int ncurses_addchnstr(string s, int n) - */ + Add attributed string with specified length at current position */ PHP_FUNCTION(ncurses_addchnstr) { - zval **s,**n; + long n; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &s, &n) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(s); - convert_to_long_ex(n); - - RETURN_LONG(addchnstr((chtype *)_STRING(s),_INT(n))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl",&str,&str_len,&n)==FAILURE) { + return; + } + + RETURN_LONG(addchnstr((chtype *)str,n)); } /* }}} */ -/* {{{ proto int ncurses_mvaddchstr(int x, int y, string s) - */ +/* {{{ proto int ncurses_mvaddchstr(int y, int x, string s) + Move position and add attributed string */ PHP_FUNCTION(ncurses_mvaddchstr) { - zval **x,**y,**s; + long y,x; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &x, &y, &s) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - convert_to_string_ex(s); - - RETURN_LONG(mvaddchstr(_INT(x),_INT(y),(chtype *)_STRING(s))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x,&str,&str_len)==FAILURE) { + return; + } + + RETURN_LONG(mvaddchstr(y,x,(chtype *)str)); } /* }}} */ /* {{{ proto int ncurses_addchstr(string s) - */ + Add attributed string at current position */ PHP_FUNCTION(ncurses_addchstr) { - zval **s; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &s) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(s); - - RETURN_LONG(addchstr((chtype *)_STRING(s))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } + + RETURN_LONG(addchstr((chtype *)str)); } /* }}} */ -/* {{{ proto int ncurses_mvaddnstr(int x, int y, string s, int n) - */ +/* {{{ proto int ncurses_mvaddnstr(int y, int x, string s, int n) + Move position and add string with specified length */ PHP_FUNCTION(ncurses_mvaddnstr) { - zval **x,**y,**s,**n; + long y,x,n; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &x, &y, &s, &n) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - convert_to_string_ex(s); - convert_to_long_ex(n); - - RETURN_LONG(mvaddnstr(_INT(x),_INT(y),_STRING(s),_INT(n))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llsl",&y,&x,&str,&str_len,&n)==FAILURE) { + return; + } + + RETURN_LONG(mvaddnstr(y,x,str,n)); } /* }}} */ -/* {{{ proto int ncurses_addnstr(int x, int y, string s, int n) - */ +/* {{{ proto int ncurses_addnstr(string s, int n) + Add string with specified length at current position */ PHP_FUNCTION(ncurses_addnstr) { - zval **s,**n; + long n; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &s, &n) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(s); - convert_to_long_ex(n); - - RETURN_LONG(addnstr(_STRING(s),_INT(n))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl",&str,&str_len,&n)==FAILURE) { + return; + } + + RETURN_LONG(addnstr(str,n)); } /* }}} */ -/* {{{ proto int ncurses_mvaddstr(int x, int y, string s) - */ +/* {{{ proto int ncurses_mvaddstr(int y, int x, string s) + Move position and add string */ PHP_FUNCTION(ncurses_mvaddstr) { - zval **x,**y,**s; + long y,x; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &x, &y, &s) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - convert_to_string_ex(s); - - RETURN_LONG(mvaddstr(_INT(x),_INT(y),_STRING(s))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x,&str,&str_len)==FAILURE) { + return; + } + + RETURN_LONG(mvaddstr(y,x,str)); } /* }}} */ -/* {{{ proto int ncurses_mvdelch(int x, int y) - */ +/* {{{ proto int ncurses_mvdelch(int y, int x) + Move position and delete character, shift rest of line left */ PHP_FUNCTION(ncurses_mvdelch) { - zval **x,**y,**c; + long y,x; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &x, &y) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - - RETURN_LONG(mvdelch(_INT(x),_INT(y))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x)==FAILURE) { + return; + } + + RETURN_LONG(mvdelch(y,x)); } /* }}} */ -/* {{{ proto int ncurses_mvgetch(int x, int y) - */ +/* {{{ proto int ncurses_mvgetch(int y, int x) + Move position and get character at new position */ PHP_FUNCTION(ncurses_mvgetch) { - zval **x,**y; + long y,x; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &x, &y) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - - RETURN_LONG(mvgetch(_INT(x),_INT(y))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x)==FAILURE) { + return; + } + + RETURN_LONG(mvgetch(y,x)); } /* }}} */ -/* {{{ proto int ncurses_mvinch(int x, int y) - */ +/* {{{ proto int ncurses_mvinch(int y, int x) + Move position and get attributed character at new position */ PHP_FUNCTION(ncurses_mvinch) { - zval **x,**y; + long y,x; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &x, &y) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(x); - convert_to_long_ex(y); - - RETURN_LONG(mvinch(_INT(x),_INT(y))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lls",&y,&x)==FAILURE) { + return; + } + + RETURN_LONG(mvinch(y,x)); } /* }}} */ /* {{{ proto int ncurses_insstr(string) - */ + Insert string at current position, moving rest of line right */ PHP_FUNCTION(ncurses_insstr) { - zval **str; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(str); - - RETURN_LONG(insstr(_STRING(str))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } + + RETURN_LONG(insstr(str)); } /* }}} */ /* {{{ proto int ncurses_instr(string) - */ + */ PHP_FUNCTION(ncurses_instr) { - zval **str; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &str) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(str); - - RETURN_LONG(instr(_STRING(str))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",&str,&str_len)==FAILURE) { + return; + } + + RETURN_LONG(instr(str)); } /* }}} */ /* {{{ proto int ncurses_mvhline(int,int,int,int) - */ + */ PHP_FUNCTION(ncurses_mvhline) { - zval **i1,**i2,**i3,**i4; + long i1,i2,i3,i4; - if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &i1, &i2, &i3, &i4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(i2); - convert_to_long_ex(i3); - convert_to_long_ex(i4); - - RETURN_LONG(mvhline(_INT(i1),_INT(i2),_INT(i3),_INT(i4))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&i1,&i2,&i3,&i4)==FAILURE) { + return; + } + + RETURN_LONG(mvhline(i1,i2,i3,i4)); } /* }}} */ /* {{{ proto int ncurses_mvcur(int,int,int,int) - */ + */ PHP_FUNCTION(ncurses_mvcur) { - zval **i1,**i2,**i3,**i4; + long i1,i2,i3,i4; - if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &i1, &i2, &i3, &i4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(i2); - convert_to_long_ex(i3); - convert_to_long_ex(i4); - - RETURN_LONG(mvcur(_INT(i1),_INT(i2),_INT(i3),_INT(i4))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&i1,&i2,&i3,&i4)==FAILURE) { + return; + } + + RETURN_LONG(mvcur(i1,i2,i3,i4)); } /* }}} */ /* {{{ proto int ncurses_init_color(int,int,int,int) - */ + */ PHP_FUNCTION(ncurses_init_color) { - zval **i1,**i2,**i3,**i4; + long i1,i2,i3,i4; - if(ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &i1, &i2, &i3, &i4) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(i2); - convert_to_long_ex(i3); - convert_to_long_ex(i4); - - RETURN_LONG(init_color(_INT(i1),_INT(i2),_INT(i3),_INT(i4))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llll",&i1,&i2,&i3,&i4)==FAILURE) { + return; + } + + RETURN_LONG(init_color(i1,i2,i3,i4)); } /* }}} */ /* {{{ proto int ncurses_border(int,int,int,int,int,int,int,int) - */ + */ PHP_FUNCTION(ncurses_border) { - zval **i1,**i2,**i3,**i4,**i5,**i6,**i7,**i8; + long i1,i2,i3,i4,i5,i6,i7,i8; - if(ZEND_NUM_ARGS() != 8 || zend_get_parameters_ex(8, &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(i2); - convert_to_long_ex(i3); - convert_to_long_ex(i4); - convert_to_long_ex(i5); - convert_to_long_ex(i6); - convert_to_long_ex(i7); - convert_to_long_ex(i8); - - RETURN_LONG(border(_INT(i1),_INT(i2),_INT(i3),_INT(i4),_INT(i5),_INT(i6),_INT(i7),_INT(i8))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "llllllll",&i1,&i2,&i3,&i4,&i5,&i6,&i7,&i8)==FAILURE) { + return; + } + + RETURN_LONG(border(i1,i2,i3,i4,i5,i6,i7,i8)); } /* }}} */ /* {{{ proto int ncurses_assume_default_colors(int,int) - */ + */ PHP_FUNCTION(ncurses_assume_default_colors) { #ifdef HAVE_NCURSES_ASSUME_DEFAULT_COLORS - zval **i1,**i2; + long i1,i2; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &i1, &i2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(i2); - - RETURN_LONG(assume_default_colors(_INT(i1),_INT(i2))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i1,&i2)==FAILURE) { + return; + } + + RETURN_LONG(assume_default_colors(i1,i2)); #else - php_error(E_WARNING,"%s not supported in this build"); - RETURN_FALSE; + php_error(E_WARNING,"%s not supported in this build"); + RETURN_FALSE; #endif } /* }}} */ /* {{{ proto int ncurses_define_key(string,int) - */ + */ PHP_FUNCTION(ncurses_define_key) { - zval **s1,**i2; + long n; + char *str; + int str_len; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &s1, &i2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(s1); - convert_to_long_ex(i2); - - RETURN_LONG(define_key(_STRING(s1),_INT(i2))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl",&str,&str_len,&n)==FAILURE) { + return; + } + + RETURN_LONG(define_key(str,n)); } /* }}} */ /* {{{ proto int ncurses_hline(int,int) - */ + */ PHP_FUNCTION(ncurses_hline) { - zval **i1,**i2; + long i1,i2; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &i1, &i2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(i2); - - RETURN_LONG(hline(_INT(i1),_INT(i2))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i1,&i2)==FAILURE) { + return; + } + + RETURN_LONG(hline(i1,i2)); } /* }}} */ /* {{{ proto int ncurses_vline(int,int) - */ + */ PHP_FUNCTION(ncurses_vline) { - zval **i1,**i2; + long i1,i2; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &i1, &i2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(i2); - - RETURN_LONG(vline(_INT(i1),_INT(i2))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i1,&i2)==FAILURE) { + return; + } + + RETURN_LONG(vline(i1,i2)); } /* }}} */ /* {{{ proto int ncurses_keyok(int,bool) - */ + */ PHP_FUNCTION(ncurses_keyok) { - zval **i1,**b2; + long i,b; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &i1, &b2) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(i1); - convert_to_long_ex(b2); - - RETURN_LONG(hline(_INT(i1),_INT(b2))); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll",&i,&b)==FAILURE) { + return; + } + + RETURN_LONG(hline(i,b)); } /* }}} */ /* {{{ proto int ncurses_mvwaddstr(resource window, int y, int x, string text) - */ + */ PHP_FUNCTION(ncurses_mvwaddstr) { - zval **handle, **x, **y, **text; - WINDOW **w; + zval **handle, **x, **y, **text; + WINDOW **w; - if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &handle, &y, &x, &text) == FAILURE){ - WRONG_PARAM_COUNT; - } + if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &handle, &y, &x, &text) == FAILURE){ + WRONG_PARAM_COUNT; + } - FETCH_WINRES(w,handle); + FETCH_WINRES(w,handle); - convert_to_long_ex(y); - convert_to_long_ex(x); - convert_to_string_ex(text); + convert_to_long_ex(y); + convert_to_long_ex(x); + convert_to_string_ex(text); - RETURN_LONG(mvwaddstr(*w,_INT(y),_INT(x),_STRING(text))); + + RETURN_LONG(mvwaddstr(*w,Z_LVAL_PP(y),Z_LVAL_PP(x),Z_STRVAL_PP(text))); } /* }}} */ /* {{{ proto int ncurses_wrefresh(resource window) - */ + */ PHP_FUNCTION(ncurses_wrefresh) { - zval **handle; - WINDOW **w; + zval **handle; + WINDOW **w; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &handle) == FAILURE){ - WRONG_PARAM_COUNT; - } + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &handle) == FAILURE){ + WRONG_PARAM_COUNT; + } - FETCH_WINRES(w,handle); + FETCH_WINRES(w,handle); - RETURN_LONG(wrefresh(*w)); + RETURN_LONG(wrefresh(*w)); } /* }}} */