X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=include%2Fcerr.h;h=db9adbecdc2005b80bf046fd381d5613dc6d60b5;hb=d1f82970bf7d41db2fea11b08cd8e308f6cb8138;hp=a4d12462f8560e8261c1936799d8543d3780400d;hpb=406fd6490ad76b4573b6ce9f8d322d92f13d27d8;p=YACASL2.git diff --git a/include/cerr.h b/include/cerr.h index a4d1246..db9adbe 100644 --- a/include/cerr.h +++ b/include/cerr.h @@ -1,51 +1,62 @@ #ifndef YACASL2_CERR_H_INCLUDED #define YACASL2_CERR_H_INCLUDED -#include -#include -#include -#include #include +#include "cmem.h" -#ifndef ARRAYSIZE -#define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0])) -#endif - -/* エラー番号 */ -extern int cerrno; - -/* エラーメッセージ */ -extern char *cerrmsg; - -/* エラーコード配列 */ +/** + * エラーの構造体 + */ typedef struct { - int num; - char *msg; -} CERRARRAY; - -/* エラーコードリスト */ + int num; /* エラー番号 */ + char *msg; /* エラーメッセージ */ +} CERR; + +/** + * 現在のエラー + */ +extern CERR *cerr; + +/** + * エラーリスト型 + */ typedef struct _CERRLIST { struct _CERRLIST *next; - CERRARRAY *err; + CERR *cerr; } CERRLIST; -/* エラーメッセージ */ -extern CERRLIST *cerr; +/** + * エラーリスト + */ +extern CERRLIST *cerrlist; enum { - CERRSTRSIZE = 10, /* エラーメッセージ中に挿入できる文字列のサイズ */ - CERRMSGSIZE = 70, /* エラーメッセージのサイズ */ + CERRSTRSIZE = 10, /**<エラーメッセージ中に挿入できる文字列のサイズ */ + CERRMSGSIZE = 70, /**<エラーメッセージのサイズ */ }; -/* エラーを追加する */ -bool addcerrlist(int cerrc, CERRARRAY cerrv[]); +/** + * エラーの初期化 + */ +void cerr_init(); + +/** + * エラーリストを作成・追加する + */ +bool addcerrlist(int cerrc, CERR cerrv[]); -/* エラー番号とエラーメッセージを設定 */ +/** + * 現在のエラーを設定する + */ void setcerr(int num, const char *str); -/* エラー番号からメッセージを返す */ +/** + * エラーリストから、エラー番号に対応するメッセージを返す + */ char *getcerrmsg(int num); -/* エラーを解放する */ +/** + * エラーリストと現在のエラーを解放する + */ void freecerr(); #endif