From 5c94eccefc673baa9b8592afc9997cbf298a6399 Mon Sep 17 00:00:00 2001 From: dkf Date: Tue, 4 Aug 2009 21:46:03 +0000 Subject: Fix word-wrapping of non-breaking spaces in the text widget to work reliably. --- ChangeLog | 7 +++++++ generic/tkTextDisp.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4ea12cb..7bd028c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-08-04 Donal K. Fellows + + * generic/tkTextDisp.c (TkTextCharLayoutProc): Make the line breaking + algorithm (in the word-wrap case) do the right thing with non-breaking + spaces by restricting what we break on to ASCII spaces, which is good + enough for most purposes. + 2009-08-01 Donal K. Fellows * unix/tkUnixWm.c (WmIconphotoCmd): [Bug 2830420]: Assemble the image diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c index c8c8606..8477739 100644 --- a/generic/tkTextDisp.c +++ b/generic/tkTextDisp.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkTextDisp.c,v 1.68 2007/12/13 15:24:17 dgp Exp $ + * RCS: @(#) $Id: tkTextDisp.c,v 1.68.2.1 2009/08/04 21:46:03 dkf Exp $ */ #include "tkInt.h" @@ -7209,7 +7209,7 @@ TkTextCharLayoutProc( } else { for (count = bytesThatFit, p += bytesThatFit - 1; count > 0; count--, p--) { - if (isspace(UCHAR(*p))) { + if (UCHAR(*p) < 0x80 && isspace(UCHAR(*p))) { chunkPtr->breakIndex = count; break; } -- cgit v0.12