zilasm/main: Cmdline option for output file added.
authorJason Self <j@jxself.org>
Sat, 19 Sep 2015 04:17:21 +0000 (21:17 -0700)
committerJason Self <j@jxself.org>
Sat, 19 Sep 2015 04:17:21 +0000 (21:17 -0700)
zilasm/main.c

index daa943c7919c76808084a9eba2926fe558b82258..558130c60c868248b39b249858ace05dc11b4fad 100644 (file)
@@ -34,11 +34,11 @@ static struct option const long_options[] =
 {
     { "help",     no_argument,       NULL, 'h' },
     { "version",  no_argument,       NULL, 'V' },
+    { "output",   required_argument, NULL, 'o' },
     { "zversion", required_argument, NULL, ZVERSION },
     { "zorkid",   required_argument, NULL, ZORKID   },
     { "serial",   required_argument, NULL, ZSERIAL  },
     { NULL, 0, NULL, 0 }
-
 };
 
 struct
@@ -144,10 +144,12 @@ void parse_zserial(void)
 
 int main(int argc, char *argv[], char *envp[])
 {
+    const char *output_file = NULL;
+
     fill_config();
 
     int opt = 0;
-    while ((opt = getopt_long (argc, argv, "hV", long_options, NULL)) != -1)
+    while ((opt = getopt_long (argc, argv, "hVo:", long_options, NULL)) != -1)
     {
         switch(opt)
         {
@@ -155,6 +157,10 @@ int main(int argc, char *argv[], char *envp[])
             print_usage(0);
         case 'V'     :
             print_version();
+        case 'o'     :
+            if (output_file) wrong_arg("Output file must be given once\n");
+            output_file = argv[optind];
+            break;
         case ZVERSION:
             parse_intarg(&Config.zversion, "zversion", 1, 8,      1);
             break;
@@ -171,6 +177,8 @@ int main(int argc, char *argv[], char *envp[])
 
     // TODO: Everything :)
 
+    printf("Output file: %s\n\n", output_file ? output_file : "MISSING");
+
     printf("Config:\n"
            "- ZVersion: %d\n"
            "- ZorkID:   %d\n"