pgsql: Teach in-tree getopt_long() to move non-options to the end of ar
От | Nathan Bossart |
---|---|
Тема | pgsql: Teach in-tree getopt_long() to move non-options to the end of ar |
Дата | |
Msg-id | E1qJn72-00073v-1N@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Teach in-tree getopt_long() to move non-options to the end of argv. Unlike the other implementations of getopt_long() I could find, the in-tree implementation does not reorder non-options to the end of argv. Instead, it returns -1 as soon as the first non-option is found, even if there are other options listed afterwards. By moving non-options to the end of argv, getopt_long() can parse all specified options and return -1 when only non-options remain. This quirk is periodically missed by hackers (e.g., 869aa40a27, ffd398021c, and d9ddc50baf). This commit introduces the aforementioned non-option reordering behavior to the in-tree getopt_long() implementation. Special thanks to Noah Misch for his help verifying behavior on AIX. Reviewed-by: Kyotaro Horiguchi, Michael Paquier Discussion: https://postgr.es/m/20230609232257.GA121461%40nathanxps13 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/411b720343005597d042fc1736ce9a3a3ee8a1fe Modified Files -------------- src/bin/scripts/t/040_createuser.pl | 10 ++++--- src/port/getopt_long.c | 53 ++++++++++++++++++++++++++----------- 2 files changed, 44 insertions(+), 19 deletions(-)
В списке pgsql-committers по дате отправления: