X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fcasl2.c;h=d47abcd6375a80b1ba2a958c6ab75167e888979f;hp=989bbe76661ab2fabf27f13fdbeb706e3b2a4c90;hb=755c5127855b776d1a4260f05afc95640045f29d;hpb=b0f981469cdea23225ca5c3ef0ca6759d6a92b43 diff --git a/src/casl2.c b/src/casl2.c index 989bbe7..d47abcd 100644 --- a/src/casl2.c +++ b/src/casl2.c @@ -121,6 +121,7 @@ int main(int argc, char *argv[]) /* ソースファイルが指定されていない場合は終了 */ if(argv[optind] == NULL) { setcerr(126, NULL); /* source file is not specified */ + fprintf(stderr, "CASL2 error - %d: %s\n", cerrno, cerrmsg); goto casl2err; } /* COMET II仮想マシンのリセット */ @@ -143,7 +144,7 @@ int main(int argc, char *argv[]) fprintf(stdout, "\nAssemble %s (%d)\n", argv[i], pass); } if((status = assemble(argv[i], pass)) == false) { - exit(-1); + goto casl2err; } } if(pass == FIRST && asmode.label == true) { @@ -164,12 +165,12 @@ int main(int argc, char *argv[]) exec(); /* プログラム実行 */ } } + shutdown(); if(cerrno > 0) { - freecerr(); - exit(-1); + goto casl2err; } return 0; casl2err: - fprintf(stderr, "CASL2 error - %d: %s\n", cerrno, cerrmsg); + freecerr(); exit(-1); }