Fix line break regression

In commit d1d94cd, we accidentally introduced a regression
since conhost requires all line breaks to be `\r\n`.
This commit is contained in:
Patrik Svensson
2021-05-10 23:20:35 +02:00
committed by Phil Scott
parent 1dfc6bdadc
commit 6549436356
12 changed files with 73 additions and 110 deletions

View File

@ -59,7 +59,7 @@ namespace Spectre.Console
/// <param name="value">The value to write.</param>
public static void MarkupLine(this IAnsiConsole console, string value)
{
Markup(console, value + "\n");
Markup(console, value + Environment.NewLine);
}
/// <summary>
@ -71,7 +71,7 @@ namespace Spectre.Console
/// <param name="args">An array of objects to write.</param>
public static void MarkupLine(this IAnsiConsole console, IFormatProvider provider, string format, params object[] args)
{
Markup(console, provider, format + "\n", args);
Markup(console, provider, format + Environment.NewLine, args);
}
}
}

View File

@ -73,7 +73,7 @@ namespace Spectre.Console
throw new ArgumentNullException(nameof(console));
}
console.Write(new Text("\n", Style.Plain));
console.Write(new Text(Environment.NewLine, Style.Plain));
}
/// <summary>
@ -104,7 +104,7 @@ namespace Spectre.Console
throw new ArgumentNullException(nameof(text));
}
console.Write(text + "\n", style);
console.Write(text + Environment.NewLine, style);
}
}
}

View File

@ -11,6 +11,11 @@ namespace Spectre.Console
/// </summary>
public static class StringExtensions
{
// Cache whether or not internally normalized line endings
// already are normalized. No reason to do yet another replace if it is.
private static readonly bool _alreadyNormalized
= Environment.NewLine.Equals("\n", StringComparison.OrdinalIgnoreCase);
/// <summary>
/// Escapes text so that it wont be interpreted as markup.
/// </summary>
@ -86,6 +91,12 @@ namespace Spectre.Console
{
text = text?.ReplaceExact("\r\n", "\n");
text ??= string.Empty;
if (native && !_alreadyNormalized)
{
text = text.ReplaceExact("\n", Environment.NewLine);
}
return text;
}