1From 27d225a8a88a002f02c9ad3f5db357b0ad5b1bf1 Mon Sep 17 00:00:00 2001 2From: Jeffy Chen <jeffy.chen@rock-chips.com> 3Date: Thu, 7 Mar 2019 17:38:16 +0800 4Subject: [PATCH] Support specifing devices in command args 5 6Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 7--- 8 input-event-daemon.c | 19 ++++++++++++++++--- 9 1 file changed, 16 insertions(+), 3 deletions(-) 10 11diff --git a/input-event-daemon.c b/input-event-daemon.c 12index 51e1e3c..2a7b527 100644 13--- a/input-event-daemon.c 14+++ b/input-event-daemon.c 15@@ -791,7 +791,7 @@ static void daemon_print_help() { 16 " "PROGRAM" " 17 "[ [ --monitor | --list | --help | --version ] |\n" 18 " " 19- "[--config=FILE] [--verbose] [--no-daemon] ]\n" 20+ "[--config=FILE] [--verbose] [--no-daemon] ] [devices]\n" 21 "\n" 22 "Available Options:\n" 23 "\n" 24@@ -814,7 +814,7 @@ static void daemon_print_version() { 25 } 26 27 int main(int argc, char *argv[]) { 28- int result, arguments = 0; 29+ int result, arguments = 0, listen_len = 0; 30 static const struct option long_options[] = { 31 { "monitor", no_argument, 0, 'm' }, 32 { "list", no_argument, 0, 'l' }, 33@@ -834,6 +834,9 @@ int main(int argc, char *argv[]) { 34 35 while (optind < argc) { 36 result = getopt_long(argc, argv, "mlc:vDhV", long_options, NULL); 37+ if (result == -1) 38+ break; 39+ 40 arguments++; 41 42 switch(result) { 43@@ -875,8 +878,18 @@ int main(int argc, char *argv[]) { 44 } 45 } 46 47+ for (arguments = optind; arguments < argc; arguments++) { 48+ if(listen_len >= MAX_LISTENER) { 49+ fprintf(stderr, PROGRAM": Listener limit exceeded!\n"); 50+ break; 51+ } 52+ 53+ conf.listen[listen_len++] = strdup(argv[arguments]); 54+ } 55+ 56 if(conf.monitor) { 57- input_open_all_listener(); 58+ if (!conf.listen[0]) 59+ input_open_all_listener(); 60 } else { 61 config_parse_file(); 62 } 63-- 642.11.0 65 66