From 35d236fec0bee20d47f1d04332543f8c28603bef Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Wed, 10 Mar 2021 15:26:41 -0800 Subject: [PATCH 1/2] Fix a null-ref exception in 'DynamicHelpImpl' --- PSReadLine/DynamicHelp.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PSReadLine/DynamicHelp.cs b/PSReadLine/DynamicHelp.cs index b59bd15aa..bffa4ac94 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; From b8ce50cbf4bf034feab4bfb016d315aac6b0b7df Mon Sep 17 00:00:00 2001 From: Dongbo Wang Date: Wed, 10 Mar 2021 17:25:15 -0800 Subject: [PATCH 2/2] Add 2 tests --- test/DynamicHelpTest.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/DynamicHelpTest.cs b/test/DynamicHelpTest.cs index 5470f9307..68c1d184b 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() {