projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
マクロ定義の重複を削除
[YACASL2.git]
/
include
/
cerr.h
diff --git
a/include/cerr.h
b/include/cerr.h
index
9c191c1
..
08532da
100644
(file)
--- a/
include/cerr.h
+++ b/
include/cerr.h
@@
-1,28
+1,44
@@
#ifndef YACASL2_CERR_H_INCLUDED
#define YACASL2_CERR_H_INCLUDED
#ifndef YACASL2_CERR_H_INCLUDED
#define YACASL2_CERR_H_INCLUDED
-#include <malloc.h>
+#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <string.h>
#include <assert.h>
+#include <stdbool.h>
-#ifndef ARRAYSIZE
-#define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0]))
-#endif
+#include "cmem.h"
+
+/* エラーの構造体 */
+typedef struct {
+ int num; /* エラー番号 */
+ char *msg; /* エラーメッセージ */
+} CERR;
-/*
エラー番号
*/
-extern
int cerrno
;
+/*
現在のエラー
*/
+extern
CERR *cerr
;
-/* エラーメッセージ */
-extern char *cerrmsg;
+/* エラーリスト */
+typedef struct _CERRLIST {
+ struct _CERRLIST *next;
+ CERR *cerr;
+} CERRLIST;
-/* エラーコードリスト */
-typedef struct {
- int num;
- char *msg;
-} CERRARRAY;
+extern CERRLIST *cerrlist;
+
+enum {
+ CERRSTRSIZE = 10, /* エラーメッセージ中に挿入できる文字列のサイズ */
+ CERRMSGSIZE = 70, /* エラーメッセージのサイズ */
+};
+
+/* エラーの初期化 */
+void cerr_init();
+
+/* エラーリストを作成・追加する */
+bool addcerrlist(int cerrc, CERR cerrv[]);
/* エラー番号とエラーメッセージを設定 */
/* エラー番号とエラーメッセージを設定 */
-void setcerr(int num, const char *
val
);
+void setcerr(int num, const char *
str
);
/* エラー番号からメッセージを返す */
char *getcerrmsg(int num);
/* エラー番号からメッセージを返す */
char *getcerrmsg(int num);