test: let rmlvo-to-kccgst take long options like rmlvo-to-keymap The short options were left for backwards compatibility. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
diff --git a/test/rmlvo-to-kccgst.c b/test/rmlvo-to-kccgst.c
index f3c8076..99e5064 100644
--- a/test/rmlvo-to-kccgst.c
+++ b/test/rmlvo-to-kccgst.c
@@ -22,6 +22,7 @@
*/
#include <unistd.h>
+#include <getopt.h>
#include "test.h"
#include "xkbcomp/xkbcomp-priv.h"
@@ -30,13 +31,29 @@
int
main(int argc, char *argv[])
{
- int opt;
struct xkb_rule_names rmlvo = { NULL };
struct xkb_context *ctx;
struct xkb_component_names kccgst;
- while ((opt = getopt(argc, argv, "r:m:l:v:o:h")) != -1) {
- switch (opt) {
+ static struct option opts[] = {
+ {"help", no_argument, 0, 'h'},
+ {"rules", required_argument, 0, 'r'},
+ {"model", required_argument, 0, 'm'},
+ {"layout", required_argument, 0, 'l'},
+ {"variant", required_argument, 0, 'v'},
+ {"options", required_argument, 0, 'o'},
+ {0, 0, 0, 0},
+ };
+
+ while (1) {
+ int c;
+ int option_index = 0;
+
+ c = getopt_long(argc, argv, "r:m:l:v:o:h", opts, &option_index);
+ if (c == -1)
+ break;
+
+ switch (c) {
case 'r':
rmlvo.rules = optarg;
break;