terror.h - vaccinewars - be a doctor and try to vaccinate the world
git clone git://src.adamsgaard.dk/vaccinewars
Log
Files
Refs
README
LICENSE
---
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__ */