A little earlier today I ended up spending a lot of time trying to figure out why weston wasn't managing to launch over SSH and telling me that I did not have a --tty option specified, despite me passing the option strings ["--tty", "3"]. Turns out weston just doesn't support that.
So, add support for this kind of format in addition to "--foo=bar" to save others from making the same mistake I did. Signed-off-by: Lyude <ly...@redhat.com> --- Resending since I realized I was no longer subscribed to this mailing list after the first time I sent this, whoops. shared/option-parser.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/shared/option-parser.c b/shared/option-parser.c index eee7546..82f2f31 100644 --- a/shared/option-parser.c +++ b/shared/option-parser.c @@ -87,6 +87,28 @@ long_option(const struct weston_option *options, int count, char *arg) } static int +long_option_with_arg(const struct weston_option *options, int count, char *arg, char *param) +{ + int k, len; + + for (k = 0; k < count; k++) { + if (!options[k].name) + continue; + + len = strlen(options[k].name); + if (strncmp(options[k].name, arg + 2, len) != 0) + continue; + + if (options[k].type == WESTON_OPTION_BOOLEAN) + continue; + + return handle_option(options + k, param); + } + + return 0; +} + +static int short_option(const struct weston_option *options, int count, char *arg) { int k; @@ -148,6 +170,12 @@ parse_options(const struct weston_option *options, if (long_option(options, count, argv[i])) continue; + /* ...also handle --foo bar */ + if (i + 1 < *argc && + long_option_with_arg(options, count, argv[i], argv[i+1])) { + i++; + continue; + } } else { /* Short option, e.g -f or -f42 */ if (short_option(options, count, argv[i])) -- 2.9.3 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel