home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Geek Gadgets 1
/
ADE-1.bin
/
ade-dist
/
emacs-19.28-src.tgz
/
tar.out
/
fsf
/
emacs
/
unixlib
/
src
/
message.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-09-28
|
2KB
|
79 lines
#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)
{
VFPrintf(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 */
}