home *** CD-ROM | disk | FTP | other *** search
- #include "amiga.h"
- #include <intuition/intuition.h>
- #include <stdarg.h>
-
- static struct EasyStruct msg = {
- sizeof (struct EasyStruct),
- 0,
- NULL,
- NULL,
- "Ok",
- };
-
- static void message(char *format, long *args)
- /* Display a message which is as visible as possible (either to the console
- or to as a requester).
- Assume very little about library state */
- {
- LONG msg_EasyRequestArgs(struct Window *window, struct EasyStruct *easyStruct,
- ULONG *idcmpPtr, APTR args );
- #pragma libcall msg_IntuitionBase msg_EasyRequestArgs 24C BA9804
- BPTR fh;
- int close = FALSE;
- extern char *_ProgramName;
- extern struct WBStartup *WBenchMsg;
-
- fh = _us->pr_CES;
- if (!fh)
- if (!WBenchMsg && (fh = Open("console:", MODE_OLDFILE))) close = TRUE;
-
- if (fh)
- {
- FPrintf(fh, "%s: ", _ProgramName);
- VFPrintf(fh, format, (long *)args);
- FPutC(fh, '\n');
- if (close) Close(fh);
- }
- else
- {
- struct Window *win = (struct Window *)_us->pr_WindowPtr;
- if (win != (struct Window *)-1)
- {
- struct Library *msg_IntuitionBase = OpenLibrary("intuition.library", 37);
-
- if (msg_IntuitionBase)
- {
- msg.es_Title = _ProgramName;
- msg.es_TextFormat = format;
- msg_EasyRequestArgs(win, &msg, 0, args);
- CloseLibrary(msg_IntuitionBase);
- }
- }
- }
- }
-
- void _message(char *format, ...)
- /* Display a message which is as visible as possible (either to the console
- or to as a requester).
- Assume very little about library state */
- {
- va_list args;
-
- va_start(args, format);
- message(format, (long *)args);
- }
-
- void _fail(char *format, ...)
- /* Display a message which is as visible as possible (either to the console
- or to as a requester).
- Assume very little about library state.
- Exit with error code RETURN_FAIL after that. */
- {
- va_list args;
-
- va_start(args, format);
- message(format, (long *)args);
-
- exit(RETURN_FAIL); /* The library should always be cleanup-able */
- }
-