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