expect/expect-5.43.0-tcl8.5.6.patch
2009-02-11 08:12:03 +00:00

43 lines
1.8 KiB
Diff

diff -up expect-5.43/exp_command.c_old expect-5.43/exp_command.c
--- expect-5.43/exp_command.c_old 2009-02-10 16:23:48.000000000 +0100
+++ expect-5.43/exp_command.c 2009-02-10 16:31:38.000000000 +0100
@@ -2311,12 +2311,11 @@ Tcl_Obj *CONST objv[]; /* Argument objec
/* Historical note: we used "close" long before there was a */
/* Tcl builtin by the same name. */
- Tcl_CmdInfo info;
+ Tcl_CmdInfo* close_info;
Tcl_ResetResult(interp);
- if (0 == Tcl_GetCommandInfo(interp,"close",&info)) {
- info.clientData = 0;
- }
- return(Tcl_CloseObjCmd(info.clientData,interp,objc_orig,objv_orig));
+
+ close_info = (Tcl_CmdInfo*) Tcl_GetAssocData (interp, EXP_CMDINFO_CLOSE, NULL);
+ return(close_info->objProc(close_info->objClientData,interp,objc,objv));
}
if (chanName) {
@@ -2961,7 +2960,10 @@ Tcl_Obj *CONST objv[];
/* 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* return_info = (Tcl_CmdInfo*)
+ Tcl_GetAssocData (interp, EXP_CMDINFO_RETURN, NULL);
+
+ int result = return_info->objProc(return_info->objClientData,interp,objc,objv);
if (result == TCL_RETURN)
result = EXP_TCL_RETURN;
return result;
diff -up expect-5.43/exp_command.h_old expect-5.43/exp_command.h
--- expect-5.43/exp_command.h_old 2009-02-10 17:33:19.000000000 +0100
+++ expect-5.43/exp_command.h 2009-02-10 17:33:46.000000000 +0100
@@ -326,3 +326,6 @@ EXTERN ExpState * expDevttyGet _ANSI_ARG
/* generic functions that really should be provided by Tcl */
EXTERN int expSizeGet _ANSI_ARGS_((ExpState *));
EXTERN int expSizeZero _ANSI_ARGS_((ExpState *));
+
+#define EXP_CMDINFO_CLOSE "expect/cmdinfo/close"
+#define EXP_CMDINFO_RETURN "expect/cmdinfo/return"