commit:     d5cd69b3d1d2cc59602b69b8338b8f1f63c4f73e
Author:     Brian Evans <grknight <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  7 15:24:43 2019 +0000
Commit:     Brian Evans <grknight <AT> gentoo <DOT> org>
CommitDate: Fri Jun  7 15:24:43 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d5cd69b3

dev-php/pecl-ncurses: Revbump for PHP 7.3 support.

Patch taken from https://github.com/OOPS-ORG-PHP/mod_ncurses changes

Package-Manager: Portage-2.3.67, Repoman-2.3.14
Signed-off-by: Brian Evans <grknight <AT> gentoo.org>

 .../files/pecl-ncurses-1.0.2-php7.3.patch          | 175 +++++++++++++++++++++
 dev-php/pecl-ncurses/pecl-ncurses-1.0.2-r5.ebuild  |  23 +++
 2 files changed, 198 insertions(+)

diff --git a/dev-php/pecl-ncurses/files/pecl-ncurses-1.0.2-php7.3.patch 
b/dev-php/pecl-ncurses/files/pecl-ncurses-1.0.2-php7.3.patch
new file mode 100644
index 00000000000..9b4f8a6274b
--- /dev/null
+++ b/dev-php/pecl-ncurses/files/pecl-ncurses-1.0.2-php7.3.patch
@@ -0,0 +1,175 @@
+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);

diff --git a/dev-php/pecl-ncurses/pecl-ncurses-1.0.2-r5.ebuild 
b/dev-php/pecl-ncurses/pecl-ncurses-1.0.2-r5.ebuild
new file mode 100644
index 00000000000..929d4af5296
--- /dev/null
+++ b/dev-php/pecl-ncurses/pecl-ncurses-1.0.2-r5.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+USE_PHP="php5-6 php7-1 php7-2 php7-3"
+
+inherit php-ext-pecl-r3
+
+SRC_URI+=" https://dev.gentoo.org/~grknight/distfiles/${P}-php7.patch.xz";
+
+DESCRIPTION="Terminal screen handling and optimization package"
+
+LICENSE="PHP-3.01"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="sys-libs/ncurses:0="
+RDEPEND="${DEPEND}"
+
+PHP_EXT_ECONF_ARGS=( --enable-ncursesw )
+PATCHES=( "${WORKDIR}/${P}-php7.patch" "${FILESDIR}/${P}-php7.3.patch" )

Reply via email to