X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=filter.c;h=d4a2423904ca96f87f1ec11600f1c67e2b101ae1;hp=d5dac6758cc1a2e2041a97bf8cba4b2abe75e90a;hb=ac1f19d550a81c8408c8fce2e237996c950253ab;hpb=b59e841036a107b52a0221e48d7e05f86da92979 diff --git a/filter.c b/filter.c index d5dac675..d4a24239 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;