diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/Makefile /usr/ports/lang/pike76/Makefile --- /usr/ports/lang/pike76.old/Makefile Sat Jan 7 12:33:37 2006 +++ /usr/ports/lang/pike76/Makefile Sat Jan 7 12:36:07 2006 @@ -6,8 +6,7 @@ # PORTNAME= pike76 -PORTVERSION= 7.6.50 -PORTREVISION= 2 +PORTVERSION= 7.6.64 CATEGORIES= lang MASTER_SITES= ftp://pike.ida.liu.se/pub/pike/beta/${PORTVERSION}/ \ ftp://pike.ida.liu.se/pub/pike/all/${PORTVERSION}/ \ diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/distinfo /usr/ports/lang/pike76/distinfo --- /usr/ports/lang/pike76.old/distinfo Sat Jan 7 12:33:37 2006 +++ /usr/ports/lang/pike76/distinfo Sat Jan 7 12:35:04 2006 @@ -1,3 +1,3 @@ -MD5 (Pike-v7.6.50.tar.gz) = 20aa2b8ff088733b6c5fc048d47aa712 -SHA256 (Pike-v7.6.50.tar.gz) = 0282adfcdc43dc7feced18415ce165ffc1a1ea288cfb9b343368b170f6445711 -SIZE (Pike-v7.6.50.tar.gz) = 17521150 +MD5 (Pike-v7.6.64.tar.gz) = a325b63a3d8778da3d89961889493c9b +SHA256 (Pike-v7.6.64.tar.gz) = 79c57c698d05d8979a3db475d35995a62f0a290d552866e5b765c988d8284591 +SIZE (Pike-v7.6.64.tar.gz) = 15197522 diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/files/patch-lib-modules-Parser.pmod-XML.pmod-Tree.pmod /usr/ports/lang/pike76/files/patch-lib-modules-Parser.pmod-XML.pmod-Tree.pmod --- /usr/ports/lang/pike76.old/files/patch-lib-modules-Parser.pmod-XML.pmod-Tree.pmod Sat Jan 7 12:33:37 2006 +++ /usr/ports/lang/pike76/files/patch-lib-modules-Parser.pmod-XML.pmod-Tree.pmod Thu Jan 1 01:00:00 1970 @@ -1,68 +0,0 @@ ---- lib/modules/Parser.pmod/XML.pmod/Tree.pmod.old Wed Nov 16 12:29:10 2005 -+++ lib/modules/Parser.pmod/XML.pmod/Tree.pmod Wed Nov 16 12:29:14 2005 -@@ -1,7 +1,7 @@ - #pike __REAL_VERSION__ - - /* -- * $Id: Tree.pmod,v 1.53 2004/12/21 16:07:07 grubba Exp $ -+ * $Id: Tree.pmod,v 1.54 2005/11/07 14:21:17 nilsson Exp $ - * - */ - -@@ -757,11 +757,15 @@ - //! - static void create(int type, string name, mapping attr, string text) - { -- if (name) { -+ if (name && has_value(name, ":")) { - sscanf(reverse(name), "%[^/:]", mTagName); - mTagName=reverse(mTagName); - mNamespace=name[..sizeof(name)-(1+sizeof(mTagName))]; - } -+ else { -+ mTagName = name; -+ mNamespace = ""; -+ } - mNodeType = type; - // mTagCode = kTagMapping[name] || kUnsupportedTagMapping[name]; - mAttributes = attr; -@@ -1447,25 +1451,27 @@ - // the W3 spec. This is necessary since CDATA sections are - // converted to text nodes which might need to be concatenated - // with neighboring text nodes. -+ - Node text_node; -- foreach(contents, Node child) { -+ int(0..1) modified; -+ -+ foreach(contents; int i; Node child) { - if (child->get_node_type() == XML_TEXT) { -- if (text_node) -+ if (text_node) { - // Add this text string to the previous text node. - text_node->_add_to_text (child->get_text()); -+ contents[i]=0; -+ modified=1; -+ } - else - text_node = child; -- } else { -- // Process buffered text before this child is added -- if (text_node) { -- node->add_child(text_node); -- text_node = 0; -- } -- node->add_child(child); -- } -+ } else -+ text_node = 0; - } -- if (text_node) -- node->add_child(text_node); -+ -+ if( modified ) -+ contents -= ({ 0 }); -+ node->replace_children( contents ); - return (node); - - case "error": diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/files/patch-modules-Odbc-odbc_result.c /usr/ports/lang/pike76/files/patch-modules-Odbc-odbc_result.c --- /usr/ports/lang/pike76.old/files/patch-modules-Odbc-odbc_result.c Sat Jan 7 12:33:37 2006 +++ /usr/ports/lang/pike76/files/patch-modules-Odbc-odbc_result.c Thu Jan 1 01:00:00 1970 @@ -1,73 +0,0 @@ ---- src/modules/Odbc/odbc_result.c.old Wed Nov 16 10:55:43 2005 -+++ src/modules/Odbc/odbc_result.c Wed Nov 16 10:55:48 2005 -@@ -2,7 +2,7 @@ - || This file is part of Pike. For copyright information see COPYRIGHT. - || Pike is distributed under GPL, LGPL and MPL. See the file COPYING - || for more information. --|| $Id: odbc_result.c,v 1.37 2003/05/02 12:54:37 grubba Exp $ -+|| $Id: odbc_result.c,v 1.38 2005/11/09 13:12:35 grubba Exp $ - */ - - /* -@@ -21,7 +21,7 @@ - #include "config.h" - #endif /* HAVE_CONFIG_H */ - --RCSID("$Id: odbc_result.c,v 1.37 2003/05/02 12:54:37 grubba Exp $"); -+RCSID("$Id: odbc_result.c,v 1.38 2005/11/09 13:12:35 grubba Exp $"); - - #include "interpret.h" - #include "object.h" -@@ -442,6 +442,18 @@ - push_int(0); - } - break; -+ } else if (code == SQL_SUCCESS_WITH_INFO) { -+ /* Data truncated. */ -+ num_strings++; -+#ifdef ODBC_DEBUG -+ fprintf(stderr, "[%d] ", num_strings); -+#endif /* ODBC_DEBUG */ -+ if (PIKE_ODBC_RES->field_info[i].type == SQL_C_BINARY) { -+ push_string(make_shared_binary_string(blob_buf, BLOB_BUFSIZ)); -+ } else { -+ /* SQL_C_CHAR's are NUL-terminated... */ -+ push_string(make_shared_binary_string(blob_buf, BLOB_BUFSIZ - 1)); -+ } - } else { - num_strings++; - #ifdef ODBC_DEBUG -@@ -453,15 +465,27 @@ - #endif /* SQL_NO_TOTAL */ - ) { - push_string(make_shared_binary_string(blob_buf, len)); -- break; - } else { -- if (PIKE_ODBC_RES->field_info[i].type == SQL_C_BINARY) { -- push_string(make_shared_binary_string(blob_buf, BLOB_BUFSIZ)); -- } else { -- /* SQL_C_CHAR's are NUL-terminated... */ -- push_string(make_shared_binary_string(blob_buf, BLOB_BUFSIZ - 1)); -+ /* Truncated, but no support for chained SQLGetData calls. */ -+ char *buf = xalloc(len+2); -+ SQLLEN newlen = 0; -+ code = SQLGetData(PIKE_ODBC_RES->hstmt, (SQLUSMALLINT)(i+1), -+ PIKE_ODBC_RES->field_info[i].type, -+ buf, len+1, &newlen); -+ if (code != SQL_SUCCESS) { -+ Pike_error("odbc->fetch_row(): " -+ "Unexpected code from SQLGetData(): %d\n", -+ code); - } -+ if (len != newlen) { -+ Pike_error("odbc->fetch_row(): " -+ "Unexpected length from SQLGetData(): " -+ "%d (expected %d)\n", newlen, len); -+ } -+ push_string(make_shared_binary_string(buf, len)); -+ free(buf); - } -+ break; - } - } - if (num_strings > 1) { diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/files/patch-stralloc.c /usr/ports/lang/pike76/files/patch-stralloc.c --- /usr/ports/lang/pike76.old/files/patch-stralloc.c Sat Jan 7 12:33:37 2006 +++ /usr/ports/lang/pike76/files/patch-stralloc.c Thu Jan 1 01:00:00 1970 @@ -1,28 +0,0 @@ ---- src/stralloc.c.old Fri Nov 18 11:06:05 2005 -+++ src/stralloc.c Fri Nov 18 11:06:10 2005 -@@ -2,7 +2,7 @@ - || This file is part of Pike. For copyright information see COPYRIGHT. - || Pike is distributed under GPL, LGPL and MPL. See the file COPYING - || for more information. --|| $Id: stralloc.c,v 1.169 2005/01/19 13:06:57 grubba Exp $ -+|| $Id: stralloc.c,v 1.170 2005/11/18 01:14:22 nilsson Exp $ - */ - - #include "global.h" -@@ -24,7 +24,7 @@ - #include - #include - --RCSID("$Id: stralloc.c,v 1.169 2005/01/19 13:06:57 grubba Exp $"); -+RCSID("$Id: stralloc.c,v 1.170 2005/11/18 01:14:22 nilsson Exp $"); - - /* #define STRALLOC_USE_PRIMES */ - -@@ -1596,6 +1596,7 @@ - add_ref(a = old); - } else { - link_pike_string(a, a->hval); -+ add_ref(a); - } - return a; - }else{ diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/files/patch-threads.c /usr/ports/lang/pike76/files/patch-threads.c --- /usr/ports/lang/pike76.old/files/patch-threads.c Sat Jan 7 12:33:37 2006 +++ /usr/ports/lang/pike76/files/patch-threads.c Thu Jan 1 01:00:00 1970 @@ -1,30 +0,0 @@ ---- src/threads.c.old Wed Nov 16 10:58:57 2005 -+++ src/threads.c Wed Nov 16 10:59:00 2005 -@@ -2,12 +2,12 @@ - || This file is part of Pike. For copyright information see COPYRIGHT. - || Pike is distributed under GPL, LGPL and MPL. See the file COPYING - || for more information. --|| $Id: threads.c,v 1.238 2005/05/18 12:36:54 mast Exp $ -+|| $Id: threads.c,v 1.239 2005/11/15 10:31:56 grubba Exp $ - */ - - #ifndef CONFIGURE_TEST - #include "global.h" --RCSID("$Id: threads.c,v 1.238 2005/05/18 12:36:54 mast Exp $"); -+RCSID("$Id: threads.c,v 1.239 2005/11/15 10:31:56 grubba Exp $"); - - PMOD_EXPORT int num_threads = 1; - PMOD_EXPORT int threads_disabled = 0; -@@ -1460,9 +1460,10 @@ - THIS_KEY->mutex_obj = NULL; - if (mut->num_waiting) - co_signal(&mut->condition); -- else if (!mutex_obj->prog) -+ else if (mutex_obj && !mutex_obj->prog) - co_destroy (&mut->condition); -- free_object(mutex_obj); -+ if (mutex_obj) -+ free_object(mutex_obj); - } - } -