summary: Context help causes WinHelp crash after PuTTY help files upgraded class: semi-bug: This might or might not be a bug, depending on your precise definition of what a bug is. difficulty: taxing: Needs external things we don't have (standards, users etc)
Invoking context help from within Windows PuTTY after the PuTTY help
files on a system have been replaced has been observed to cause
WinHelp to crash.
Since the crash occurs in winhelp.exe, it's almost certainly
a WinHelp bug, but perhaps there is something we can do to avoid
triggering it. We're out of ideas, though.
The symptoms I observed (on Win98SE, and also on 2000 when I had
access to it, IIRC) were:
When using new .HLP and .CNT files (e.g., downloaded into a new
directory, alongside a new version of PuTTY such as a development
snapshot), invoking context help consistently causes WINHELP.EXE to
crash and leave a putty.TMP file lying around.
However, invoking the Help file without context by pressing
(say) the Help button on PuTTY's configuration dialog, or invoking it
from a session's system menu, or from Explorer, works fine (and
generates a hidden putty.GID file), and subsequently to that, context
help works too.
If all the files (including .GID) are moved to a different path,
things break again.
Deleting the hidden putty.GID file doesn't appear to cause other
instances not to break, but it can break a previously-working
installation if other help files are accessed in the meantime.
The two installations can be copies of each other and still cause
trouble.
The precise crash (on Win98SE at least) is: "WINHLP32 caused an
invalid page fault in module WINHLP32.EXE at 0167:004099ba." (A
Google Groups search
finds an apparently unrelated reference, so it's not just us.)
Things I've tried, in desperation:
Fiddling with the precise macro we pass to HELP_COMMAND.
Changing from JI to JumpId, or filling in the
first argument (JI(`putty.hlp',`foo.bar')) makes no
difference.
This page
claims there is an undocumented uCommand value to give to
WinHelp() - HELP_TOPIC_ID = 259 - which would
avoid the need to use the JI macro at all. However, I've had
no luck with it ("The topic does not exist. Contact your application vendor
for an updated Help file. (129)")
A newsgroup post reports it as broken on Win98.
If you want to comment on this web site, see the
Feedback page.