From: Jaroslav Kysela Date: Fri, 9 Oct 2015 14:37:18 +0000 (+0200) Subject: linuxdvb: accept '-a -1' parameter to completely disable linuxdvb input X-Git-Tag: v4.2.1~1954 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=81b887e518e7a6d170c5dc4290cf85d6e1b1f030;p=thirdparty%2Ftvheadend.git linuxdvb: accept '-a -1' parameter to completely disable linuxdvb input --- diff --git a/src/main.c b/src/main.c index 135e54413..14569363c 100644 --- a/src/main.c +++ b/src/main.c @@ -680,7 +680,7 @@ main(int argc, char **argv) OPT_BOOL, &opt_dbus_session }, #endif #if ENABLE_LINUXDVB - { 'a', "adapters", N_("Only use specified DVB adapters (comma separated)"), + { 'a', "adapters", N_("Only use specified DVB adapters (comma separated, -1 = none)"), OPT_STR, &opt_dvb_adapters }, #endif #if ENABLE_SATIP_SERVER @@ -800,19 +800,24 @@ main(int argc, char **argv) char *r = NULL; char *dvb_adapters = strdup(opt_dvb_adapters); adapter_mask = 0x0; + i = 0; p = strtok_r(dvb_adapters, ",", &r); while (p) { int a = strtol(p, &e, 10); - if (*e != 0 || a < 0 || a > 31) { + if (*e != 0 || a > 31) { fprintf(stderr, _("Invalid adapter number '%s'\n"), p); free(dvb_adapters); return 1; } - adapter_mask |= (1 << a); + i = 1; + if (a < 0) + adapter_mask = 0; + else + adapter_mask |= (1 << a); p = strtok_r(NULL, ",", &r); } free(dvb_adapters); - if (!adapter_mask) { + if (!i) { fprintf(stderr, "%s", _("No adapters specified!\n")); return 1; }