Thanks to Eric on the CW-TALK2 chat for identifying this bug. With his instructions on how to replicate it I was able to find a workaround.

I have reported the error to SoftVelocity (PTSS#37709). Until they bring out a fix I suggest that you try to not use F1 in such a way that will call the help with a blank keyword or just stick to using Shift+F1 while in the editors!

Scroll to the bottom for the download link or read on for some details of the issue…

The problem:

Help file can hang/freeze requiring an end-task on the clarion.exe process

Steps to repeat:

  1. Open People.sln (Generate it once) Open People.clw
  2. Select a keyword (eg. MODULE) Press F1, click in C7 (help stays open)
  3. Select a keyword (eg. PROCEDURE) Press Shift+F1, click in C7 (help opens with topics found)

Analysis:

It turns out that the problem is not actually down to any kind of interaction between the built in F1 and my Context Help addin but in fact what seems to be a bug in either HTML Help control or the .Net Help.ShowHelp method. The problem can be duplicated using just the built in F1 or just my addin or, of course, both!

If the very first time you call Help.ShowHelp when the 4th parameter is either null or String.Empty then a subsequent call to Help.ShowHelp that requires the “Topic Found” dialog will cause the HTML Help control to hang/freeze.

So instead of just calling the help like this:

I have changed it to be this:

(I chose “Special Characters” pretty much at random, it could be anything just as long as it isn’t blank!")

-brahn

Download: download ClarionEditorContextHelp.sdaddin
Version: 0.2
Updated: June 3, 2011
Size: 5.05 KB
Downloads: 684