Browse Source

Make Driver population code more concise (#3024)

* Make Driver population code more concise

This is effectively a NOP change, just makes it a little more terse

* Restore old behavior of null check after populating Driver

---------

Co-authored-by: Riley Carlson <[email protected]>
Riley Carlson 1 year ago
parent
commit
52e7466ef9
1 changed files with 8 additions and 16 deletions
  1. 8 16
      Terminal.Gui/Application.cs

+ 8 - 16
Terminal.Gui/Application.cs

@@ -158,22 +158,14 @@ namespace Terminal.Gui {
 			ConfigurationManager.Load (true);
 			ConfigurationManager.Apply ();
 
-			if (Driver == null) {
-				var p = Environment.OSVersion.Platform;
-				if (_forceFakeConsole) {
-					// For Unit Testing only
-					Driver = new FakeDriver ();
-				} else if (UseSystemConsole) {
-					Driver = new NetDriver ();
-				} else if (p == PlatformID.Win32NT || p == PlatformID.Win32S || p == PlatformID.Win32Windows) {
-					Driver = new WindowsDriver ();
-				} else {
-					Driver = new CursesDriver ();
-				}
-				if (Driver == null) {
-					throw new InvalidOperationException ("Init could not determine the ConsoleDriver to use.");
-				}
-			}
+			Driver ??= Environment.OSVersion.Platform switch {
+				_ when _forceFakeConsole => new FakeDriver (), // for unit testing only
+				_ when UseSystemConsole => new NetDriver (),
+				PlatformID.Win32NT or PlatformID.Win32S or PlatformID.Win32Windows => new WindowsDriver (),
+				_ => new CursesDriver (),
+			};
+
+			if (Driver == null) throw new InvalidOperationException ("Init could not determine the ConsoleDriver to use.");
 
 			try {
 				MainLoop = Driver.Init ();