You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-php/pecl-ncurses/files/pecl-ncurses-1.0.2-php7.3.p...

176 lines
4.6 KiB

diff -aurN a/ncurses_fe.c b/ncurses_fe.c
--- a/ncurses_fe.c 2012-06-16 13:05:19.000000000 -0400
+++ b/ncurses_fe.c 2019-02-06 10:41:09.000000000 -0500
@@ -123,7 +123,9 @@
PHP_FE(ncurses_savetty, NULL)
PHP_FE(ncurses_termattrs, NULL)
PHP_FE(ncurses_use_default_colors, NULL)
+#ifdef HAVE_NCURSES_SLK_ATTR
PHP_FE(ncurses_slk_attr, NULL)
+#endif
PHP_FE(ncurses_slk_clear, NULL)
PHP_FE(ncurses_slk_noutrefresh, NULL)
PHP_FE(ncurses_slk_refresh, NULL)
@@ -191,7 +193,9 @@
#ifdef HAVE_NCURSES_ASSUME_DEFAULT_COLORS
PHP_FE(ncurses_assume_default_colors, NULL)
#endif
+#ifdef HAVE_NCURSES_DEFINE_KEY
PHP_FE(ncurses_define_key, NULL)
+#endif
PHP_FE(ncurses_hline, NULL)
PHP_FE(ncurses_vline, NULL)
PHP_FE(ncurses_keyok, NULL)
@@ -205,6 +209,10 @@
PHP_FE(ncurses_waddstr, NULL)
PHP_FE(ncurses_wnoutrefresh, NULL)
PHP_FE(ncurses_wclear, NULL)
+ PHP_FE(ncurses_wscrl, NULL)
+ PHP_FE(ncurses_wsetscrreg, NULL)
+ PHP_FE(ncurses_scrollok, NULL)
+
#ifdef HAVE_NCURSES_COLOR_SET
PHP_FE(ncurses_wcolor_set, NULL)
#endif
diff -aurN a/ncurses_functions.c b/ncurses_functions.c
--- a/ncurses_functions.c 2019-06-07 11:00:54.713250845 -0400
+++ b/ncurses_functions.c 2019-02-06 10:41:09.000000000 -0500
@@ -163,16 +163,25 @@
*pscr = stdscr;
zscr = zend_register_resource(pscr, le_ncurses_windows);
ZVAL_RES(&c.value, zscr);
+#if PHP_VERSION_ID < 70300
c.flags = CONST_CS;
+#endif
c.name = zend_string_init("STDSCR", sizeof("STDSCR")-1, 0);
zend_register_constant(&c);
+#if PHP_VERSION_ID < 70300
#define PHP_NCURSES_DEF_CONST(x) \
ZVAL_LONG(&c.value, x); \
c.flags = CONST_CS; \
c.name = zend_string_init("NCURSES_" #x, sizeof("NCURSES_" #x)-1, 0); \
zend_register_constant(&c)
#else
+#define PHP_NCURSES_DEF_CONST(x) \
+ ZVAL_LONG(&c.value, x); \
+ c.name = zend_string_init("NCURSES_" #x, sizeof("NCURSES_" #x)-1, 0); \
+ zend_register_constant(&c)
+#endif
+#else
zval *zscr;
*pscr = stdscr;
@@ -188,7 +197,6 @@
/* we need this "interesting" arrangement because the
* underlying values of the ACS_XXX defines are not
* initialized until after ncurses has been initialized */
-
#define PHP_NCURSES_DEF_CONST(x) \
ZVAL_LONG(zscr, x); \
c.value = *zscr; \
@@ -1904,6 +1912,66 @@
}
/* }}} */
+/* {{{ proto int ncurses_wscrl(resource window, int count)
+ Scrolls window content up or down without changing current position */
+PHP_FUNCTION(ncurses_wscrl)
+{
+ zval *handle;
+ zend_long intarg;
+ WINDOW **w;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &handle, &intarg) == FAILURE) {
+ return;
+ }
+
+ IS_NCURSES_INITIALIZED();
+
+ FETCH_WINRES(w, &handle);
+
+ RETURN_LONG(wscrl(*w, intarg));
+}
+/* }}} */
+
+/* {{{ proto int ncurses_wsetscrreg(resource window, int top, int bot)
+ Set region for scrolling */
+PHP_FUNCTION(ncurses_wsetscrreg)
+{
+ zval *handle;
+ zend_long top, bot;
+ WINDOW **w;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rll", &handle, &top, &bot) == FAILURE) {
+ return;
+ }
+
+ IS_NCURSES_INITIALIZED();
+
+ FETCH_WINRES(w, &handle);
+
+ RETURN_LONG(wsetscrreg(*w, top, bot));
+}
+/* }}} */
+
+/* {{{ proto int ncurses_scrollok(resource window, bool bf)
+ Enable or disable scrolling of window content */
+PHP_FUNCTION(ncurses_scrollok)
+{
+ zval *handle;
+ zend_bool bf;
+ WINDOW **w;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &handle, &bf) == FAILURE) {
+ return;
+ }
+
+ IS_NCURSES_INITIALIZED();
+
+ FETCH_WINRES(w, &handle);
+
+ RETURN_LONG(scrollok(*w, bf));
+}
+/* }}} */
+
/* {{{ proto string ncurses_termname(void)
Returns terminal name */
PHP_FUNCTION(ncurses_termname)
@@ -2609,7 +2677,11 @@
if (above) {
#if PHP_MAJOR_VERSION >= 7
zend_resource *id = (zend_resource *)panel_userptr(above);
+#if PHP_VERSION_ID < 70300
GC_REFCOUNT(id)++;
+#else
+ GC_ADDREF(id);
+#endif
RETURN_RES(id);
#else
long id = (long)panel_userptr(above);
@@ -2643,7 +2715,11 @@
if (below) {
#if PHP_MAJOR_VERSION >= 7
zend_resource *id = (zend_resource *)panel_userptr(below);
+#if PHP_VERSION_ID < 70300
GC_REFCOUNT(id)++;
+#else
+ GC_ADDREF(id);
+#endif
RETURN_RES(id);
#else
long id = (long)panel_userptr(below);
diff -aurN a/php_ncurses_fe.h b/php_ncurses_fe.h
--- a/php_ncurses_fe.h 2012-06-16 13:05:19.000000000 -0400
+++ b/php_ncurses_fe.h 2019-02-06 10:41:09.000000000 -0500
@@ -158,6 +158,9 @@
PHP_FUNCTION(ncurses_prefresh);
PHP_FUNCTION(ncurses_pnoutrefresh);
+PHP_FUNCTION(ncurses_wscrl);
+PHP_FUNCTION(ncurses_wsetscrreg);
+PHP_FUNCTION(ncurses_scrollok);
PHP_FUNCTION(ncurses_wstandout);
PHP_FUNCTION(ncurses_wstandend);
PHP_FUNCTION(ncurses_wattrset);