From d748a7d5e77c05d25d71d859141bb7227606df88 Mon Sep 17 00:00:00 2001 From: chrisgregan Date: Wed, 13 Jan 2016 16:45:03 +0000 Subject: [PATCH] Fixed whitespace trimming only after {wc} & {c} tags --- Assets/Fungus/UI/Scripts/Writer.cs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Assets/Fungus/UI/Scripts/Writer.cs b/Assets/Fungus/UI/Scripts/Writer.cs index 5e7c8372..0e88efe3 100644 --- a/Assets/Fungus/UI/Scripts/Writer.cs +++ b/Assets/Fungus/UI/Scripts/Writer.cs @@ -368,13 +368,15 @@ namespace Fungus exitFlag = false; isWriting = true; + TextTagParser.TokenType previousTokenType = TextTagParser.TokenType.Invalid; + foreach (TextTagParser.Token token in tokens) { switch (token.type) { case TextTagParser.TokenType.Words: - yield return StartCoroutine(DoWords(token.paramList)); + yield return StartCoroutine(DoWords(token.paramList, previousTokenType)); break; case TextTagParser.TokenType.BoldStart: @@ -541,7 +543,9 @@ namespace Fungus } break; } - + + previousTokenType = token.type; + if (exitFlag) { break; @@ -561,14 +565,22 @@ namespace Fungus } } - protected virtual IEnumerator DoWords(List paramList) + protected virtual IEnumerator DoWords(List paramList, TextTagParser.TokenType previousTokenType) { if (!CheckParamCount(paramList, 1)) { yield break; } - string param = paramList[0].TrimStart(' ', '\t', '\r', '\n'); + string param = paramList[0]; + + // Trim whitespace after a {wc} or {c} tag + if (previousTokenType == TextTagParser.TokenType.WaitForInputAndClear || + previousTokenType == TextTagParser.TokenType.Clear) + { + param = param.TrimStart(' ', '\t', '\r', '\n'); + } + string startText = text; string openText = OpenMarkup(); string closeText = CloseMarkup();