diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | tests/text.test | 21 | ||||
-rw-r--r-- | unix/tkUnixFont.c | 9 |
3 files changed, 17 insertions, 18 deletions
@@ -1,3 +1,8 @@ +2002-10-17 Jeff Hobbs <jeffh@ActiveState.com> + + * tests/text.test: properly return the number of + * unix/tkUnixFont.c (ControlUtfProc): bytes consumed. [Bug #624732] + 2002-10-17 Daniel Steffen <das@users.sourceforge.net> * macosx/README: info specific to building and running diff --git a/tests/text.test b/tests/text.test index 0ea9165..1c21d21 100644 --- a/tests/text.test +++ b/tests/text.test @@ -6,7 +6,7 @@ # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # -# RCS: @(#) $Id: text.test,v 1.18 2002/07/13 20:28:35 dgp Exp $ +# RCS: @(#) $Id: text.test,v 1.19 2002/10/17 23:38:01 hobbs Exp $ package require tcltest 2.1 namespace import -force tcltest::configure @@ -1573,22 +1573,15 @@ test text-25.13 {-maxundo configuration option} { .t get 1.0 end } "line 1\n\n" +test text-26.1 {bug fix - 624372, ControlUtfProc long lines} { + destroy .t + pack [text .t -wrap none] + .t insert end [string repeat "\1" 500] +} {} + deleteWindows option clear # cleanup ::tcltest::cleanupTests return - - - - - - - - - - - - - diff --git a/unix/tkUnixFont.c b/unix/tkUnixFont.c index 5f5b881..de4c8e2 100644 --- a/unix/tkUnixFont.c +++ b/unix/tkUnixFont.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkUnixFont.c,v 1.15 2002/08/05 04:30:41 dgp Exp $ + * RCS: @(#) $Id: tkUnixFont.c,v 1.16 2002/10/17 23:38:01 hobbs Exp $ */ #include "tkUnixInt.h" @@ -406,7 +406,7 @@ ControlUtfProc(clientData, src, srcLen, flags, statePtr, dst, dstLen, * correspond to the bytes stored in the * output buffer. */ { - CONST char *srcEnd; + CONST char *srcStart, *srcEnd; char *dstStart, *dstEnd; Tcl_UniChar ch; int result; @@ -416,8 +416,9 @@ ControlUtfProc(clientData, src, srcLen, flags, statePtr, dst, dstLen, 'a', 'b', 't', 'n', 'v', 'f', 'r' }; - result = TCL_OK; + result = TCL_OK; + srcStart = src; srcEnd = src + srcLen; dstStart = dst; @@ -447,7 +448,7 @@ ControlUtfProc(clientData, src, srcLen, flags, statePtr, dst, dstLen, dst += 6; } } - *srcReadPtr = src - srcEnd; + *srcReadPtr = src - srcStart; *dstWrotePtr = dst - dstStart; *dstCharsPtr = dst - dstStart; return result; |