Move gengetopt targets to own Makefile.
[paraslash.git] / filter_common.c
index 29d6c957498216a9cec77b6ccd4a7f03b65385aa..d83629bd4bf9d2b3f609ba71d36b5c7afcfc04a8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2008 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2009 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -13,6 +13,7 @@
 #include "list.h"
 #include "sched.h"
 #include "fd.h"
+#include "ggo.h"
 #include "filter.h"
 #include "error.h"
 #include "string.h"
@@ -154,7 +155,7 @@ again:
 //             fc->eof, *fc->out_loaded, conv, conv_total);
        if (conv)
                goto again;
-       if (!*fc->input_error)
+       if (*fc->input_error >= 0)
                return;
        if (*fc->out_loaded)
                return;
@@ -262,3 +263,22 @@ int check_filter_arg(char *fa, void **conf)
        return -E_UNSUPPORTED_FILTER;
 }
 
+void print_filter_helps(int detailed)
+{
+       int i;
+
+       printf_or_die("\nAvailable filters: \n\t");
+       FOR_EACH_SUPPORTED_FILTER(i)
+               printf_or_die("%s%s", i? " " : "", filters[i].name);
+       printf_or_die("\n\n");
+
+       FOR_EACH_SUPPORTED_FILTER(i) {
+               struct filter *f = filters + i;
+
+               if (!f->help.short_help)
+                       continue;
+               printf_or_die("Options for %s:\n", f->name);
+               ggo_print_help(&f->help, detailed);
+       }
+
+}