-/* エラー番号とエラーメッセージを設定する */
-void setcerr(int num, const char *val)
+ assert(newerrc > 0 && newerrv != NULL);
+ if(cerrlist == NULL) {
+ p = cerrlist = malloc_chk(sizeof(CERRLIST), "cerrlist");
+ } else {
+ for(p = cerrlist; p != NULL; p = p->next) {
+ q = p;
+ }
+ p = q->next = malloc_chk(sizeof(CERRLIST), "cerrlist.next");
+ }
+ for(i = 0; i < newerrc; i++) {
+ p->cerr = &(newerrv[i]);
+ p->next = malloc_chk(sizeof(CERRLIST), "cerrlist.next");
+ q = p;
+ p = p->next;
+ }
+ q->next = NULL;
+ return true;
+}
+
+/* 現在のエラーを設定する */
+void setcerr(int num, const char *str)