forked from osmocom/wireshark
Don't use a leading - in getopt_long() option strings.
The behavior of a leading - is platform-dependent. It also means that non-option arguments are treated in a fashion that we're not handling, so capture filters given as non-option arguments at the end of the command line don't work. (The Linux getopt() man page says that a leading - "is used by programs that were written to expect options and other argv-elements in any order and that care about the ordering of the two." We are not such a program.) Change-Id: I5610cf90a8218d48f7516abacc367e0affa3b549 Based-On-A-Change-From: Peter Hatina <phatina@redhat.com> Reviewed-on: https://code.wireshark.org/review/6071 Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
parent
0a0ce2b78f
commit
4536271c0a
13
tfshark.c
13
tfshark.c
|
@ -796,7 +796,8 @@ main(int argc, char *argv[])
|
|||
gchar *output_only = NULL;
|
||||
|
||||
/*
|
||||
* The leading - ensures that getopt_long() does not permute the argv[] entries.
|
||||
* The leading + ensures that getopt_long() does not permute the argv[]
|
||||
* entries.
|
||||
*
|
||||
* We have to make sure that the first getopt_long() preserves the content
|
||||
* of argv[] for the subsequent getopt_long() call.
|
||||
|
@ -806,10 +807,14 @@ main(int argc, char *argv[])
|
|||
* platforms, and so that, if we ever need to process a long argument before
|
||||
* doing further initialization, we can do so.
|
||||
*
|
||||
* XXX - the behavior of a leading - is platform-dependent, so we shouldn't
|
||||
* use it.
|
||||
* Glibc and Solaris libc document that a leading + disables permutation
|
||||
* of options, regardless of whether POSIXLY_CORRECT is set or not; *BSD
|
||||
* and OS X don't document it, but do so anyway.
|
||||
*
|
||||
* We do *not* use a leading - because the behavior of a leading - is
|
||||
* platform-dependent.
|
||||
*/
|
||||
#define OPTSTRING "-2C:d:e:E:hK:lo:O:qQr:R:S:t:T:u:vVxX:Y:z:"
|
||||
#define OPTSTRING "+2C:d:e:E:hK:lo:O:qQr:R:S:t:T:u:vVxX:Y:z:"
|
||||
|
||||
static const char optstring[] = OPTSTRING;
|
||||
|
||||
|
|
13
tshark.c
13
tshark.c
|
@ -995,7 +995,8 @@ main(int argc, char *argv[])
|
|||
gchar *output_only = NULL;
|
||||
|
||||
/*
|
||||
* The leading - ensures that getopt_long() does not permute the argv[] entries.
|
||||
* The leading + ensures that getopt_long() does not permute the argv[]
|
||||
* entries.
|
||||
*
|
||||
* We have to make sure that the first getopt_long() preserves the content
|
||||
* of argv[] for the subsequent getopt_long() call.
|
||||
|
@ -1005,10 +1006,14 @@ main(int argc, char *argv[])
|
|||
* platforms, and so that, if we ever need to process a long argument before
|
||||
* doing further initialization, we can do so.
|
||||
*
|
||||
* XXX - the behavior of a leading - is platform-dependent, so we shouldn't
|
||||
* use it.
|
||||
* Glibc and Solaris libc document that a leading + disables permutation
|
||||
* of options, regardless of whether POSIXLY_CORRECT is set or not; *BSD
|
||||
* and OS X don't document it, but do so anyway.
|
||||
*
|
||||
* We do *not* use a leading - because the behavior of a leading - is
|
||||
* platform-dependent.
|
||||
*/
|
||||
#define OPTSTRING "-2" OPTSTRING_CAPTURE_COMMON "C:d:e:E:F:gG:hH:" "K:lnN:o:O:PqQr:R:S:t:T:u:vVw:W:xX:Y:z:"
|
||||
#define OPTSTRING "+2" OPTSTRING_CAPTURE_COMMON "C:d:e:E:F:gG:hH:" "K:lnN:o:O:PqQr:R:S:t:T:u:vVw:W:xX:Y:z:"
|
||||
|
||||
static const char optstring[] = OPTSTRING;
|
||||
|
||||
|
|
Loading…
Reference in New Issue