Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Jun 2005 22:05:14 GMT
From:      "Pedro F. Giffuni" <giffunip@asme.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/81906: Update itcl to version 3.2.1
Message-ID:  <200506042205.j54M5EOG061172@www.freebsd.org>
Resent-Message-ID: <200506042210.j54MA0gt012925@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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 <davygrvy@bigfoot.com>
++ *           David Gravereaux <davygrvy@pobox.com>
+  *
+- *     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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506042205.j54M5EOG061172>