diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/Makefile /usr/ports/lang/pike76/Makefile --- /usr/ports/lang/pike76.old/Makefile Tue Nov 15 18:00:30 2005 +++ /usr/ports/lang/pike76/Makefile Wed Nov 16 10:40:43 2005 @@ -6,7 +6,7 @@ # PORTNAME= pike76 -PORTVERSION= 7.6.48 +PORTVERSION= 7.6.50 CATEGORIES= lang MASTER_SITES= ftp://pike.ida.liu.se/pub/pike/beta/${PORTVERSION}/ \ ftp://pike.ida.liu.se/pub/pike/all/${PORTVERSION}/ \ @@ -240,8 +240,8 @@ ${INSTALL_SCRIPT} ${WRKSRC}/bin/hilfe ${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/man/pike.1 ${MAN1PREFIX}/man/man1 -#verify: -# @(cd ${WRKSRC}; make verify) +verify: + @(cd ${WRKSRC}; make verify) # Autodocs is currently b0rken.... :/ #doc: diff -ruN --exclude=CVS /usr/ports/lang/pike76.old/distinfo /usr/ports/lang/pike76/distinfo --- /usr/ports/lang/pike76.old/distinfo Tue Nov 15 18:00:30 2005 +++ /usr/ports/lang/pike76/distinfo Wed Nov 16 10:31:07 2005 @@ -1,2 +1,3 @@ -MD5 (Pike-v7.6.48.tar.gz) = 9a822abed615f150566e267847fa7ec9 -SIZE (Pike-v7.6.48.tar.gz) = 17477493 +MD5 (Pike-v7.6.50.tar.gz) = 20aa2b8ff088733b6c5fc048d47aa712 +SHA256 (Pike-v7.6.50.tar.gz) = 0282adfcdc43dc7feced18415ce165ffc1a1ea288cfb9b343368b170f6445711 +SIZE (Pike-v7.6.50.tar.gz) = 17521150 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 Thu Jan 1 01:00:00 1970 +++ /usr/ports/lang/pike76/files/patch-lib::modules::Parser.pmod::XML.pmod::Tree.pmod Wed Nov 16 12:30:03 2005 @@ -0,0 +1,68 @@ +--- 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 Thu Jan 1 01:00:00 1970 +++ /usr/ports/lang/pike76/files/patch-modules::Odbc::odbc_result.c Wed Nov 16 11:02:24 2005 @@ -0,0 +1,73 @@ +--- 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-threads.c /usr/ports/lang/pike76/files/patch-threads.c --- /usr/ports/lang/pike76.old/files/patch-threads.c Thu Jan 1 01:00:00 1970 +++ /usr/ports/lang/pike76/files/patch-threads.c Wed Nov 16 11:02:32 2005 @@ -0,0 +1,30 @@ +--- 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); + } + } +