Initial revision
[wmaker-crm.git] / WINGs / error.c
blob8728c8a6fad7dab030a03ffe382635b06a3e3d93
1 /*
2 * WindowMaker miscelaneous function library
3 *
4 * Copyright (c) 1997 Alfredo K. Kojima
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 #include "../src/config.h"
24 #include <stdio.h>
25 #include <stdlib.h>
26 #include <stdarg.h>
27 #include <string.h>
28 #include <errno.h>
31 extern char *_WINGS_progname;
33 #define MAXLINE 1024
36 /**************************************************************************
37 * Prints a fatal error message with variable arguments and terminates
39 * msg - message to print with optional formatting
40 * ... - arguments to use on formatting
41 **************************************************************************/
42 void
43 wfatal(const char *msg, ...)
45 va_list args;
46 char buf[MAXLINE];
48 va_start(args, msg);
50 vsprintf(buf, msg, args);
51 strcat(buf,"\n");
52 fflush(stdout);
53 fputs(_WINGS_progname, stderr);
54 fputs(" fatal error: ",stderr);
55 fputs(buf, stderr);
56 fflush(NULL);
58 va_end(args);
62 /*********************************************************************
63 * Prints a warning message with variable arguments
65 * msg - message to print with optional formatting
66 * ... - arguments to use on formatting
67 *********************************************************************/
68 void
69 wwarning(const char *msg, ...)
71 va_list args;
72 char buf[MAXLINE];
74 va_start(args, msg);
76 vsprintf(buf, msg, args);
77 strcat(buf,"\n");
78 fflush(stdout);
79 fputs(_WINGS_progname, stderr);
80 fputs(" warning: ",stderr);
81 fputs(buf, stderr);
82 fflush(NULL);
84 va_end(args);
88 /*********************************************************************
89 * Prints a system error message with variable arguments
91 * msg - message to print with optional formatting
92 * ... - arguments to use on formatting
93 *********************************************************************/
94 void
95 wsyserror(const char *msg, ...)
97 va_list args;
98 char buf[MAXLINE];
99 #ifdef HAVE_STRERROR
100 int error=errno;
101 #endif
102 va_start(args, msg);
103 vsprintf(buf, msg, args);
104 fflush(stdout);
105 fputs(_WINGS_progname, stderr);
106 fputs(" error: ", stderr);
107 strcat(buf, ": ");
108 #ifdef HAVE_STRERROR
109 strcat(buf, strerror(error));
110 strcat(buf,"\n");
111 fputs(buf, stderr);
112 fflush(NULL);
113 #else
114 perror(buf);
115 #endif
116 va_end(args);