main/client: be POSIXLY_CORRECT when parsing command line

This means command line parsing stops when it encounters the first
nonoption argument.

The result is that one no longer need to use '--' to ensure arguments
are passed to the shell/command, instead of parsed by foot.

That is, instead of

  foot -- sh -c true

one can now do

  foot sh -c true

Arguments to foot *must* go before the command:

  foot --fullscreen sh -c true
This commit is contained in:
Daniel Eklöf 2020-05-08 18:43:03 +02:00
parent 56d53ec2a1
commit 5b70f94827
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 15 additions and 12 deletions

View file

@ -28,8 +28,8 @@ sig_handler(int signo)
static void
print_usage(const char *prog_name)
{
printf("Usage: %s [OPTIONS]...\n", prog_name);
printf("Usage: %s [OPTIONS]... -- command\n", prog_name);
printf("Usage: %s [OPTIONS...]", prog_name);
printf("Usage: %s [OPTIONS...] [ARGS...]\n", prog_name);
printf("\n");
printf("Options:\n");
printf(" -t,--term=TERM value to set the environment variable TERM to (foot)\n"
@ -74,7 +74,7 @@ main(int argc, char *const *argv)
bool fullscreen = false;
while (true) {
int c = getopt_long(argc, argv, ":t:a:s:l::hv", longopts, NULL);
int c = getopt_long(argc, argv, "+:t:a:s:l::hv", longopts, NULL);
if (c == -1)
break;