Re: add non-option reordering to in-tree getopt_long - Mailing list pgsql-hackers

From Nathan Bossart
Subject Re: add non-option reordering to in-tree getopt_long
Date
Msg-id 20230616182847.GA71216@nathanxps13
Whole thread Raw
In response to Re: add non-option reordering to in-tree getopt_long  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Responses Re: add non-option reordering to in-tree getopt_long
List pgsql-hackers
On Fri, Jun 16, 2023 at 04:51:38PM +0900, Kyotaro Horiguchi wrote:
> (Honestly, the rearrangement code looks somewhat tricky to grasp..)

Yeah, I think there's still some room for improvement here.

> It doesn't work properly if '--' is involved.
> 
> For example, consider the following options (even though they don't
> work for the command).
> 
> psql -t -T hoho -a hoge -- -1 hage hige huge
> 
> After the function returns -1, the argv array looks like this. The
> "[..]" indicates the position of optind.
> 
> psql -t -T hoho -a -- [-1] hage hige huge hoge
> 
> This is clearly incorrect since "hoge" gets moved to the end.  The
> rearrangement logic needs to take into account the '--'.  For your
> information, the glibc version yields the following result for the
> same options.
> 
> psql -t -T hoho -a -- [hoge] -1 hage hige huge

Ah, so it effectively retains the non-option ordering, even if there is a
'--'.  I think this behavior is worth keeping.  I attempted to fix this in
the attached patch.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com

Attachment

pgsql-hackers by date:

Previous
From: Masahiro Ikeda
Date:
Subject: Re: Support to define custom wait events for extensions
Next
From: Andrew Dunstan
Date:
Subject: Re: [PATCH] Missing dep on Catalog.pm in meson rules