diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
| commit | f9039b2ae21988783feae9b362818e7923e82d14 (patch) | |
| tree | 6d6fe3679d73448758f9794e7d4d4f6b22a4adad /src/Fl_abort.cxx | |
| parent | 67e89232f9ba067825a158734a09e0fa21aacbe3 (diff) | |
Initial revision
git-svn-id: file:///fltk/svn/fltk/trunk@2 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_abort.cxx')
| -rw-r--r-- | src/Fl_abort.cxx | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/Fl_abort.cxx b/src/Fl_abort.cxx new file mode 100644 index 000000000..047af80a9 --- /dev/null +++ b/src/Fl_abort.cxx @@ -0,0 +1,51 @@ +// This method is in it's own source file so that stdlib and stdio +// do not need to be included in Fl.C: +// You can also override this by redefining all of these. + +#include <FL/Fl.H> +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> + +#ifndef WIN32 + +static void warning(const char *format, ...) { + va_list args; + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + fputc('\n', stderr); + fflush(stderr); +} + +static void error(const char *format, ...) { + va_list args; + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + fputc('\n', stderr); + fflush(stderr); +//abort(); // this produces a core dump, probably not desirable? + ::exit(1); +} + +#else + +// windows version is currently lame as vsprintf() is missing? + +#include <windows.h> + +static void warning(const char *format, ...) { + MessageBox(0,format,"Fltk warning",MB_ICONEXCLAMATION|MB_OK); +} + +static void error(const char *format, ...) { + MessageBox(0,format,"Fltk error",MB_ICONSTOP|MB_SYSTEMMODAL); + ::exit(1); +} + +#endif + +void (*Fl::warning)(const char* format, ...) = ::warning; +void (*Fl::error)(const char* format, ...) = ::error; +void (*Fl::fatal)(const char* format, ...) = ::error; |
