X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=filter.c;h=95438779e6aa0c206ec2b07225d3fae1d4a977a5;hb=181beb316afad036ac01a778544c5dec0a8d51c7;hp=d5dac6758cc1a2e2041a97bf8cba4b2abe75e90a;hpb=8eb77a20423c3dcc44c4584a082e981391272cb2;p=paraslash.git diff --git a/filter.c b/filter.c index d5dac675..95438779 100644 --- a/filter.c +++ b/filter.c @@ -1,8 +1,4 @@ -/* - * Copyright (C) 2005 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2005 Andre Noll , see file COPYING. */ /** \file filter.c The stand-alone filter program. */ @@ -13,6 +9,7 @@ #include "filter_cmd.lsg.h" #include "para.h" #include "list.h" +#include "lsu.h" #include "sched.h" #include "buffer_tree.h" #include "filter.h" @@ -34,7 +31,7 @@ static struct lls_parse_result *lpr; /* command line options */ #define OPT_UINT32_VAL(_name) (lls_uint32_val(0, OPT_RESULT(_name))) /** The list of all status items used by para_{server,audiod,gui}. */ -const char *status_item_list[] = {STATUS_ITEM_ARRAY}; +const char *status_item_list[] = {STATUS_ITEMS}; /** * Dummy version which only contains NULL pointers. @@ -75,50 +72,15 @@ static void handle_help_flag(void) static int parse_config(void) { - char *home, *cf; /* config file */ - struct stat statbuf; int ret; version_handle_flag("filter", OPT_GIVEN(VERSION)); handle_help_flag(); - home = para_homedir(); - cf = make_message("%s/.paraslash/filter.conf", home); - free(home); - if (!stat(cf, &statbuf)) { - void *map; - size_t sz; - int cf_argc; - char **cf_argv, *errctx; - struct lls_parse_result *cf_lpr, *merged_lpr; - - ret = mmap_full_file(cf, O_RDONLY, &map, &sz, NULL); - if (ret != -E_EMPTY) { - if (ret < 0) - return ret; - ret = lls(lls_convert_config(map, sz, NULL, &cf_argv, - &errctx)); - para_munmap(map, sz); - if (ret < 0) { - PARA_ERROR_LOG("syntax error in %s\n", cf); - return ret; - } - cf_argc = ret; - ret = lls(lls_parse(cf_argc, cf_argv, CMD_PTR, &cf_lpr, - &errctx)); - lls_free_argv(cf_argv); - if (ret < 0) { - PARA_ERROR_LOG("parse error in %s\n", cf); - return ret; - } - ret = lls(lls_merge(lpr, cf_lpr, CMD_PTR, &merged_lpr, &errctx)); - lls_free_parse_result(cf_lpr, CMD_PTR); - if (ret < 0) - return ret; - lls_free_parse_result(lpr, CMD_PTR); - lpr = merged_lpr; - loglevel = OPT_UINT32_VAL(LOGLEVEL); - } - } + ret = lsu_merge_config_file_options(NULL, "filter.conf", + &lpr, CMD_PTR, filter_suite, 0 /* default flags */); + if (ret < 0) + return ret; + loglevel = OPT_UINT32_VAL(LOGLEVEL); if (!OPT_GIVEN(FILTER)) { print_filter_list(); exit(EXIT_SUCCESS); @@ -151,7 +113,6 @@ int main(int argc, char *argv[]) ret = lls(lls_parse(argc, argv, CMD_PTR, &lpr, &errctx)); if (ret < 0) goto out; - loglevel = OPT_UINT32_VAL(LOGLEVEL); ret = parse_config(); if (ret < 0) goto free_lpr; @@ -188,8 +149,7 @@ int main(int argc, char *argv[]) EMBRACE(.name = "stdout", .parent = parent)); stdout_task_register(sot, &s); - s.default_timeout.tv_sec = 1; - s.default_timeout.tv_usec = 0; + s.default_timeout = 1000; btr_log_tree(sit->btrn, LL_INFO); ret = schedule(&s); sched_shutdown(&s);