43 lines
1.8 KiB
Diff
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"
|