From 2186d565ba4e59be880114e0330457cc9143c2d4 Mon Sep 17 00:00:00 2001 From: Kevin B Kenny Date: Sat, 1 Feb 2003 21:27:55 +0000 Subject: * generic/tclClock.c: Fixed a bug that incorrectly allowed [clock clicks {}] and [clock clicks -] to be accepted as if they were [clock clicks -milliseconds]. * tests/clock.test: Added regression tests for the above bug. [Bug 675356] --- ChangeLog | 9 +++++++++ generic/tclClock.c | 10 ++++++---- tests/clock.test | 8 +++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6bb623b..3e9a770 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2003-02-01 Kevin Kenny + * generic/tclClock.c: Fixed a bug that incorrectly allowed + [clock clicks {}] and [clock clicks -] to be accepted as if + they were [clock clicks -milliseconds]. + + * tests/clock.test: Added regression tests for the above bug. + [Bug 675356] + +2003-02-01 Kevin Kenny + * tests/unixNotfy.test: Added cleanup of working files [Bug 675609] diff --git a/generic/tclClock.c b/generic/tclClock.c index e98eba6..55c3bab 100644 --- a/generic/tclClock.c +++ b/generic/tclClock.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclClock.c,v 1.19 2003/02/01 19:48:23 kennykb Exp $ + * RCS: @(#) $Id: tclClock.c,v 1.20 2003/02/01 21:27:55 kennykb Exp $ */ #include "tcl.h" @@ -66,6 +66,7 @@ Tcl_ClockObjCmd (client, interp, objc, objv) long zone; Tcl_Obj *baseObjPtr = NULL; char *scanStr; + int n; static CONST char *switches[] = {"clicks", "format", "scan", "seconds", (char *) NULL}; @@ -90,9 +91,10 @@ Tcl_ClockObjCmd (client, interp, objc, objv) int forceMilli = 0; if (objc == 3) { - format = Tcl_GetStringFromObj(objv[2], &index); - if (strncmp(format, "-milliseconds", - (unsigned int) index) == 0) { + format = Tcl_GetStringFromObj(objv[2], &n); + if ( ( n >= 2 ) + && ( strncmp( format, "-milliseconds", + (unsigned int) n) == 0 ) ) { forceMilli = 1; } else { Tcl_AppendStringsToObj(resultPtr, diff --git a/tests/clock.test b/tests/clock.test index cc77260..745c095 100644 --- a/tests/clock.test +++ b/tests/clock.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: clock.test,v 1.21 2002/07/05 11:16:01 rmax Exp $ +# RCS: @(#) $Id: clock.test,v 1.22 2003/02/01 21:27:55 kennykb Exp $ set env(LC_TIME) POSIX @@ -51,6 +51,12 @@ test clock-2.5 {clock clicks tests, millisecond timing test} { # 60 msecs seems to be the max time slice under Windows 95/98 expr {($end > $start) && (($end - $start) <= 60)} } {1} +test clock-2.6 {clock clicks, milli with too much abbreviation} { + list [catch { clock clicks {} } msg] $msg +} {1 {bad switch "": must be -milliseconds}} +test clock-2.7 {clock clicks, milli with too much abbreviation} { + list [catch { clock clicks - } msg] $msg +} {1 {bad switch "-": must be -milliseconds}} # clock format test clock-3.1 {clock format tests} {unixOnly} { -- cgit v0.12