bugzilla-daemon at mindrot.org
2013-May-10 04:27 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 Darren Tucker <dtucker at zip.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dtucker at zip.com.au --- Comment #4 from Darren Tucker <dtucker at zip.com.au> --- whatever it is, it doesn't seem to be gnu-getopt specific. or if it is, it's not enabled with the default set of defines. #include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { int ch; while ((ch = getopt(argc, argv, "abc:")) != -1) { printf("opt %c optarg %s\n", ch, optarg ? optarg : "(null)"); } } gives me: $ ./a.out --foo ./a.out: invalid option -- '-' opt ? optarg (null) ./a.out: invalid option -- 'f' opt ? optarg (null) ./a.out: invalid option -- 'o' opt ? optarg (null) ./a.out: invalid option -- 'o' opt ? optarg (null) whatever it is, I think it's in our compat library: $ nm scp | grep -i getop 08051710 T BSDgetopt -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 04:32 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 --- Comment #5 from Darren Tucker <dtucker at zip.com.au> --- sure looks like something of ours: $ gcc getopt-test.c -Dgetopt=BSDgetopt openbsd-compat/libopenbsd-compat.a $ ./a.out -a opt a optarg (null) $ ./a.out --foo $ -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 05:20 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 --- Comment #6 from Darren Tucker <dtucker at zip.com.au> --- ok, so it turns out the original upstream source in OpenBSD's getopt.c had the same behaviour, but was replaced in 2004 with getopt_long.c which doesn't. For long-term maintainability I think we should switch. What I'm going to do is 1) factor out the portability changes in getopt.c 2) add getopt_long.c to openssh and remove getopt.c 3) pull the portability changes into getopt_long.c -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 06:09 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 --- Comment #7 from Darren Tucker <dtucker at zip.com.au> --- Created attachment 2257 --> https://bugzilla.mindrot.org/attachment.cgi?id=2257&action=edit Factor out portability changes in getopt.c -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 06:10 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 --- Comment #8 from Darren Tucker <dtucker at zip.com.au> --- Created attachment 2258 --> https://bugzilla.mindrot.org/attachment.cgi?id=2258&action=edit import getopt_long.c from openbsd -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 06:11 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 --- Comment #9 from Darren Tucker <dtucker at zip.com.au> --- Created attachment 2259 --> https://bugzilla.mindrot.org/attachment.cgi?id=2259&action=edit apply portability changes to getopt_long.c switch over to it and remove getopt.c -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 06:29 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 Darren Tucker <dtucker at zip.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED Blocks| |2076 --- Comment #10 from Darren Tucker <dtucker at zip.com.au> --- With these changes I get the following for your testcase: $ touch a; ./scp --foobarbaz a b unknown option -- - usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2 Thanks for the report (and patience :-). These changes will be in the 6.3p1 release. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 09:30 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 --- Comment #11 from bonniot at gmail.com --- Thank you for the fix :) Any chance the portability fixes could be applied upstream? -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-10 10:07 UTC
[Bug 1448] Report wrong command-line options
https://bugzilla.mindrot.org/show_bug.cgi?id=1448 --- Comment #12 from Darren Tucker <dtucker at zip.com.au> --- It's already as upstream as it gets. The file with the bug in openbsd is dead, and the current version of the current file is fine. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
Reasonably Related Threads
- [Bug 1448] New: Report wrong command-line options
- multiple definition of `optind'
- [PATCH] No extern declarations of optarg & co if getopt.h is available
- [nbdkit PATCH] main: More idiomatic use of getopt_long
- [PATCH] New '-o' option to configure server or hosts from command line