From dc38b451bee4bdf07f7200026be02516807faa09 Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Thu, 11 Mar 2021 09:14:44 -0800 Subject: [PATCH] Fix a null-ref exception in `DynamicHelpImpl` (#2292) --- PSReadLine/DynamicHelp.cs | 3 +++ test/DynamicHelpTest.cs | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/PSReadLine/DynamicHelp.cs b/PSReadLine/DynamicHelp.cs index b59bd15a..bffa4ac9 100644 --- a/PSReadLine/DynamicHelp.cs +++ b/PSReadLine/DynamicHelp.cs @@ -151,6 +151,9 @@ private void DynamicHelpImpl(bool isFullHelp) string commandName = null; string parameterName = null; + // Simply return if nothing is rendered yet. + if (_singleton._tokens == null) { return; } + foreach(var token in _singleton._tokens) { var extent = token.Extent; diff --git a/test/DynamicHelpTest.cs b/test/DynamicHelpTest.cs index 5470f930..68c1d184 100644 --- a/test/DynamicHelpTest.cs +++ b/test/DynamicHelpTest.cs @@ -97,6 +97,13 @@ private static PSObject GetParameterHelpObject(string description) return paramHelp; } + [SkippableFact] + public void DynHelp_GetFullHelp_OnEmptyLine() + { + TestSetup(KeyMode.Cmd); + Test("", Keys(_.F1, _.Enter)); + } + [SkippableFact] public void DynHelp_GetFullHelp() { @@ -108,6 +115,13 @@ public void DynHelp_GetFullHelp() )); } + [SkippableFact] + public void DynHelp_GetParameterHelp_OnEmptyLine() + { + TestSetup(KeyMode.Cmd); + Test("", Keys(_.Alt_h, _.Enter)); + } + [SkippableFact] public void DynHelp_GetParameterHelp_And_Clear() {