diff options
Diffstat (limited to 'dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch')
-rw-r--r-- | dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch b/dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch deleted file mode 100644 index 517fe93f8b2c..000000000000 --- a/dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch +++ /dev/null @@ -1,100 +0,0 @@ -Submitted By: Bryan Kadzban <bryan@kadzban.is-a-geek.net> -Date: 2008-01-12 -Initial Package Version: 5.43 -Upstream status: Not Submitted - Test Version -Origin: LFS ticket 2126 (http://wiki.linuxfromscratch.org/lfs/ticket/2126) -Description: Removes references to functions that Tcl 8.5 no longer exposes. - -diff -Naur expect-5.43/exp_command.c expect-5.43-patched/exp_command.c ---- expect-5.43/exp_command.c 2004-08-20 13:18:01.000000000 -0400 -+++ expect-5.43-patched/exp_command.c 2008-01-12 11:42:45.000000000 -0500 -@@ -2265,6 +2265,8 @@ - /*NOTREACHED*/ - } - -+static struct exp_cmd_data cmd_data[]; -+ - /*ARGSUSED*/ - static int - Exp_CloseObjCmd(clientData, interp, objc, objv) -@@ -2311,12 +2313,23 @@ - /* Historical note: we used "close" long before there was a */ - /* Tcl builtin by the same name. */ - -+ /* The code that registered this function as the handler for */ -+ /* the "close" command stored away the old handler in the */ -+ /* exp_cmd_data for the "close" command. */ -+ -+ struct exp_cmd_data *cmd_ptr; - Tcl_CmdInfo info; -+ -+ for(cmd_ptr = &cmd_data[0]; cmd_ptr->name; cmd_ptr++) { -+ if(strncmp(cmd_ptr->name, "close", 5) == 0) -+ break; -+ } -+ - Tcl_ResetResult(interp); - if (0 == Tcl_GetCommandInfo(interp,"close",&info)) { - info.clientData = 0; - } -- return(Tcl_CloseObjCmd(info.clientData,interp,objc_orig,objv_orig)); -+ return(cmd_ptr->old_objProc(info.clientData,interp,objc_orig,objv_orig)); - } - - if (chanName) { -@@ -2961,7 +2974,10 @@ - /* if successful (i.e., TCL_RETURN is returned) */ - /* modify the result, so that we will handle it specially */ - -- int result = Tcl_ReturnObjCmd(clientData,interp,objc,objv); -+ Tcl_CmdInfo info; -+ Tcl_GetCommandInfo(interp, "return", &info); -+ -+ int result = info.objProc(clientData,interp,objc,objv); - if (result == TCL_RETURN) - result = EXP_TCL_RETURN; - return result; -@@ -3062,8 +3078,7 @@ - - for (;c->name;c++) { - /* if already defined, don't redefine */ -- if ((c->flags & EXP_REDEFINE) || -- !(Tcl_FindHashEntry(&globalNsPtr->cmdTable,c->name) || -+ if (!(Tcl_FindHashEntry(&globalNsPtr->cmdTable,c->name) || - Tcl_FindHashEntry(&currNsPtr->cmdTable,c->name))) { - if (c->objproc) - Tcl_CreateObjCommand(interp,c->name, -@@ -3072,6 +3087,21 @@ - Tcl_CreateCommand(interp,c->name,c->proc, - c->data,exp_deleteProc); - } -+ else if (c->flags & EXP_REDEFINE) { /* unless the REDEFINE flag is present */ -+ Tcl_CmdInfo info; -+ -+ if (Tcl_GetCommandInfo(interp, c->name, &info)) { -+ c->old_proc = info.proc; -+ c->old_objProc = info.objProc; -+ } -+ -+ if (c->objproc) -+ Tcl_CreateObjCommand(interp,c->name, -+ c->objproc,c->data,exp_deleteObjProc); -+ else -+ Tcl_CreateCommand(interp,c->name,c->proc, -+ c->data,exp_deleteProc); -+ } - if (!(c->name[0] == 'e' && - c->name[1] == 'x' && - c->name[2] == 'p') -diff -Naur expect-5.43/exp_command.h expect-5.43-patched/exp_command.h ---- expect-5.43/exp_command.h 2008-01-12 11:44:11.000000000 -0500 -+++ expect-5.43-patched/exp_command.h 2008-01-12 11:26:05.000000000 -0500 -@@ -297,6 +297,8 @@ - Tcl_CmdProc *proc; - ClientData data; - int flags; -+ Tcl_CmdProc *old_proc; /* these store the procedure for the old command, */ -+ Tcl_ObjCmdProc *old_objProc; /* if any */ - }; - - EXTERN void exp_create_commands _ANSI_ARGS_((Tcl_Interp *, |