mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-30 17:57:57 +01:00
Merge branch 'develop' into fix_2109_menubar_spacing
This commit is contained in:
@@ -1500,6 +1500,7 @@ namespace Terminal.Gui {
|
||||
}
|
||||
}) {
|
||||
powershell.Start ();
|
||||
powershell.WaitForExit ();
|
||||
if (!powershell.DoubleWaitForExit ()) {
|
||||
var timeoutError = $@"Process timed out. Command line: bash {powershell.StartInfo.Arguments}.
|
||||
Output: {powershell.StandardOutput.ReadToEnd ()}
|
||||
|
||||
@@ -92,7 +92,8 @@ namespace Terminal.Gui {
|
||||
try {
|
||||
SetClipboardDataImpl (text);
|
||||
return true;
|
||||
} catch (Exception) {
|
||||
} catch (Exception ex) {
|
||||
System.Diagnostics.Debug.WriteLine ($"TrySetClipboardData: {ex.Message}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -681,11 +681,13 @@ namespace Terminal.Gui {
|
||||
/// <param name="col">Column to move the cursor to.</param>
|
||||
/// <param name="row">Row to move the cursor to.</param>
|
||||
public abstract void Move (int col, int row);
|
||||
|
||||
/// <summary>
|
||||
/// Adds the specified rune to the display at the current cursor position
|
||||
/// </summary>
|
||||
/// <param name="rune">Rune to add.</param>
|
||||
public abstract void AddRune (Rune rune);
|
||||
|
||||
/// <summary>
|
||||
/// Ensures a Rune is not a control character and can be displayed by translating characters below 0x20
|
||||
/// to equivalent, printable, Unicode chars.
|
||||
@@ -694,21 +696,14 @@ namespace Terminal.Gui {
|
||||
/// <returns></returns>
|
||||
public static Rune MakePrintable (Rune c)
|
||||
{
|
||||
var controlChars = gethexaformat (c, 4);
|
||||
if (controlChars <= 0x1F || (controlChars >= 0X7F && controlChars <= 0x9F)) {
|
||||
var controlChars = c & 0xFFFF;
|
||||
if (controlChars <= 0x1F || controlChars >= 0X7F && controlChars <= 0x9F) {
|
||||
// ASCII (C0) control characters.
|
||||
// C1 control characters (https://www.aivosto.com/articles/control-characters.html#c1)
|
||||
return new Rune (controlChars + 0x2400);
|
||||
} else {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
static uint gethexaformat (uint rune, int length)
|
||||
{
|
||||
var hex = rune.ToString ($"x{length}");
|
||||
var hexstr = hex.Substring (hex.Length - length, length);
|
||||
return (uint)int.Parse (hexstr, System.Globalization.NumberStyles.HexNumber);
|
||||
return c;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -20,6 +20,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
||||
.github\workflows\dotnet-core.yml = .github\workflows\dotnet-core.yml
|
||||
.github\workflows\publish.yml = .github\workflows\publish.yml
|
||||
README.md = README.md
|
||||
testenvironments.json = testenvironments.json
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
|
||||
@@ -608,5 +608,29 @@ namespace Terminal.Gui.ConsoleDrivers {
|
||||
Application.Run (win);
|
||||
Application.Shutdown ();
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(0x0000001F, 0x241F)]
|
||||
[InlineData(0x0000007F, 0x247F)]
|
||||
[InlineData(0x0000009F, 0x249F)]
|
||||
[InlineData(0x0001001A, 0x241A)]
|
||||
public void MakePrintable_Converts_Control_Chars_To_Proper_Unicode (uint code, uint expected)
|
||||
{
|
||||
var actual = ConsoleDriver.MakePrintable(code);
|
||||
|
||||
Assert.Equal (expected, actual.Value);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(0x20)]
|
||||
[InlineData(0x7E)]
|
||||
[InlineData(0xA0)]
|
||||
[InlineData(0x010020)]
|
||||
public void MakePrintable_Does_Not_Convert_Ansi_Chars_To_Unicode (uint code)
|
||||
{
|
||||
var actual = ConsoleDriver.MakePrintable(code);
|
||||
|
||||
Assert.Equal (code, actual.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
19
testenvironments.json
Normal file
19
testenvironments.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
// Remote Testing (experimental preview).
|
||||
// Here is some documentation https://learn.microsoft.com/en-us/visualstudio/test/remote-testing?view=vs-2022.
|
||||
// Here a screen shot of the VS2022 where are the Test Explorer https://user-images.githubusercontent.com/13117724/196798350-5a6f94d3-b6cd-424e-b4e8-a9b507dc057a.png.
|
||||
// Ignore "Could not find 'mono' host" error because unit tests don't use the .NET Framework.
|
||||
"version": "1",
|
||||
"environments": [
|
||||
{
|
||||
"name": "WSL-Ubuntu",
|
||||
"type": "wsl",
|
||||
"wslDistribution": "Ubuntu"
|
||||
},
|
||||
{
|
||||
"name": "WSL-Debian",
|
||||
"type": "wsl",
|
||||
"wslDistribution": "Debian"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user