#include "package.h"
-#include "exec.h"
+#include "disassemble.h"
/**
* @brief casl2revコマンドのオプション
*/
int main(int argc, char *argv[])
{
- int opt, stat = 0;
- const char *version = PACKAGE_VERSION, *cmdversion = "disassemble of YACASL2 version %s\n";
+ int opt = 0;
+ int stat = 0;
+ const char *version = PACKAGE_VERSION;
+ const char *cmdversion = "disassemble of YACASL2 version %s\n";
const char *usage = "Usage: %s [-vh] FILE\n";
+ /* エラーの定義 */
cerr_init();
addcerrlist_load();
- addcerrlist_exec();
/* オプションの処理 */
while((opt = getopt_long(argc, argv, "vh", longopts, NULL)) != -1) {
switch(opt) {
case 'v':
fprintf(stdout, cmdversion, version);
- return 0;
+ goto casl2revfin;
case 'h':
fprintf(stdout, usage, argv[0]);
- return 0;
+ goto casl2revfin;
case '?':
fprintf(stderr, usage, argv[0]);
- exit(1);
+ setcerr(212, ""); /* invalid option */
+ goto casl2revfin;
}
}
if(argv[optind] == NULL) {
setcerr(211, ""); /* object file not specified */
fprintf(stderr, "disassemble error - %d: %s\n", cerr->num, cerr->msg);
- exit(1);
+ goto casl2revfin;
}
disassemble_file(argv[optind]); /* プログラム実行 */
- stat = (cerr->num == 0) ? 0 : 1;
- /* エラーの解放 */
- freecerr();
+casl2revfin:
+ if(cerr->num > 0) {
+ stat = 1;
+ }
+ freecerr(); /* エラーの解放 */
return stat;
}