| ---
terror.h (2717B)
---
1 /************************************************************************
2 * error.h Header file for dopewars error-handling routines *
3 * Copyright (C) 1998-2021 Ben Webb *
4 * Email: benwebb@users.sf.net *
5 * WWW: https://dopewars.sourceforge.io/ *
6 * *
7 * This program is free software; you can redistribute it and/or *
8 * modify it under the terms of the GNU General Public License *
9 * as published by the Free Software Foundation; either version 2 *
10 * of the License, or (at your option) any later version. *
11 * *
12 * This program is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with this program; if not, write to the Free Software *
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, *
20 * MA 02111-1307, USA. *
21 ************************************************************************/
22
23 #ifndef __DP_ERROR_H__
24 #define __DP_ERROR_H__
25
26 #ifdef HAVE_CONFIG_H
27 #include
28 #endif
29
30 #include
31
32 struct _LastError;
33 typedef struct _ErrorType {
34 void (*AppendErrorString) (GString *str, struct _LastError *error);
35 void (*FreeErrorData) (struct _LastError *error);
36 } ErrorType;
37
38 typedef struct _LastError {
39 gint code;
40 ErrorType *type;
41 gpointer data;
42 } LastError;
43
44 extern ErrorType *ET_CUSTOM, *ET_ERRNO;
45
46 #ifdef CYGWIN
47 extern ErrorType *ET_WIN32, *ET_WINSOCK;
48 #else
49 extern ErrorType *ET_HERRNO;
50 #endif
51
52 typedef enum {
53 E_FULLBUF
54 } CustomErrorCode;
55
56 typedef struct _ErrTable {
57 gint code;
58 gchar *string;
59 } ErrTable;
60
61 void WantUTF8Errors(gboolean want);
62 gchar *ErrStrFromErrno(int errcode);
63 void FreeError(LastError *error);
64 LastError *NewError(ErrorType *type, gint code, gpointer data);
65 void SetError(LastError **error, ErrorType *type, gint code,
66 gpointer data);
67 void LookupErrorCode(GString *str, gint code, ErrTable *table,
68 gchar *fallbackstr);
69 void g_string_assign_error(GString *str, LastError *error);
70 void g_string_append_error(GString *str, LastError *error);
71
72 #endif /* __DP_ERROR_H__ */ |