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
828d03e
..
662cff2
100644
(file)
--- a/
include/cerr.h
+++ b/
include/cerr.h
@@
-5,31
+5,41
@@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
+#include <stdbool.h>
+#include "cmem.h"
#ifndef ARRAYSIZE
#define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0]))
#endif
#ifndef ARRAYSIZE
#define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0]))
#endif
-/* エラー番号 */
-extern int cerrno;
+/* エラーの構造体 */
+typedef struct {
+ int num; /* エラー番号 */
+ char *msg; /* エラーメッセージ */
+} CERR;
-/*
エラーメッセージ
*/
-extern
char *cerrmsg
;
+/*
現在のエラー
*/
+extern
CERR *cerr
;
-/* ã
\82
¨ã
\83
©ã
\83
¼ã
\82
³ã
\83
¼ã
\83
\89
ã
\83
ªã
\82
¹ã
\83
\88
*/
-typedef struct {
-
int num
;
-
char *msg
;
-} CERR
ARRAY
;
+/* エラーリスト */
+typedef struct
_CERRLIST
{
+
struct _CERRLIST *next
;
+
CERR *cerr
;
+} CERR
LIST
;
-/* エラーメッセージ */
-extern CERRARRAY cerr[];
+extern CERRLIST *cerrlist;
enum {
CERRSTRSIZE = 10, /* エラーメッセージ中に挿入できる文字列のサイズ */
CERRMSGSIZE = 70, /* エラーメッセージのサイズ */
};
enum {
CERRSTRSIZE = 10, /* エラーメッセージ中に挿入できる文字列のサイズ */
CERRMSGSIZE = 70, /* エラーメッセージのサイズ */
};
+/* エラーの初期化 */
+void cerr_init();
+
+/* エラーリストを作成・追加する */
+bool addcerrlist(int cerrc, CERR cerrv[]);
+
/* エラー番号とエラーメッセージを設定 */
void setcerr(int num, const char *str);
/* エラー番号とエラーメッセージを設定 */
void setcerr(int num, const char *str);