Re: add non-option reordering to in-tree getopt_long
Noah Misch <noah@leadboat.com>
From: Noah Misch <noah@leadboat.com>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-hackers@postgresql.org
Date: 2023-06-14T22:11:54Z
Lists: pgsql-hackers
On Wed, Jun 14, 2023 at 02:28:16PM -0700, Nathan Bossart wrote:
> On Tue, Jun 13, 2023 at 05:17:37PM -0700, Noah Misch wrote:
> > If you have a test program to be run, I can run it on AIX.
>
> Thanks. The patch above [0] adjusts 040_createuser.pl to test modifying
> argv, so that's one test program. And here's a few lines for reversing
> argv:
>
> #include <stdio.h>
>
> int
> main(int argc, char *argv[])
> {
> for (int i = 0; i < argc / 2; i++)
> {
> char *tmp = argv[i];
>
> argv[i] = argv[argc - i - 1];
> argv[argc - i - 1] = tmp;
> }
>
> for (int i = 0; i < argc; i++)
> printf("%s ", argv[i]);
> printf("\n");
> }
Here's some output from this program (on AIX 7.1, same output when compiled
32-bit or 64-bit):
$ ./a.out a b c d e f
f e d c b a ./a.out
Interesting discussion here, too:
https://github.com/libuv/libuv/pull/1187
Commits
-
Simplify option handling in pg_ctl.
- 03d1080d8a95 17.0 landed
-
Teach in-tree getopt_long() to move non-options to the end of argv.
- 411b72034300 17.0 landed