2 Copyright � 1995-2010, The AROS Development Team. All rights reserved.
5 Desc: autoinit library - support function for showing errors to the user
9 #include <exec/rawfmt.h>
10 #include <proto/exec.h>
11 #include <proto/dos.h>
12 #include <proto/intuition.h>
13 #include <aros/autoinit.h>
14 #include <aros/debug.h>
18 const int __forceerrorrequester
__attribute__((weak
)) = 0;
20 static AROS_UFH2(IPTR
, RawPutc
,
21 AROS_UFHA(UBYTE
, c
, D0
),
22 AROS_UFHA(struct ExecBase
*, SysBase
, A3
))
31 void ___showerror(char *format
, const IPTR
*args
, struct ExecBase
*SysBase
)
33 struct IntuitionBase
*IntuitionBase
;
34 struct DosLibrary
*DOSBase
= NULL
;
35 const char *name
= FindTask(NULL
)->tc_Node
.ln_Name
;
39 !__forceerrorrequester
&&
40 (DOSBase
= (struct DosLibrary
*)OpenLibrary("dos.library", 0)) != NULL
&&
52 VPrintf(format
, (IPTR
*)args
);
60 if ((IntuitionBase
= (struct IntuitionBase
*)OpenLibrary("intuition.library", 0)))
62 struct EasyStruct es
=
64 sizeof(struct EasyStruct
),
71 EasyRequestArgs(NULL
, &es
, NULL
, (APTR
)args
);
73 CloseLibrary((struct Library
*)IntuitionBase
);
78 IPTR args
[] = { (IPTR
)name
};
79 RawDoFmt("%s: ", (APTR
)args
, (VOID_FUNC
)RawPutc
, SysBase
);
82 RawDoFmt(format
, (APTR
)args
, (VOID_FUNC
)RawPutc
, SysBase
);
86 CloseLibrary((struct Library
*)DOSBase
);