[PATCH weston v3 3/3] simple-dmabuf-drm: use getopt_long
Guido Günther
agx at sigxcpu.org
Fri Mar 16 17:56:50 UTC 2018
Signed-off-by: Guido Günther <agx at sigxcpu.org>
---
clients/simple-dmabuf-drm.c | 51 ++++++++++++++++++++++++---------------------
1 file changed, 27 insertions(+), 24 deletions(-)
diff --git a/clients/simple-dmabuf-drm.c b/clients/simple-dmabuf-drm.c
index 427597ab..4f26e4a9 100644
--- a/clients/simple-dmabuf-drm.c
+++ b/clients/simple-dmabuf-drm.c
@@ -38,6 +38,7 @@
#include <sys/mman.h>
#include <signal.h>
#include <fcntl.h>
+#include <getopt.h>
#include <xf86drm.h>
@@ -877,30 +878,32 @@ main(int argc, char **argv)
struct window *window;
int opts = 0;
int import_format = DRM_FORMAT_XRGB8888;
- int ret = 0, i = 0;
-
- if (argc > 1) {
- static const char import_mode[] = "--import-immediate=";
- static const char format[] = "--import-format=";
- static const char y_inverted[] = "--y-inverted=";
- for (i = 1; i < argc; i++) {
- if (!strncmp(argv[i], import_mode,
- sizeof(import_mode) - 1)) {
- if (is_true(argv[i] + sizeof(import_mode) - 1))
- opts |= OPT_IMMEDIATE;
- }
- else if (!strncmp(argv[i], format, sizeof(format) - 1)) {
- import_format = parse_import_format(argv[i]
- + sizeof(format) - 1);
- }
- else if (!strncmp(argv[i], y_inverted,
- sizeof(y_inverted) - 1)) {
- if (is_true(argv[i] + sizeof(y_inverted) - 1))
- opts |= OPT_Y_INVERTED;
- }
- else {
- print_usage_and_exit();
- }
+ int c, option_index, ret = 0;
+
+ static struct option long_options[] = {
+ {"import-format", required_argument, 0, 'f' },
+ {"import-immediate", required_argument, 0, 'i' },
+ {"y-inverted", required_argument, 0, 'y' },
+ {"help", no_argument , 0, 'h' },
+ {0, 0, 0, 0}
+ };
+
+ while ((c = getopt_long(argc, argv, "hf:i:y:",
+ long_options, &option_index)) != -1) {
+ switch (c) {
+ case 'f':
+ import_format = parse_import_format(optarg);
+ break;
+ case 'i':
+ if (is_true(optarg))
+ opts |= OPT_IMMEDIATE;
+ break;
+ case 'y':
+ if (is_true(optarg))
+ opts |= OPT_Y_INVERTED;
+ break;
+ default:
+ print_usage_and_exit();
}
}
--
2.16.1
More information about the wayland-devel
mailing list