From 8d167dafc8820aebdbc7391ff585736ce2ec2645 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 13 Oct 2013 20:01:36 +0200 Subject: php-pecl-newt: 1.2.6 + svn - New package --- newt-svn.patch | 320 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 320 insertions(+) create mode 100644 newt-svn.patch (limited to 'newt-svn.patch') diff --git a/newt-svn.patch b/newt-svn.patch new file mode 100644 index 0000000..84724c8 --- /dev/null +++ b/newt-svn.patch @@ -0,0 +1,320 @@ +--- pecl/newt/trunk/newt.c 2013/10/12 22:58:46 331791 ++++ pecl/newt/trunk/newt.c 2013/10/13 14:38:40 331792 +@@ -3615,7 +3615,7 @@ + + items[i].text = Z_STRVAL_PP(z_item_text); + strs[i] = Z_STRVAL_PP(z_item_value); +- items[i].value = (const char **)&strs[i]; ++ items[i].value = &strs[i]; + items[i].flags = (z_item_flags ? Z_LVAL_PP(z_item_flags) : 0); + + i++; +--- pecl/newt/trunk/newt.c 2013/10/13 14:38:40 331792 ++++ pecl/newt/trunk/newt.c 2013/10/13 14:39:50 331793 +@@ -3129,7 +3129,7 @@ + newtComponent val; + long pad_left, pad_top, pad_right, pad_bottom, anchor, flags = 0; + +- if (zend_parse_parameters (ZEND_NUM_ARGS() TSRMLS_CC, "rlllrlllll|l", &z_grid, &col, &row, &z_val, &pad_left, ++ if (zend_parse_parameters (ZEND_NUM_ARGS() TSRMLS_CC, "rlllrlllll|l", &z_grid, &col, &row, &type, &z_val, &pad_left, + &pad_top, &pad_right, &pad_bottom, &anchor, &flags) == FAILURE) { + return; + } +--- pecl/newt/trunk/newt.c 2013/10/13 14:39:50 331793 ++++ pecl/newt/trunk/newt.c 2013/10/13 15:08:10 331794 +@@ -47,6 +47,11 @@ + ZEND_ARG_PASS_INFO(1) + ZEND_END_ARG_INFO() + ++ZEND_BEGIN_ARG_INFO(both_arg_force_ref, 0) ++ ZEND_ARG_PASS_INFO(1) ++ ZEND_ARG_PASS_INFO(1) ++ZEND_END_ARG_INFO() ++ + ZEND_BEGIN_ARG_INFO(secondandthird_arg_force_ref, 0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(1) +@@ -135,11 +140,7 @@ + #ifdef HAVE_NEWT_LISTITEM_GET_DATA + PHP_FE(newt_listitem_get_data, NULL) + #endif +-#ifdef all_args_by_ref +- PHP_FE(newt_get_screen_size, all_args_by_ref) +-#else +- PHP_FE(newt_get_screen_size, NULL) +-#endif ++ PHP_FE(newt_get_screen_size, both_arg_force_ref) + PHP_FE(newt_label, NULL) + PHP_FE(newt_label_set_text, NULL) + PHP_FE(newt_vertical_scrollbar, NULL) +--- pecl/newt/trunk/examples/newt_win_menu.php 2013/10/13 15:08:10 331794 ++++ pecl/newt/trunk/examples/newt_win_menu.php 2013/10/13 15:09:23 331795 +@@ -5,7 +5,7 @@ + $options = array("eth0", "eth1", "lo"); + $option = 1; + +- $rc = newt_win_menu("Network configuration tool", "Which interface to configure?", 30, 0, 20, 6, $options, &$option, "Ok", "Back"); ++ $rc = newt_win_menu("Network configuration tool", "Which interface to configure?", 30, 0, 20, 6, $options, $option, "Ok", "Back"); + + newt_finished (); + +--- pecl/newt/trunk/examples/redhat_netconf_example.php 2013/10/13 15:08:10 331794 ++++ pecl/newt/trunk/examples/redhat_netconf_example.php 2013/10/13 15:09:23 331795 +@@ -6,7 +6,7 @@ + newt_push_help_line (null); + newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc"); + +- newt_get_screen_size (&$rows, &$cols); ++ newt_get_screen_size ($rows, $cols); + + newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool"); + +--- pecl/newt/trunk/newt_vcall.c 2013/10/13 15:09:23 331795 ++++ pecl/newt/trunk/newt_vcall.c 2013/10/13 15:12:56 331796 +@@ -125,6 +125,7 @@ + case 99: return f(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31],a[32],a[33],a[34],a[35],a[36],a[37],a[38],a[39],a[40],a[41],a[42],a[43],a[44],a[45],a[46],a[47],a[48],a[49],a[50],a[51],a[52],a[53],a[54],a[55],a[56],a[57],a[58],a[59],a[60],a[61],a[62],a[63],a[64],a[65],a[66],a[67],a[68],a[69],a[70],a[71],a[72],a[73],a[74],a[75],a[76],a[77],a[78],a[79],a[80],a[81],a[82],a[83],a[84],a[85],a[86],a[87],a[88],a[89],a[90],a[91],a[92],a[93],a[94],a[95],a[96],a[97],a[98],NULL); + case 100: return f(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31],a[32],a[33],a[34],a[35],a[36],a[37],a[38],a[39],a[40],a[41],a[42],a[43],a[44],a[45],a[46],a[47],a[48],a[49],a[50],a[51],a[52],a[53],a[54],a[55],a[56],a[57],a[58],a[59],a[60],a[61],a[62],a[63],a[64],a[65],a[66],a[67],a[68],a[69],a[70],a[71],a[72],a[73],a[74],a[75],a[76],a[77],a[78],a[79],a[80],a[81],a[82],a[83],a[84],a[85],a[86],a[87],a[88],a[89],a[90],a[91],a[92],a[93],a[94],a[95],a[96],a[97],a[98],a[99],NULL); + } ++ return NULL; + } + + /* +--- pecl/newt/trunk/newt.c 2013/10/13 15:12:56 331796 ++++ pecl/newt/trunk/newt.c 2013/10/13 15:38:00 331797 +@@ -1932,7 +1932,7 @@ + + int argc = ZEND_NUM_ARGS(); + if (argc < 5) { WRONG_PARAM_COUNT; } +- if (zend_parse_parameters ((argc - 1) TSRMLS_CC, "rszl", &z_checkboxtree, &text, &text_len, &z_data, &flags) == FAILURE) { ++ if (zend_parse_parameters (4 TSRMLS_CC, "rszl", &z_checkboxtree, &text, &text_len, &z_data, &flags) == FAILURE) { + return; + } + +@@ -1946,7 +1946,7 @@ + + PHP_NEWT_STORE_DATA (z_data, key); + +- newt_args = (void **) safe_emalloc (argc, sizeof(void *), 0); ++ newt_args = (void **) safe_emalloc (argc+1, sizeof(void *), 0); + newt_args[0] = (void *)checkboxtree; + newt_args[1] = (void *)text; + newt_args[2] = (void *)key; +@@ -1961,8 +1961,9 @@ + } + newt_args[i] = (void *)Z_LVAL_PP(args[i]); + } +- +- newt_vcall ((void *)newtCheckboxTreeAddItem, newt_args, argc); ++ /* add NEWT_ARG_LAST is forgotten by user to avoid segfault, bug #64990 */ ++ newt_args[argc] = (void *)NEWT_ARG_LAST; ++ newt_vcall ((void *)newtCheckboxTreeAddItem, newt_args, argc+1); + + efree (newt_args); + efree (args); +--- pecl/newt/trunk/newt.c 2013/10/13 16:10:23 331800 ++++ pecl/newt/trunk/newt.c 2013/10/13 17:13:01 331801 +@@ -249,6 +249,13 @@ + }; + /* }}} */ + ++ZEND_DECLARE_MODULE_GLOBALS (newt) ++#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5) ++/* This "if" allows PECL builds from this file to be portable to older PHP releases */ ++static PHP_GINIT_FUNCTION(newt); ++static PHP_GSHUTDOWN_FUNCTION(newt); ++#endif ++ + /* {{{ newt_module_entry + */ + zend_module_entry newt_module_entry = { +@@ -261,19 +268,33 @@ + NULL, + PHP_MINFO(newt), + PHP_NEWT_VERSION, ++#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5) ++ /* This check allows PECL builds from this file to be portable to older PHP releases */ ++ PHP_MODULE_GLOBALS(newt), ++ PHP_GINIT(newt), ++ PHP_GSHUTDOWN(newt), ++ NULL, ++ STANDARD_MODULE_PROPERTIES_EX ++#else + STANDARD_MODULE_PROPERTIES ++#endif + }; + /* }}} */ + +-ZEND_DECLARE_MODULE_GLOBALS (newt) +- + #ifdef COMPILE_DL_NEWT + ZEND_GET_MODULE(newt) + #endif + +-/* {{{ php_newt_init_globals ++/* {{{ PHP_GINIT_FUNCTION ++ * ++ * Zerofill globals during module init + */ ++#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5) ++/* This check allows PECL builds from this file to be portable to older PHP releases */ ++static PHP_GINIT_FUNCTION(newt) ++#else + static void php_newt_init_globals (zend_newt_globals *newt_globals TSRMLS_DC) ++#endif + { + newt_globals->newt_has_inited = 0; + +@@ -282,9 +303,16 @@ + } + /* }}} */ + +-/* {{{ php_newt_destroy_globals ++/* {{{ PHP_GSHUTDOWN_FUNCTION ++ * ++ * Called for thread shutdown in ZTS, after module shutdown for non-ZTS + */ ++/* This check allows PECL builds from this file to be portable to older PHP releases */ ++#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5) ++static PHP_GSHUTDOWN_FUNCTION(newt) ++#else + static void php_newt_destroy_globals(zend_newt_globals *newt_globals TSRMLS_DC) ++#endif + { + if (newt_globals->newt_has_inited) { + newtFinished(); +@@ -295,6 +323,7 @@ + } + /* }}} */ + ++ + /* {{{ php_newt_free_cb + */ + void php_newt_free_cb (php_newt_cb **cb_ptr) +@@ -397,7 +426,12 @@ + le_newt_comp = zend_register_list_destructors_ex(NULL, NULL, le_newt_comp_name, module_number); + le_newt_grid = zend_register_list_destructors_ex(NULL, NULL, le_newt_grid_name, module_number); + ++#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5) ++ /* This check allows PECL builds from this file to be portable to older PHP releases */ ++ /* this is handled by new globals management code */ ++#else + ZEND_INIT_MODULE_GLOBALS (newt, php_newt_init_globals, php_newt_destroy_globals); ++#endif + + /* Colorsets */ + REGISTER_NEWT_CONSTANT(NEWT_COLORSET_ROOT); +@@ -548,8 +582,11 @@ + */ + PHP_MSHUTDOWN_FUNCTION(newt) + { ++/* Work around PHP_GSHUTDOWN_FUNCTION not being called in older versions of PHP */ ++#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 2) || (PHP_MAJOR_VERSION < 5) + #ifndef ZTS + php_newt_destroy_globals (&newt_globals TSRMLS_CC); ++#endif + #endif + + return SUCCESS; +--- pecl/newt/trunk/php_newt.h 2013/10/13 16:10:23 331800 ++++ pecl/newt/trunk/php_newt.h 2013/10/13 17:13:01 331801 +@@ -232,8 +232,6 @@ + static void newt_suspend_callback_wrapper (void *cb_key); + static void newt_help_callback_wrapper (newtComponent form, char *help); + +-static void php_newt_init_globals (zend_newt_globals *newt_globals TSRMLS_DC); +-static void php_newt_destroy_globals(zend_newt_globals *newt_globals TSRMLS_DC); + void php_newt_free_cb (php_newt_cb **cb_ptr); + int php_newt_fetch_resource (zval *rsrc, void *data, int le_type); + +--- pecl/newt/trunk/config.m4 2013/10/13 17:43:44 331807 ++++ pecl/newt/trunk/config.m4 2013/10/13 17:54:46 331808 +@@ -32,12 +32,12 @@ + + if test "$PHP_CURSES_DIR" != "no"; then + for i in $PHP_CURSES_DIR /usr/local /usr; do +- if test -f $i/lib/libncurses.$SHLIB_SUFFIX_NAME -o -f $i/lib/libncurses.a; then +- PHP_ADD_LIBRARY_WITH_PATH(ncurses, $i/lib, NEWT_SHARED_LIBADD) ++ if test -f $i/$PHP_LIBDIR/libncurses.$SHLIB_SUFFIX_NAME -o -f $i/$PHP_LIBDIR/libncurses.a; then ++ PHP_ADD_LIBRARY_WITH_PATH(ncurses, $i/$PHP_LIBDIR, NEWT_SHARED_LIBADD) + break + fi +- if test -f $i/lib/libcurses.$SHLIB_SUFFIX_NAME -o -f $i/lib/libcurses.a; then +- PHP_ADD_LIBRARY_WITH_PATH(curses, $i/lib, NEWT_SHARED_LIBADD) ++ if test -f $i/$PHP_LIBDIR/libcurses.$SHLIB_SUFFIX_NAME -o -f $i/$PHP_LIBDIR/libcurses.a; then ++ PHP_ADD_LIBRARY_WITH_PATH(curses, $i/$PHP_LIBDIR, NEWT_SHARED_LIBADD) + break + fi + done +@@ -45,8 +45,8 @@ + + if test "$PHP_SLANG_DIR" != "no"; then + for i in $PHP_SLANG_DIR /usr/local /usr; do +- if test -f $i/lib/libslang.$SHLIB_SUFFIX_NAME -o -f $i/lib/libslang.a; then +- PHP_ADD_LIBRARY_WITH_PATH(slang, $i/lib, NEWT_SHARED_LIBADD) ++ if test -f $i/$PHP_LIBDIR/libslang.$SHLIB_SUFFIX_NAME -o -f $i/$PHP_LIBDIR/libslang.a; then ++ PHP_ADD_LIBRARY_WITH_PATH(slang, $i/$PHP_LIBDIR, NEWT_SHARED_LIBADD) + break + fi + done +@@ -57,44 +57,44 @@ + PHP_CHECK_LIBRARY(newt,newtInit, + [ + PHP_ADD_INCLUDE($NEWT_DIR/include) +- PHP_ADD_LIBRARY_WITH_PATH(newt, $NEWT_DIR/lib, NEWT_SHARED_LIBADD) ++ PHP_ADD_LIBRARY_WITH_PATH(newt, $NEWT_DIR/$PHP_LIBDIR, NEWT_SHARED_LIBADD) + AC_DEFINE(HAVE_NEWTLIB,1,[ ]) + ],[ + AC_MSG_ERROR([newt extension requires libnewt]) + ],[ +- -L$NEWT_DIR/lib ++ -L$NEWT_DIR/$PHP_LIBDIR + ]) + + PHP_SUBST(NEWT_SHARED_LIBADD) + +- PHP_CHECK_LIBRARY(newt, newtListitem, [AC_DEFINE(HAVE_NEWT_LISTITEM,1,[ ])],, [-L$NEWT_DIR/lib]) +- PHP_CHECK_LIBRARY(newt, newtListitemSet, [AC_DEFINE(HAVE_NEWT_LISTITEM_SET,1,[ ])],, [-L$NEWT_DIR/lib]) +- PHP_CHECK_LIBRARY(newt, newtListitemGetData, [AC_DEFINE(HAVE_NEWT_LISTITEM_GET_DATA,1,[ ])],, [-L$NEWT_DIR/lib]) +- PHP_CHECK_LIBRARY(newt, newtResizeScreen, [AC_DEFINE(HAVE_NEWT_RESIZE_SCREEN,1,[ ])],, [-L$NEWT_DIR/lib]) +- PHP_CHECK_LIBRARY(newt, newtListboxItemCount, [AC_DEFINE(HAVE_NEWT_LISTBOX_ITEM_COUNT,1,[ ])],, [-L$NEWT_DIR/lib]) +- PHP_CHECK_LIBRARY(newt, newtSetHelpCallback, [AC_DEFINE(HAVE_NEWT_SET_HELP_CALLBACK,1,[ ])],, [-L$NEWT_DIR/lib]) +- PHP_CHECK_LIBRARY(newt, newtCursorOff, [AC_DEFINE(HAVE_NEWT_CURSOR_OFF,1,[ ])],, [-L$NEWT_DIR/lib]) +- PHP_CHECK_LIBRARY(newt, newtCursorOn, [AC_DEFINE(HAVE_NEWT_CURSOR_ON,1,[ ])],, [-L$NEWT_DIR/lib]) ++ PHP_CHECK_LIBRARY(newt, newtListitem, [AC_DEFINE(HAVE_NEWT_LISTITEM,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) ++ PHP_CHECK_LIBRARY(newt, newtListitemSet, [AC_DEFINE(HAVE_NEWT_LISTITEM_SET,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) ++ PHP_CHECK_LIBRARY(newt, newtListitemGetData, [AC_DEFINE(HAVE_NEWT_LISTITEM_GET_DATA,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) ++ PHP_CHECK_LIBRARY(newt, newtResizeScreen, [AC_DEFINE(HAVE_NEWT_RESIZE_SCREEN,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) ++ PHP_CHECK_LIBRARY(newt, newtListboxItemCount, [AC_DEFINE(HAVE_NEWT_LISTBOX_ITEM_COUNT,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) ++ PHP_CHECK_LIBRARY(newt, newtSetHelpCallback, [AC_DEFINE(HAVE_NEWT_SET_HELP_CALLBACK,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) ++ PHP_CHECK_LIBRARY(newt, newtCursorOff, [AC_DEFINE(HAVE_NEWT_CURSOR_OFF,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) ++ PHP_CHECK_LIBRARY(newt, newtCursorOn, [AC_DEFINE(HAVE_NEWT_CURSOR_ON,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + + PHP_CHECK_LIBRARY(newt, newtCheckboxTreeGetCurrent, [ +- AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_GET_CURRENT,1,[ ])],, [-L$NEWT_DIR/lib]) ++ AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_GET_CURRENT,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + + PHP_CHECK_LIBRARY(newt, newtCheckboxTreeSetCurrent, [ +- AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_CURRENT,1,[ ])],, [-L$NEWT_DIR/lib]) ++ AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_CURRENT,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + + PHP_CHECK_LIBRARY(newt, newtCheckboxTreeSetEntry, [ +- AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_ENTRY,1,[ ])],, [-L$NEWT_DIR/lib]) ++ AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_ENTRY,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + + PHP_CHECK_LIBRARY(newt, newtCheckboxTreeSetWidth, [ +- AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_WIDTH,1,[ ])],, [-L$NEWT_DIR/lib]) ++ AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_WIDTH,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + + PHP_CHECK_LIBRARY(newt, newtCheckboxTreeGetEntryValue, [ +- AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_GET_ENTRY_VALUE,1,[ ])],, [-L$NEWT_DIR/lib]) ++ AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_GET_ENTRY_VALUE,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + + PHP_CHECK_LIBRARY(newt, newtCheckboxTreeSetEntryValue, [ +- AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_ENTRY_VALUE,1,[ ])],, [-L$NEWT_DIR/lib]) ++ AC_DEFINE(HAVE_NEWT_CHECKBOX_TREE_SET_ENTRY_VALUE,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + +- PHP_CHECK_LIBRARY(newt, newtFormSetTimer, [AC_DEFINE(HAVE_NEWT_FORM_SET_TIMER,1,[ ])],, [-L$NEWT_DIR/lib]) ++ PHP_CHECK_LIBRARY(newt, newtFormSetTimer, [AC_DEFINE(HAVE_NEWT_FORM_SET_TIMER,1,[ ])],, [-L$NEWT_DIR/$PHP_LIBDIR]) + + AC_MSG_CHECKING([if newtExistStruct has u.watch]) + -- cgit