Script.c: fix whitespace
[rofl0r-agsutils.git] / agsdisas.c
blobafe7c0a9c1487d97f084c169f86ce4c34fb20b98
1 #define _GNU_SOURCE
2 #include "DataFile.h"
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <unistd.h>
6 #include "version.h"
7 #define ADS ":::AGSdisas " VERSION " by rofl0r:::"
9 __attribute__((noreturn))
10 void usage(char *argv0) {
11 dprintf(2, ADS "\nusage:\n%s file.o [file.s]\n"
12 "pass input and optionally output filename.\n", argv0);
13 exit(1);
16 static void disas(char *o, char *s) {
17 //ARF_find_code_start
18 AF f_b, *f = &f_b;
19 ASI sc;
20 if(AF_open(f, o)) {
21 ASI *i = ASI_read_script(f, &sc) ? &sc : 0;
22 dprintf(1, "disassembling %s -> %s", o, s);
23 if(!i || !ASI_disassemble(f, i, s)) dprintf(1, " FAIL");
24 dprintf(1, "\n");
25 AF_close(f);
29 int main(int argc, char**argv) {
30 if(argc != 3 && argc != 2) usage(argv[0]);
31 char *o = argv[1], *s, out[256];
32 if(argc == 2) {
33 size_t l = strlen(o);
34 snprintf(out, 256, "%s", o);
35 out[l-1] = 's'; // overflow me!
36 s = out;
37 } else s = argv[2];
38 disas(o, s);
39 return 0;