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