+enum {
+ SOPT_END = UCHAR_MAX,
+ LOPT_VERSION,
+ LOPT_NO_TOUCH,
+ LOPT_FILE_SEP,
+ LOPT_M4,
+ LOPT_M4_CLEAN,
+ LOPT_M4_DIR
+};
+
+static const char sopts[] = "wnho:";
+static const struct option lopts[] = {
+ { "help", 0, NULL, 'h' },
+ { "version", 0, NULL, LOPT_VERSION },
+ { "exit-on-warn", 0, NULL, 'w' },
+ { "no-exit-on-warn", 0, &exit_on_warn, FALSE },
+ { "for-cpp", 0, &for_cpp, TRUE },
+ { "no-extern-c", 0, &no_extern_c, TRUE },
+ { "no-gnu", 0, &no_gnu, TRUE },
+ { "no-touch", 0, NULL, LOPT_NO_TOUCH },
+ { "no-touch-headers", 0, &no_touch_headers, TRUE },
+ { "always-private-header", 0, &private_header, PRIVATE_HEADER_ALWAYS },
+ { "ondemand-private-header", 0, &private_header, PRIVATE_HEADER_ONDEMAND },
+ { "no-private-header", 0, &private_header, PRIVATE_HEADER_NEVER },
+ { "always-private-struct", 0, &always_private_struct, TRUE },
+ { "m4", 0, NULL, LOPT_M4 },
+ { "m4-clean", 0, NULL, LOPT_M4_CLEAN },
+ { "m4-dir", 0, NULL, LOPT_M4_DIR },
+ { "no-write", 0, NULL, 'n' },
+ { "no-lines", 0, &no_lines, TRUE },
+ { "no-self-alias", 0, &no_self_alias, TRUE },
+ { "no-kill-underscores", 0, NULL, 0 /* no-op */ },
+ { "output-dir", 1, NULL, 'o' },
+ { "file-sep", 2, NULL, LOPT_FILE_SEP },
+ { "gtk3", 0, >k3_ok, TRUE },
+ { 0 }
+};
+