diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2005-06-06 18:52:04 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2005-06-06 18:52:04 +0000 |
commit | 6d059a7cd23c0adb206ee59e5a672583e78f84b1 (patch) | |
tree | 0e25cd352031a42b9ce557317835d1fb0e27bd60 /lang | |
parent | 041059c67c1ef111ed0288ef532efd6603ef2c72 (diff) | |
download | ports-6d059a7cd23c0adb206ee59e5a672583e78f84b1.tar.gz ports-6d059a7cd23c0adb206ee59e5a672583e78f84b1.zip |
Notes
Diffstat (limited to 'lang')
-rw-r--r-- | lang/itcl/Makefile | 9 | ||||
-rw-r--r-- | lang/itcl/distinfo | 4 | ||||
-rw-r--r-- | lang/itcl/files/Makefile.lib | 2 | ||||
-rw-r--r-- | lang/itcl/files/patch-generic+itcl.h | 107 | ||||
-rw-r--r-- | lang/itcl/files/patch-generic+itclInt.h | 101 | ||||
-rw-r--r-- | lang/itcl/files/patch-generic+itcl_cmds.c | 211 | ||||
-rw-r--r-- | lang/itcl/files/patch-tests+ensemble.test | 32 |
7 files changed, 457 insertions, 9 deletions
diff --git a/lang/itcl/Makefile b/lang/itcl/Makefile index 594aa6ed061d..172364d17076 100644 --- a/lang/itcl/Makefile +++ b/lang/itcl/Makefile @@ -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 @@ PKGDEINSTALL= ${PORTSDIR}/lang/tcl83/pkg-deinstall.tclsh 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} @@ -46,9 +46,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} \ -e 's,package require Itcl,load [glob \ diff --git a/lang/itcl/distinfo b/lang/itcl/distinfo index 8dd40ed57c76..f0840a234f20 100644 --- a/lang/itcl/distinfo +++ b/lang/itcl/distinfo @@ -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 --git a/lang/itcl/files/Makefile.lib b/lang/itcl/files/Makefile.lib index c9fe57f90e05..de65a293d51f 100644 --- a/lang/itcl/files/Makefile.lib +++ b/lang/itcl/files/Makefile.lib @@ -6,7 +6,7 @@ CFLAGS+= -I. -I./../generic \ -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 --git a/lang/itcl/files/patch-generic+itcl.h b/lang/itcl/files/patch-generic+itcl.h new file mode 100644 index 000000000000..27c74b36f278 --- /dev/null +++ b/lang/itcl/files/patch-generic+itcl.h @@ -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 --git a/lang/itcl/files/patch-generic+itclInt.h b/lang/itcl/files/patch-generic+itclInt.h new file mode 100644 index 000000000000..2d468fc6990f --- /dev/null +++ b/lang/itcl/files/patch-generic+itclInt.h @@ -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 --git a/lang/itcl/files/patch-generic+itcl_cmds.c b/lang/itcl/files/patch-generic+itcl_cmds.c new file mode 100644 index 000000000000..34d8905683e9 --- /dev/null +++ b/lang/itcl/files/patch-generic+itcl_cmds.c @@ -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 --git a/lang/itcl/files/patch-tests+ensemble.test b/lang/itcl/files/patch-tests+ensemble.test new file mode 100644 index 000000000000..7470860d29bc --- /dev/null +++ b/lang/itcl/files/patch-tests+ensemble.test @@ -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 |