summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrjohnson <rjohnson>1998-10-13 18:44:15 (GMT)
committerrjohnson <rjohnson>1998-10-13 18:44:15 (GMT)
commitb091a84076a589e3188f5762fcbaf1ccc3556dda (patch)
tree2f156e604f9e353b3135cfa37592af5cec5a76f5
parent7e68669921ece34a9b75205b450efba1f3533b52 (diff)
downloadtcl-b091a84076a589e3188f5762fcbaf1ccc3556dda.zip
tcl-b091a84076a589e3188f5762fcbaf1ccc3556dda.tar.gz
tcl-b091a84076a589e3188f5762fcbaf1ccc3556dda.tar.bz2
Fixed bug in "info complete" - it did not handle NULLs correctly.
-rw-r--r--changes8
-rw-r--r--generic/tclCmdIL.c8
-rw-r--r--tests/info.test8
3 files changed, 16 insertions, 8 deletions
diff --git a/changes b/changes
index 31f8f87..e886008 100644
--- a/changes
+++ b/changes
@@ -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"}} {}