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