Recognize the eof packet also in the udp receiver.
[paraslash.git] / filter_common.c
index 45f576050c6f34a56dfb8f6cfff495478466f212..b601c6886d2767d090fddd33becf397f3730fe2e 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.
  */
@@ -23,17 +23,14 @@ struct filter filters[NUM_SUPPORTED_FILTERS] = {FILTER_ARRAY};
 
 /**
  * Call the init function of each supported filter.
- *
- * \param all_filters the array of all supported filters.
- *
  * \sa filter::init
  */
-void filter_init(struct filter *all_filters)
+void filter_init(void)
 {
        int i;
 
        FOR_EACH_SUPPORTED_FILTER(i)
-               all_filters[i].init(all_filters + i);
+               filters[i].init(filters + i);
 }
 
 /**
@@ -155,7 +152,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;
@@ -263,3 +260,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);
+       }
+
+}