mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2026-05-05 11:08:06 +02:00
tools: fix tweak-device option parsing
https://bugs.freedesktop.org/show_bug.cgi?id=92880 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
e11662ac72
commit
a95ca2c821
1 changed files with 14 additions and 7 deletions
|
|
@ -238,7 +238,7 @@ error:
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum mode
|
static enum mode
|
||||||
parse_options_mode(int argc, char **argv, const char **path)
|
parse_options_mode(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
|
|
@ -254,7 +254,7 @@ parse_options_mode(int argc, char **argv, const char **path)
|
||||||
if (argc < 2)
|
if (argc < 2)
|
||||||
return mode;
|
return mode;
|
||||||
|
|
||||||
while (1) {
|
while (mode == MODE_NONE) {
|
||||||
c = getopt_long(argc, argv, "h", opts, &option_index);
|
c = getopt_long(argc, argv, "h", opts, &option_index);
|
||||||
if (c == -1)
|
if (c == -1)
|
||||||
break;
|
break;
|
||||||
|
|
@ -278,11 +278,9 @@ parse_options_mode(int argc, char **argv, const char **path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (optind >= argc)
|
if (optind >= argc && mode != MODE_HELP)
|
||||||
return MODE_NONE;
|
return MODE_NONE;
|
||||||
|
|
||||||
*path = argv[optind];
|
|
||||||
|
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -368,7 +366,7 @@ main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
struct libevdev *dev = NULL;
|
struct libevdev *dev = NULL;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
int rc = 1;
|
int rc = EXIT_FAILURE;
|
||||||
enum mode mode;
|
enum mode mode;
|
||||||
const char *path;
|
const char *path;
|
||||||
struct input_absinfo absinfo;
|
struct input_absinfo absinfo;
|
||||||
|
|
@ -379,7 +377,7 @@ main(int argc, char **argv)
|
||||||
int xres = 0,
|
int xres = 0,
|
||||||
yres = 0;
|
yres = 0;
|
||||||
|
|
||||||
mode = parse_options_mode(argc, argv, &path);
|
mode = parse_options_mode(argc, argv);
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case MODE_HELP:
|
case MODE_HELP:
|
||||||
rc = EXIT_SUCCESS;
|
rc = EXIT_SUCCESS;
|
||||||
|
|
@ -407,8 +405,17 @@ main(int argc, char **argv)
|
||||||
if (rc != EXIT_SUCCESS)
|
if (rc != EXIT_SUCCESS)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
if (optind >= argc) {
|
||||||
|
rc = EXIT_FAILURE;
|
||||||
|
usage();
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
path = argv[optind];
|
||||||
|
|
||||||
fd = open(path, O_RDWR);
|
fd = open(path, O_RDWR);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
|
rc = EXIT_FAILURE;
|
||||||
perror("Failed to open device");
|
perror("Failed to open device");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue