From 0989904e5953aefb12964b668899cc28c4a48b39 Mon Sep 17 00:00:00 2001 From: divverent Date: Wed, 23 Dec 2009 11:54:07 +0000 Subject: [PATCH] get utf8lib out of common.c by moving the u8_strnlen call into console.c - keeps the word wrap function encoding agnostic git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9645 d7cf8633-e32d-0410-b094-e92efae38249 --- common.c | 17 +++++------------ console.c | 2 +- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/common.c b/common.c index c8ee1ca6..c002be8d 100644 --- a/common.c +++ b/common.c @@ -20,7 +20,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // common.c -- misc functions used in client and server #include "quakedef.h" -#include "utf8lib.h" #include #include @@ -697,7 +696,6 @@ int COM_Wordwrap(const char *string, size_t length, float continuationWidth, flo int result = 0; size_t wordLen; size_t dummy; - size_t wordChars; dummy = 0; wordWidth(passthroughCW, NULL, &dummy, -1); @@ -710,12 +708,12 @@ int COM_Wordwrap(const char *string, size_t length, float continuationWidth, flo switch(ch) { case 0: // end of string - result += processLine(passthroughPL, startOfLine, u8_strnlen(startOfLine, cursor - startOfLine), spaceUsedInLine, isContinuation); + result += processLine(passthroughPL, startOfLine, cursor - startOfLine, spaceUsedInLine, isContinuation); isContinuation = false; goto out; break; case '\n': // end of line - result += processLine(passthroughPL, startOfLine, u8_strnlen(startOfLine, cursor - startOfLine), spaceUsedInLine, isContinuation); + result += processLine(passthroughPL, startOfLine, cursor - startOfLine, spaceUsedInLine, isContinuation); isContinuation = false; ++cursor; startOfLine = cursor; @@ -740,13 +738,8 @@ int COM_Wordwrap(const char *string, size_t length, float continuationWidth, flo } } out_inner: - /* - wordChars = strlen(cursor); - if (wordChars > wordLen) - */ - wordChars = wordLen; - spaceUsedForWord = wordWidth(passthroughCW, cursor, &wordChars, maxWidth - continuationWidth); // this may have reduced wordLen when it won't fit - but this is GOOD. TODO fix words that do fit in a non-continuation line - if(wordChars < 1) + spaceUsedForWord = wordWidth(passthroughCW, cursor, &wordLen, maxWidth - continuationWidth); // this may have reduced wordLen when it won't fit - but this is GOOD. TODO fix words that do fit in a non-continuation line + if(wordLen < 1) { wordLen = 1; spaceUsedForWord = maxWidth + 1; // too high, forces it in a line of itself @@ -760,7 +753,7 @@ int COM_Wordwrap(const char *string, size_t length, float continuationWidth, flo else { // output current line - result += processLine(passthroughPL, startOfLine, u8_strnlen(startOfLine, cursor - startOfLine), spaceUsedInLine, isContinuation); + result += processLine(passthroughPL, startOfLine, cursor - startOfLine, spaceUsedInLine, isContinuation); isContinuation = true; startOfLine = cursor; cursor += wordLen; diff --git a/console.c b/console.c index 6a59b970..4d279b96 100644 --- a/console.c +++ b/console.c @@ -1464,7 +1464,7 @@ int Con_DisplayLineFunc(void *passthrough, const char *line, size_t length, floa if(isContinuation && *ti->continuationString) x += (int) DrawQ_String_Font(x, ti->y, ti->continuationString, strlen(ti->continuationString), ti->fontsize, ti->fontsize, 1.0, 1.0, 1.0, 1.0, 0, NULL, false, ti->font); if(length > 0) - DrawQ_String_Font(x, ti->y, line, length, ti->fontsize, ti->fontsize, 1.0, 1.0, 1.0, 1.0, 0, &(ti->colorindex), false, ti->font); + DrawQ_String_Font(x, ti->y, line, u8_strnlen(line, length), ti->fontsize, ti->fontsize, 1.0, 1.0, 1.0, 1.0, 0, &(ti->colorindex), false, ti->font); } ti->y += ti->fontsize; -- 2.39.2