blob: f854615573ceb671d098715fddf82df4764f95b4 [file] [log] [blame]
DRC2ff39b82011-07-28 08:38:59 +00001//
2// "$Id: Fl_abort.cxx 7903 2010-11-28 21:06:39Z matt $"
3//
4// Warning/error message code for the Fast Light Tool Kit (FLTK).
5//
6// Copyright 1998-2010 by Bill Spitzak and others.
7//
8// This library is free software; you can redistribute it and/or
9// modify it under the terms of the GNU Library General Public
10// License as published by the Free Software Foundation; either
11// version 2 of the License, or (at your option) any later version.
12//
13// This library is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16// Library General Public License for more details.
17//
18// You should have received a copy of the GNU Library General Public
19// License along with this library; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21// USA.
22//
23// Please report all bugs and problems on the following page:
24//
25// http://www.fltk.org/str.php
26//
27
28// This method is in its own source file so that stdlib and stdio
29// do not need to be included in Fl.cxx:
30// You can also override this by redefining all of these.
31
32#include <FL/Fl.H>
33#include <stdio.h>
34#include <stdlib.h>
35#include <stdarg.h>
36#include "flstring.h"
37
38#ifdef WIN32
39# include <windows.h>
40
41static void warning(const char *, ...) {
42 // Show nothing for warnings under WIN32...
43}
44
45static void error(const char *format, ...) {
46 va_list args;
47 char buf[1024];
48 va_start(args, format);
49 vsnprintf(buf, 1024, format, args);
50 va_end(args);
51 MessageBox(0,buf,"Error",MB_ICONEXCLAMATION|MB_SYSTEMMODAL);
52}
53
54static void fatal(const char *format, ...) {
55 va_list args;
56 char buf[1024];
57 va_start(args, format);
58 vsnprintf(buf, 1024, format, args);
59 va_end(args);
60 MessageBox(0,buf,"Error",MB_ICONSTOP|MB_SYSTEMMODAL);
61 ::exit(1);
62}
63
64#else
65
66static void warning(const char *format, ...) {
67 va_list args;
68 va_start(args, format);
69 vfprintf(stderr, format, args);
70 va_end(args);
71 fputc('\n', stderr);
72 fflush(stderr);
73}
74
75static void error(const char *format, ...) {
76 va_list args;
77 va_start(args, format);
78 vfprintf(stderr, format, args);
79 va_end(args);
80 fputc('\n', stderr);
81 fflush(stderr);
82}
83
84static void fatal(const char *format, ...) {
85 va_list args;
86 va_start(args, format);
87 vfprintf(stderr, format, args);
88 va_end(args);
89 fputc('\n', stderr);
90 fflush(stderr);
91 ::exit(1);
92}
93
94#endif
95
96void (*Fl::warning)(const char* format, ...) = ::warning;
97void (*Fl::error)(const char* format, ...) = ::error;
98void (*Fl::fatal)(const char* format, ...) = ::fatal;
99
100//
101// End of "$Id: Fl_abort.cxx 7903 2010-11-28 21:06:39Z matt $".
102//