Libhelp Client-server help

If you want to have help, but you don't want to link your application with all these heavy libraries
libhelp libhtmlw libButtFace libXpm libXm ...
you may take a look at libhlpclient. It provides exactly the libhelp interface funtions, but instead of implementing a help browser by itself, it just starts and controlls a helpserver application like xmhelp or NCSA Mosaic(tm).

Setting the help server

There is an additional integer resource for choosing the help server:

help_server.
Acceptable values are:
NO_SERVER XMHELP_SERVER MOSAIC_SERVER.

The default value is XMHELP_SERVER. If you want to use Mosaic, set the resource to MOSAIC_SERVER. Try it...

Limitations with NCSA Mosaic(tm)

Libhlpclient implements the same search path resolution for help documents as libhelp. Help documents can be anywhere in the path specified by the environment variable LIBHELPPATH. If you use NCSA Mosaic(tm) as help server, the libhlpclient library searches the requested help document in the search path (this isn't needed for xmhelp). For inlined images to be resolved correctly by NCSA Mosaic(tm), they must be referenced either absolute or relative to the directory where the current document comes from. NCSA Mosaic(tm) itself doesn't know anything about search paths.

Problems

If you send several help request in a short amount of time or if you interact with the help server while libhlpclient requests help, the help server may crash (but not your application; it crashes on real bugs in libhlpclient :-)). In the worst case, your window manager will be irritated and you'll need to restart it. So, it is better always to wait till the help server has finished a help request.

Libhlpclient will restart the help server after a crash.

-----------

Libhelp version 1.8.1 (Jun 28. 95).
Thomas Harrer