Well if it was for me, you'd have AmigaGuide sending your notification tomorrow But under the circumstances, you'll have to contact Steven and ask for it. Still there's a good chance, unless it breaks things of course: I needed a special kind of message from the commodities.library, and it was implemented fairly quickly. The commodities update actually did break things but as the only software really affected was Exchange (third-party commodity managers used undocumented features, and were therefore illegal), the situation was easy to remedy.

@chrisI think something is wrong with amigaguide.library. I found an AmigaGuide example called HyperApp.c on my OS3 developer CD and compiled it for OS4 (with a few changes). HyperApp.c waits for AmigaGuide messages and displays the type of messages received. Even though it checks for ShutdownMsgID, it doesn't show any shutdown message being received. If you have access to an OS3 Amiga, it might be interresting to see if HyperApp.c receives a shutdown message (ShutdownMsgID).

I had a quick look at some other examples on the DevCD (aghelp.c and advaghelp.c, in the Orlando 1993 DevCon directory), and it indeed looks like "ShutdownMsgID" from libraries/amigaguide.h refers to a message sent to the AmigaGuide port. The code shows quite clearly that the program's input loop Wait()s on the AmigaGuide signal, then performs GetAmigaGuideMsg() and switch()es for the individual messages, ShutdownMsgID being one of them. So if the message doesn't arrive (as you say), it is likely that something's broken under the bonnet.

xenic wrote:@chrisI think something is wrong with amigaguide.library. I found an AmigaGuide example called HyperApp.c on my OS3 developer CD and compiled it for OS4 (with a few changes). HyperApp.c waits for AmigaGuide messages and displays the type of messages received. Even though it checks for ShutdownMsgID, it doesn't show any shutdown message being received. If you have access to an OS3 Amiga, it might be interresting to see if HyperApp.c receives a shutdown message (ShutdownMsgID).

I tried running it, and it doesn't display any messages. I think it needs compiling with the debug enabled. The other examples (advaghelp being the best looking one) have a similar problem, in that they only display errors after receiving the messages, they don't display reception of the message itself. It certainly appears that the ShutdownMsgID should be sent.

I don't have anything that can usefully compile this old code for 68k, at least not without reworking it, so that's as far as I can investigate for the moment.

(As an aside, there's some nice documentation about AmigaGuide, XRefs and Dynamic Nodes that I've not seen before, and a cool dynamic node example which displays running libraries and things inside an AmigaGuide)

chris wrote:I tried running it, and it doesn't display any messages. I think it needs compiling with the debug enabled. The other examples (advaghelp being the best looking one) have a similar problem, in that they only display errors after receiving the messages, they don't display reception of the message itself. It certainly appears that the ShutdownMsgID should be sent.

I just eliminated clib & pragmas includes, added proto includes for exec, graphics etc. & <string.h>. I replaced all the debug statements with printf() and compiled for OS4 with some defines to use obsolete Intuition stuff. When I ran the resulting binary from a shell, it just comfirmed that the shutdown message was not being received when the guide was closed.

Some time ago I uploaded a command called "OpenGuide" to OS4 depot at the request of another programmer. He wanted to be able to open and control AmigaGuide help from a script. The command opens an AmigaGuide that can be controlled (somewhat) with AmigaGuide ARexx commands. It opens an AmigaGuide synchronously and doesn't return until the guide is closed by the user. You could use similar code in a seperate process that signals your main program when the synchronous AmigaGuide returns after the user closes it.

When I wrote "OpenGuide" I also discovered that some of the AmigaGuide ARexx commands don't seem to work as documented. I only got them working by trial-and-error. I suspect that AmigaGuide library is a low priority for the OS4 devs, so I don't think we can expect fixes any time soon.

Right, an update. I've compiled HyperApp for 68k with an extra printf in it so I can see the messages that are coming in.There is no difference between OS4 and OS3.1 amigaguide.library wrt the messages that are sent - there are two:

I think it's pretty clear that at the time the example was written, that message was intended to signify that the user had finished with the AmigaGuide session, so either nobody ever checked it actually worked, or it was never implemented. Only somebody with access to the source code will be able to tell us which it is.

chris wrote:I think it's pretty clear that at the time the example was written, that message was intended to signify that the user had finished with the AmigaGuide session, so either nobody ever checked it actually worked, or it was never implemented.

AFAICT it seems to be the latter, i.e. a feature that was never implemented.

chris wrote:I think it's pretty clear that at the time the example was written, that message was intended to signify that the user had finished with the AmigaGuide session, so either nobody ever checked it actually worked, or it was never implemented.

AFAICT it seems to be the latter, i.e. a feature that was never implemented.