mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2025-12-24 22:50:05 +01: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
|
||||
parse_options_mode(int argc, char **argv, const char **path)
|
||||
parse_options_mode(int argc, char **argv)
|
||||
{
|
||||
int c;
|
||||
int option_index = 0;
|
||||
|
|
@ -254,7 +254,7 @@ parse_options_mode(int argc, char **argv, const char **path)
|
|||
if (argc < 2)
|
||||
return mode;
|
||||
|
||||
while (1) {
|
||||
while (mode == MODE_NONE) {
|
||||
c = getopt_long(argc, argv, "h", opts, &option_index);
|
||||
if (c == -1)
|
||||
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;
|
||||
|
||||
*path = argv[optind];
|
||||
|
||||
return mode;
|
||||
}
|
||||
|
||||
|
|
@ -368,7 +366,7 @@ main(int argc, char **argv)
|
|||
{
|
||||
struct libevdev *dev = NULL;
|
||||
int fd = -1;
|
||||
int rc = 1;
|
||||
int rc = EXIT_FAILURE;
|
||||
enum mode mode;
|
||||
const char *path;
|
||||
struct input_absinfo absinfo;
|
||||
|
|
@ -379,7 +377,7 @@ main(int argc, char **argv)
|
|||
int xres = 0,
|
||||
yres = 0;
|
||||
|
||||
mode = parse_options_mode(argc, argv, &path);
|
||||
mode = parse_options_mode(argc, argv);
|
||||
switch (mode) {
|
||||
case MODE_HELP:
|
||||
rc = EXIT_SUCCESS;
|
||||
|
|
@ -407,8 +405,17 @@ main(int argc, char **argv)
|
|||
if (rc != EXIT_SUCCESS)
|
||||
goto out;
|
||||
|
||||
if (optind >= argc) {
|
||||
rc = EXIT_FAILURE;
|
||||
usage();
|
||||
goto out;
|
||||
}
|
||||
|
||||
path = argv[optind];
|
||||
|
||||
fd = open(path, O_RDWR);
|
||||
if (fd < 0) {
|
||||
rc = EXIT_FAILURE;
|
||||
perror("Failed to open device");
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue