From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Jun 4 22:10:01 2005 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7AF9916A41C for ; Sat, 4 Jun 2005 22:10:01 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id EA34D43D4C for ; Sat, 4 Jun 2005 22:10:00 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j54MA0A2012926 for ; Sat, 4 Jun 2005 22:10:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j54MA0gt012925; Sat, 4 Jun 2005 22:10:00 GMT (envelope-from gnats) Resent-Date: Sat, 4 Jun 2005 22:10:00 GMT Resent-Message-Id: <200506042210.j54MA0gt012925@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Pedro F. Giffuni" Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0125416A41C for ; Sat, 4 Jun 2005 22:05:15 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id B93E743D1F for ; Sat, 4 Jun 2005 22:05:14 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id j54M5ExA061173 for ; Sat, 4 Jun 2005 22:05:14 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id j54M5EOG061172; Sat, 4 Jun 2005 22:05:14 GMT (envelope-from nobody) Message-Id: <200506042205.j54M5EOG061172@www.freebsd.org> Date: Sat, 4 Jun 2005 22:05:14 GMT From: "Pedro F. Giffuni" To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: ports/81906: Update itcl to version 3.2.1 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jun 2005 22:10:01 -0000 >Number: 81906 >Category: ports >Synopsis: Update itcl to version 3.2.1 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sat Jun 04 22:10:00 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Pedro F. Giffuni >Release: 4.11 Release >Organization: >Environment: FreeBSD Estudio 4.11-RELEASE FreeBSD 4.11-RELEASE #7: Sat Mar 26 10:55:47 COT 2005 root@Estudio:/usr/src/sys/compile/COMPAQ i386 >Description: Update itcl to the latest release. Please note this also works with Tcl 8.4 (just update Makefile and files/makefile.lib), but I haven't test it thoroughly. >How-To-Repeat: itk update will be submitted shortly. I think in the future itcl and iTk ports will have to be merged and build from the CVS version like NetBSD and other OSs out there do. >Fix: Unified diff: diff -ruN itcl.orig/Makefile itcl/Makefile --- itcl.orig/Makefile Sun Apr 24 13:30:49 2005 +++ itcl/Makefile Sat Jun 4 14:17:01 2005 @@ -6,12 +6,12 @@ # PORTNAME= itcl -PORTVERSION= ${MAJOR}.${MINOR} -PORTREVISION= 2 +PORTVERSION= ${MAJOR}.${MINOR}.1 CATEGORIES= lang MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR=incrtcl DISTNAME= itcl${PORTVERSION} +EXTRACT_SUFX= _src.tgz MAINTAINER= ports@FreeBSD.org COMMENT= [incr Tcl] (A.K.A. "itcl") @@ -26,7 +26,7 @@ MAKE_ENV+= ${PLIST_SUB} \ SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} -EXTRACT_AFTER_ARGS=| ${TAR} -xf - ./itcl${MAJOR}.${MINOR}/itcl +EXTRACT_AFTER_ARGS=| ${TAR} -xf - itcl${PORTVERSION}/itcl .if defined(MAKE_JOBS) MAKE_ARGS+= -j${MAKE_JOBS} @@ -45,9 +45,6 @@ MANN+= itcl.n itcl_class.n itcl_info.n itclvars.n local.n scope.n ITCL_LIB_FILE= ${ITCL_LIB}.${SHLIB_MAJOR} - -post-extract: - ${RM} ${WRKSRC}/pkgIndex.tcl post-patch: ${REINPLACE_CMD} \ diff -ruN itcl.orig/distinfo itcl/distinfo --- itcl.orig/distinfo Sun Apr 24 13:30:49 2005 +++ itcl/distinfo Sun Apr 24 13:33:09 2005 @@ -1,2 +1,2 @@ -MD5 (itcl3.2.tar.gz) = b41ed909969eaa5f0a06ab698393760f -SIZE (itcl3.2.tar.gz) = 1498517 +MD5 (itcl3.2.1_src.tgz) = 44dcc2129232329cacd6c8abebf38403 +SIZE (itcl3.2.1_src.tgz) = 427026 diff -ruN itcl.orig/files/Makefile.lib itcl/files/Makefile.lib --- itcl.orig/files/Makefile.lib Sun Apr 24 13:30:49 2005 +++ itcl/files/Makefile.lib Sat Jun 4 14:18:17 2005 @@ -6,7 +6,7 @@ -DHAVE_GETCWD=1 -DNO_VALUES_H=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1\ -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1\ -DHAVE_TM_GMTOFF=1 -DHAVE_ST_BLKSIZE=1 -DSTDC_HEADERS=1\ - -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1\ + -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1\ -DTCL_SHLIB_EXT=\".so\" \ -DHAVE_SYS_FILIO_H=1 \ -DRETSIGTYPE=void \ diff -ruN itcl.orig/files/patch-generic+itcl.h itcl/files/patch-generic+itcl.h --- itcl.orig/files/patch-generic+itcl.h Wed Dec 31 19:00:00 1969 +++ itcl/files/patch-generic+itcl.h Sun Apr 24 13:39:43 2005 @@ -0,0 +1,107 @@ +=================================================================== +RCS file: /cvsroot/incrtcl/incrTcl/itcl/generic/itcl.h,v +retrieving revision 1.15 +retrieving revision 1.19 +diff -u -r1.15 -r1.19 +--- generic/itcl.h 2001/05/25 00:12:29 1.15 ++++ generic/itcl.h 2002/01/16 22:29:41 1.19 +@@ -40,9 +40,9 @@ + * http://www.tcltk.com/itcl + * + * modified for Stubs 5/20/1999 by +- * David Gravereaux ++ * David Gravereaux + * +- * RCS: $Id: itcl.h,v 1.15 2001/05/25 00:12:29 davygrvy Exp $ ++ * RCS: $Id: itcl.h,v 1.19 2002/01/16 22:29:41 andreas_kupries Exp $ + * ======================================================================== + * Copyright (c) 1993-1998 Lucent Technologies, Inc. + * ------------------------------------------------------------------------ +@@ -54,17 +54,6 @@ + + #include "tcl.h" + +-#undef TCL_STORAGE_CLASS +-#ifdef BUILD_itcl +-# define TCL_STORAGE_CLASS DLLEXPORT +-#else +-# ifdef USE_ITCL_STUBS +-# define TCL_STORAGE_CLASS +-# else +-# define TCL_STORAGE_CLASS DLLIMPORT +-# endif +-#endif +- + #define ITCL_VERSION "3.2" + #define ITCL_PATCH_LEVEL "3.2.1" + #define ITCL_MAJOR_VERSION 3 +@@ -80,6 +69,58 @@ + + #ifndef RC_INVOKED + ++#undef TCL_STORAGE_CLASS ++#ifdef BUILD_itcl ++# define TCL_STORAGE_CLASS DLLEXPORT ++#else ++# ifdef USE_ITCL_STUBS ++# define TCL_STORAGE_CLASS ++# else ++# define TCL_STORAGE_CLASS DLLIMPORT ++# endif ++#endif ++ ++/* ++ * Fix the Borland bug that's in the EXTERN macro from tcl.h. ++ */ ++#ifndef TCL_EXTERN ++# undef DLLIMPORT ++# undef DLLEXPORT ++# if defined(STATIC_BUILD) ++# define DLLIMPORT ++# define DLLEXPORT ++# elif (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || (defined(__GNUC__) && defined(__declspec)))) \ ++ || (defined(MAC_TCL) && FUNCTION_DECLSPEC) ++# define DLLIMPORT __declspec(dllimport) ++# define DLLEXPORT __declspec(dllexport) ++# elif defined(__BORLANDC__) ++# define OLDBORLAND 1 ++# define DLLIMPORT __import ++# define DLLEXPORT __export ++# else ++# define DLLIMPORT ++# define DLLEXPORT ++# endif ++ ++ /* ++ * Make sure name mangling won't happen when the c++ language extensions ++ * are used. ++ */ ++# ifdef __cplusplus ++# define TCL_CPP "C" ++# else ++# define TCL_CPP ++# endif ++ /* ++ * Borland requires the attributes be placed after the return type. ++ */ ++# ifdef OLDBORLAND ++# define TCL_EXTERN(rtnType) extern TCL_CPP rtnType TCL_STORAGE_CLASS ++# else ++# define TCL_EXTERN(rtnType) extern TCL_CPP TCL_STORAGE_CLASS rtnType ++# endif ++#endif ++ + /* + * Protection levels: + * +@@ -152,9 +193,7 @@ + + #ifdef USE_ITCL_STUBS + +-#ifdef __cplusplus +-extern "C" +-#endif ++extern TCL_CPP + CONST char * Itcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, + char *version, int exact)); + #else diff -ruN itcl.orig/files/patch-generic+itclInt.h itcl/files/patch-generic+itclInt.h --- itcl.orig/files/patch-generic+itclInt.h Wed Dec 31 19:00:00 1969 +++ itcl/files/patch-generic+itclInt.h Sun Apr 24 13:40:36 2005 @@ -0,0 +1,101 @@ +=================================================================== +RCS file: /cvsroot/incrtcl/incrTcl/itcl/generic/itclInt.h,v +retrieving revision 1.7 +retrieving revision 1.11 +diff -u -r1.7 -r1.11 +--- generic/itclInt.h 2001/04/07 07:20:53 1.7 ++++ generic/itclInt.h 2003/12/23 06:58:27 1.11 +@@ -39,7 +39,7 @@ + * mmclennan@lucent.com + * http://www.tcltk.com/itcl + * +- * RCS: $Id: itclInt.h,v 1.7 2001/04/07 07:20:53 davygrvy Exp $ ++ * RCS: $Id: itclInt.h,v 1.11 2003/12/23 06:58:27 davygrvy Exp $ + * ======================================================================== + * Copyright (c) 1993-1998 Lucent Technologies, Inc. + * ------------------------------------------------------------------------ +@@ -49,14 +49,64 @@ + #ifndef ITCLINT_H + #define ITCLINT_H + +-#include "itcl.h" + #include "tclInt.h" ++#include "itcl.h" + + #ifdef BUILD_itcl + # undef TCL_STORAGE_CLASS + # define TCL_STORAGE_CLASS DLLEXPORT + #endif + ++/* ++ * Fix Tcl bug #803489 the right way. We need to always use the old Stub ++ * slot positions, not the new broken ones. I do like that these functions ++ * have moved to the public space, but the slot change is the killer and is ++ * the painful side affect. ++ */ ++ ++#if defined(USE_TCL_STUBS) && \ ++ (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) ++# undef Tcl_CreateNamespace ++# define Tcl_CreateNamespace \ ++ (tclIntStubsPtr->tcl_CreateNamespace) ++# undef Tcl_DeleteNamespace ++# define Tcl_DeleteNamespace \ ++ (tclIntStubsPtr->tcl_DeleteNamespace) ++# undef Tcl_AppendExportList ++# define Tcl_AppendExportList \ ++ (tclIntStubsPtr->tcl_AppendExportList) ++# undef Tcl_Export ++# define Tcl_Export \ ++ (tclIntStubsPtr->tcl_Export) ++# undef Tcl_Import ++# define Tcl_Import \ ++ (tclIntStubsPtr->tcl_Import) ++# undef Tcl_ForgetImport ++# define Tcl_ForgetImport \ ++ (tclIntStubsPtr->tcl_ForgetImport) ++# undef Tcl_GetCurrentNamespace ++# define Tcl_GetCurrentNamespace \ ++ (tclIntStubsPtr->tcl_GetCurrentNamespace) ++# undef Tcl_GetGlobalNamespace ++# define Tcl_GetGlobalNamespace \ ++ (tclIntStubsPtr->tcl_GetGlobalNamespace) ++# undef Tcl_FindNamespace ++# define Tcl_FindNamespace \ ++ (tclIntStubsPtr->tcl_FindNamespace) ++# undef Tcl_FindCommand ++# define Tcl_FindCommand \ ++ (tclIntStubsPtr->tcl_FindCommand) ++# undef Tcl_GetCommandFromObj ++# define Tcl_GetCommandFromObj \ ++ (tclIntStubsPtr->tcl_GetCommandFromObj) ++# undef Tcl_GetCommandFullName ++# define Tcl_GetCommandFullName \ ++ (tclIntStubsPtr->tcl_GetCommandFullName) ++#endif ++ ++#define TCL_DOES_STUBS \ ++ (TCL_MAJOR_VERSION > 8 || TCL_MAJOR_VERSION == 8 && (TCL_MINOR_VERSION > 1 || \ ++ (TCL_MINOR_VERSION == 1 && TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE))) + + /* + * Common info for managing all known objects. +@@ -255,15 +305,11 @@ + */ + + #undef assert +-#ifdef NDEBUG ++#ifndef DEBUG + #define assert(EX) ((void)0) + #else +-#if defined(__STDC__) +-#define assert(EX) (void)((EX) || (Itcl_Assert(#EX, __FILE__, __LINE__), 0)) +-#else +-#define assert(EX) (void)((EX) || (Itcl_Assert("EX", __FILE__, __LINE__), 0)) +-#endif /* __STDC__ */ +-#endif /* NDEBUG */ ++#define assert(EX) (void)((EX) || (Itcl_Assert(STRINGIFY(EX), __FILE__, __LINE__), 0)) ++#endif /* DEBUG */ + + #undef TCL_STORAGE_CLASS + #define TCL_STORAGE_CLASS DLLIMPORT diff -ruN itcl.orig/files/patch-generic+itcl_cmds.c itcl/files/patch-generic+itcl_cmds.c --- itcl.orig/files/patch-generic+itcl_cmds.c Wed Dec 31 19:00:00 1969 +++ itcl/files/patch-generic+itcl_cmds.c Sun Apr 24 13:41:16 2005 @@ -0,0 +1,211 @@ +=================================================================== +RCS file: /cvsroot/incrtcl/incrTcl/itcl/generic/itcl_cmds.c,v +retrieving revision 1.13 +retrieving revision 1.15 +diff -u -r1.13 -r1.15 +--- generic/itcl_cmds.c 2001/05/22 01:50:21 1.13 ++++ generic/itcl_cmds.c 2002/01/10 11:43:37 1.15 +@@ -21,7 +21,7 @@ + * mmclennan@lucent.com + * http://www.tcltk.com/itcl + * +- * RCS: $Id: itcl_cmds.c,v 1.13 2001/05/22 01:50:21 davygrvy Exp $ ++ * RCS: $Id: itcl_cmds.c,v 1.15 2002/01/10 11:43:37 davygrvy Exp $ + * ======================================================================== + * Copyright (c) 1993-1998 Lucent Technologies, Inc. + * ------------------------------------------------------------------------ +@@ -469,7 +469,7 @@ + int forceFullNames = 0; + + char *pattern; +- CONST char *name; ++ CONST char *cmdName; + int newEntry, handledActiveNs; + Tcl_HashTable unique; + Tcl_HashEntry *entry; +@@ -477,7 +477,7 @@ + Itcl_Stack search; + Tcl_Command cmd, originalCmd; + Namespace *nsPtr; +- Tcl_Obj *listPtr, *objPtr; ++ Tcl_Obj *objPtr; + + if (objc > 2) { + Tcl_WrongNumArgs(interp, 1, objv, "?pattern?"); +@@ -485,7 +485,7 @@ + } + + if (objc == 2) { +- pattern = Tcl_GetStringFromObj(objv[1], (int*)NULL); ++ pattern = Tcl_GetString(objv[1]); + forceFullNames = (strstr(pattern, "::") != NULL); + } else { + pattern = NULL; +@@ -497,7 +497,6 @@ + * in this interpreter. If we find any commands that + * represent classes, report them. + */ +- listPtr = Tcl_NewListObj(0, (Tcl_Obj* CONST*)NULL); + + Itcl_InitStack(&search); + Itcl_PushStack((ClientData)globalNs, &search); +@@ -532,10 +531,10 @@ + + objPtr = Tcl_NewStringObj((char*)NULL, 0); + Tcl_GetCommandFullName(interp, cmd, objPtr); +- name = Tcl_GetStringFromObj(objPtr, (int*)NULL); ++ cmdName = Tcl_GetString(objPtr); + } else { +- name = Tcl_GetCommandName(interp, cmd); +- objPtr = Tcl_NewStringObj(name, -1); ++ cmdName = Tcl_GetCommandName(interp, cmd); ++ objPtr = Tcl_NewStringObj(cmdName, -1); + } + + if (originalCmd) { +@@ -543,9 +542,10 @@ + } + Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); + +- if (newEntry && (!pattern || Tcl_StringMatch(name, pattern))) { ++ if (newEntry && ++ (!pattern || Tcl_StringMatch(cmdName, pattern))) { + Tcl_ListObjAppendElement((Tcl_Interp*)NULL, +- listPtr, objPtr); ++ Tcl_GetObjResult(interp), objPtr); + } + } + entry = Tcl_NextHashEntry(&place); +@@ -565,7 +565,6 @@ + Tcl_DeleteHashTable(&unique); + Itcl_DeleteStack(&search); + +- Tcl_SetObjResult(interp, listPtr); + return TCL_OK; + } + +@@ -598,8 +597,8 @@ + ItclClass *classDefn = NULL; + ItclClass *isaDefn = NULL; + +- char *name, *token; +- CONST char *cmdName; ++ char *name = NULL, *token = NULL; ++ CONST char *cmdName = NULL; + int pos, newEntry, match, handledActiveNs; + ItclObject *contextObj; + Tcl_HashTable unique; +@@ -609,7 +608,7 @@ + Tcl_Command cmd, originalCmd; + Namespace *nsPtr; + Command *cmdPtr; +- Tcl_Obj *listPtr, *objPtr; ++ Tcl_Obj *objPtr; + + /* + * Parse arguments: +@@ -617,7 +616,7 @@ + */ + pos = 0; + while (++pos < objc) { +- token = Tcl_GetStringFromObj(objv[pos], (int*)NULL); ++ token = Tcl_GetString(objv[pos]); + if (*token != '-') { + if (!pattern) { + pattern = token; +@@ -627,7 +626,7 @@ + } + } + else if ((pos+1 < objc) && (strcmp(token,"-class") == 0)) { +- name = Tcl_GetStringFromObj(objv[pos+1], (int*)NULL); ++ name = Tcl_GetString(objv[pos+1]); + classDefn = Itcl_FindClass(interp, name, /* autoload */ 1); + if (classDefn == NULL) { + return TCL_ERROR; +@@ -635,7 +634,7 @@ + pos++; + } + else if ((pos+1 < objc) && (strcmp(token,"-isa") == 0)) { +- name = Tcl_GetStringFromObj(objv[pos+1], (int*)NULL); ++ name = Tcl_GetString(objv[pos+1]); + isaDefn = Itcl_FindClass(interp, name, /* autoload */ 1); + if (isaDefn == NULL) { + return TCL_ERROR; +@@ -669,7 +668,6 @@ + * in this interpreter. If we find any commands that + * represent objects, report them. + */ +- listPtr = Tcl_NewListObj(0, (Tcl_Obj* CONST*)NULL); + + Itcl_InitStack(&search); + Itcl_PushStack((ClientData)globalNs, &search); +@@ -709,7 +707,7 @@ + + objPtr = Tcl_NewStringObj((char*)NULL, 0); + Tcl_GetCommandFullName(interp, cmd, objPtr); +- name = Tcl_GetStringFromObj(objPtr, (int*)NULL); ++ cmdName = Tcl_GetString(objPtr); + } else { + cmdName = Tcl_GetCommandName(interp, cmd); + objPtr = Tcl_NewStringObj(cmdName, -1); +@@ -718,7 +716,8 @@ + Tcl_CreateHashEntry(&unique, (char*)cmd, &newEntry); + + match = 0; +- if (newEntry && (!pattern || Tcl_StringMatch(name, pattern))) { ++ if (newEntry && ++ (!pattern || Tcl_StringMatch(cmdName, pattern))) { + if (!classDefn || (contextObj->classDefn == classDefn)) { + if (!isaDefn) { + match = 1; +@@ -736,10 +735,9 @@ + + if (match) { + Tcl_ListObjAppendElement((Tcl_Interp*)NULL, +- listPtr, objPtr); ++ Tcl_GetObjResult(interp), objPtr); + } else { +- Tcl_IncrRefCount(objPtr); /* throw away the name */ +- Tcl_DecrRefCount(objPtr); ++ Tcl_DecrRefCount(objPtr); /* throw away the name */ + } + } + entry = Tcl_NextHashEntry(&place); +@@ -759,7 +757,6 @@ + Tcl_DeleteHashTable(&unique); + Itcl_DeleteStack(&search); + +- Tcl_SetObjResult(interp, listPtr); + return TCL_OK; + } + +@@ -821,9 +818,8 @@ + } + else if (result != TCL_OK) { + char mesg[256], *name; +- name = Tcl_GetStringFromObj(objv[0], (int*)NULL); +- sprintf(mesg, "\n (%.100s body line %d)", +- name, interp->errorLine); ++ name = Tcl_GetString(objv[0]); ++ sprintf(mesg, "\n (%.100s body line %d)", name, interp->errorLine); + Tcl_AddErrorInfo(interp, mesg); + } + +@@ -865,7 +861,7 @@ + * then delete them. + */ + for (i=1; i < objc; i++) { +- name = Tcl_GetStringFromObj(objv[i], (int*)NULL); ++ name = Tcl_GetString(objv[i]); + cdefn = Itcl_FindClass(interp, name, /* autoload */ 1); + if (cdefn == NULL) { + return TCL_ERROR; +@@ -873,7 +869,7 @@ + } + + for (i=1; i < objc; i++) { +- name = Tcl_GetStringFromObj(objv[i], (int*)NULL); ++ name = Tcl_GetString(objv[i]); + cdefn = Itcl_FindClass(interp, name, /* autoload */ 0); + + if (cdefn) { diff -ruN itcl.orig/files/patch-tests+ensemble.test itcl/files/patch-tests+ensemble.test --- itcl.orig/files/patch-tests+ensemble.test Wed Dec 31 19:00:00 1969 +++ itcl/files/patch-tests+ensemble.test Sun Apr 24 14:01:37 2005 @@ -0,0 +1,32 @@ +=================================================================== +RCS file: /cvsroot/incrtcl/incrTcl/itcl/tests/ensemble.test,v +retrieving revision 1.3 +retrieving revision 1.4 +diff -u -r1.3 -r1.4 +--- tests/ensemble.test 2000/06/01 20:34:35 1.3 ++++ tests/ensemble.test 2001/11/05 19:42:11 1.4 +@@ -6,7 +6,7 @@ + # mmclennan@lucent.com + # http://www.tcltk.com/itcl + # +-# RCS: $Id: ensemble.test,v 1.3 2000/06/01 20:34:35 wart Exp $ ++# RCS: $Id: ensemble.test,v 1.4 2001/11/05 19:42:11 hobbs Exp $ + # ---------------------------------------------------------------------- + # Copyright (c) 1993-1998 Lucent Technologies, Inc. + # ====================================================================== +@@ -45,8 +45,13 @@ + } {{one: 1} {two: 2 3} {three: 3 4 5}} + + test ensemble-1.5 {invoking parts with improper arguments} { +- list [catch "test_numbers three x" msg] $msg +-} {1 {no value given for parameter "y" to "test_numbers three"}} ++ set res [catch "test_numbers three x" msg] ++ if {[package vsatisfies [package provide Tcl] 8.4]} { ++ lappend res [string match "wrong # args*" $msg] ++ } else { ++ lappend res [string match "no value given*" $msg] ++ } ++} {1 1} + + test ensemble-1.6 {errors trigger a usage summary} { + list [catch "test_numbers foo x y" msg] $msg >Release-Note: >Audit-Trail: >Unformatted: