vaccinewars

be a doctor and try to vaccinate the world
git clone git://src.adamsgaard.dk/vaccinewars # fast
git clone https://src.adamsgaard.dk/vaccinewars.git # slow
Log | Files | Refs | README | LICENSE Back to index

error.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 <config.h>
     28 #endif
     29 
     30 #include <glib.h>
     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__ */