aft: Make get_afsi_of_path() static.
[paraslash.git] / afh.c
diff --git a/afh.c b/afh.c
index 4c65d7c1f76bdc4b054461127d14b9547881d6f7..8e70750511381b425c33f0c7cf8237dc1a47af16 100644 (file)
--- a/afh.c
+++ b/afh.c
@@ -15,6 +15,7 @@
 #include "afh.h"
 #include "error.h"
 #include "version.h"
+#include "ggo.h"
 
 static struct afh_args_info conf;
 INIT_AFH_ERRLISTS;
@@ -56,6 +57,17 @@ static void print_chunk_table(struct afh_info *afhi)
        }
 }
 
+__noreturn static void print_help_and_die(void)
+{
+       struct ggo_help h = DEFINE_GGO_HELP(afh);
+       int d = conf.detailed_help_given;
+       unsigned flags = d? GPH_STANDARD_FLAGS_DETAILED : GPH_STANDARD_FLAGS;
+
+       ggo_print_help(&h, flags);
+       printf("supported audio formats: %s\n", AUDIO_FORMAT_HANDLERS);
+       exit(EXIT_SUCCESS);
+}
+
 /**
  * The main function of para_afh.
  *
@@ -72,12 +84,14 @@ int main(int argc, char **argv)
        struct afh_info afhi;
 
        afh_cmdline_parser(argc, argv, &conf);
-       HANDLE_VERSION_FLAG("afh", conf);
        loglevel = get_loglevel_by_name(conf.loglevel_arg);
+       version_handle_flag("afh", conf.version_given);
+       if (conf.help_given || conf.detailed_help_given)
+               print_help_and_die();
+       afh_init();
        ret = -E_AFH_SYNTAX;
        if (conf.inputs_num == 0)
                goto out;
-       afh_init();
        for (i = 0; i < conf.inputs_num; i++) {
                int ret2;
                ret = mmap_full_file(conf.inputs[i], O_RDONLY, &audio_file_data,