diff options
author | rjohnson <rjohnson> | 1998-10-13 18:44:15 (GMT) |
---|---|---|
committer | rjohnson <rjohnson> | 1998-10-13 18:44:15 (GMT) |
commit | b091a84076a589e3188f5762fcbaf1ccc3556dda (patch) | |
tree | 2f156e604f9e353b3135cfa37592af5cec5a76f5 | |
parent | 7e68669921ece34a9b75205b450efba1f3533b52 (diff) | |
download | tcl-b091a84076a589e3188f5762fcbaf1ccc3556dda.zip tcl-b091a84076a589e3188f5762fcbaf1ccc3556dda.tar.gz tcl-b091a84076a589e3188f5762fcbaf1ccc3556dda.tar.bz2 |
Fixed bug in "info complete" - it did not handle NULLs correctly.
-rw-r--r-- | changes | 8 | ||||
-rw-r--r-- | generic/tclCmdIL.c | 8 | ||||
-rw-r--r-- | tests/info.test | 8 |
3 files changed, 16 insertions, 8 deletions
@@ -1,6 +1,6 @@ Recent user-visible changes to Tcl: -RCS: @(#) $Id: changes,v 1.23 1998/10/05 22:32:56 escoffon Exp $ +RCS: @(#) $Id: changes,v 1.24 1998/10/13 18:44:15 rjohnson Exp $ 1. No more [command1] [command2] construct for grouping multiple commands on a single command line. @@ -3622,4 +3622,8 @@ Windows, MYDLLNAME.DLL was sourced, and mydllname.dll loaded. (EMS) 10/5/98 (new feature) Created a new Tcl_Obj type, "procbody". This object's internal representation holds a pointer to a Proc structure. Extended -TclCreateProc to take both strings and "procbody" +TclCreateProc to take both strings and "procbody". (EMS) + +10/13/98 (bug fix) The "info complete" command can now handle strings +with NULLs embedded. Thanks to colin@field.medicine.adelaide.edu.au +for providing this fix. (RJ) diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index 470d291..a1e6894 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -13,7 +13,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdIL.c,v 1.7 1998/09/14 18:39:57 stanton Exp $ + * RCS: @(#) $Id: tclCmdIL.c,v 1.8 1998/10/13 18:44:16 rjohnson Exp $ */ #include "tclInt.h" @@ -762,19 +762,17 @@ InfoCompleteCmd(dummy, interp, objc, objv) int objc; /* Number of arguments. */ Tcl_Obj *CONST objv[]; /* Argument objects. */ { - char *command; - if (objc != 3) { Tcl_WrongNumArgs(interp, 2, objv, "command"); return TCL_ERROR; } - command = Tcl_GetStringFromObj(objv[2], (int *) NULL); - if (Tcl_CommandComplete(command)) { + if (TclObjCommandComplete(objv[2])) { Tcl_SetIntObj(Tcl_GetObjResult(interp), 1); } else { Tcl_SetIntObj(Tcl_GetObjResult(interp), 0); } + return TCL_OK; } diff --git a/tests/info.test b/tests/info.test index d4ad093..228524d 100644 --- a/tests/info.test +++ b/tests/info.test @@ -10,7 +10,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: info.test,v 1.3 1998/09/14 18:40:10 stanton Exp $ +# RCS: @(#) $Id: info.test,v 1.4 1998/10/13 18:44:16 rjohnson Exp $ if {[string compare test [info procs test]] == 1} then {source defs} @@ -233,6 +233,12 @@ test info-5.46 {info complete option} { test info-5.47 {info complete option} { info complete "abc\\\n" } 0 +test info-5.48 {info complete option} { + info complete "set x [binary format H 00]; puts hi" +} 1 +test info-5.49 {info complete option} { + info complete "set x [binary format H 00]; {" +} 0 test info-6.1 {info default option} { proc t1 {a b {c d} {e "long default value"}} {} |