forked from osmocom/wireshark
![Jaap Keuter](/assets/img/avatar_default.png)
For long options, without corresponding short options, to be processed they need to be assigned a value, preferably outside of the range of all possible short options. The code in various places tries to stay clear of these low values, but further coordination is missing, easily leading to issues when option processing code gets extended and/or reorganized. This change introduces a single location from where each catagory of command line long option can derive a base value, which should minimize potential option value collisions. Change-Id: Ic8861a347d0050f74002de3aa1fcfb01202866e5 Reviewed-on: https://code.wireshark.org/review/35459 Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
54 lines
1.4 KiB
C
54 lines
1.4 KiB
C
/* clopts_common.h
|
|
* Handle command-line arguments common to various programs
|
|
*
|
|
* Wireshark - Network traffic analyzer
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
* Copyright 1998 Gerald Combs
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#ifndef __UI_CLOPTS_COMMON_H__
|
|
#define __UI_CLOPTS_COMMON_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
/*
|
|
* Long options.
|
|
* For long options with no corresponding short options, we define values
|
|
* outside the range of ASCII graphic characters, make that the last
|
|
* component of the entry for the long option, and have a case for that
|
|
* option in the switch statement.
|
|
*/
|
|
// Base value for capture related long options
|
|
#define LONGOPT_BASE_CAPTURE 1000
|
|
// Base value for dissector related long options
|
|
#define LONGOPT_BASE_DISSECTOR 2000
|
|
// Base value for application specific long options
|
|
#define LONGOPT_BASE_APPLICATION 3000
|
|
// Base value for GUI specific long options
|
|
#define LONGOPT_BASE_GUI 4000
|
|
|
|
extern int
|
|
get_natural_int(const char *string, const char *name);
|
|
|
|
extern int
|
|
get_positive_int(const char *string, const char *name);
|
|
|
|
extern guint32
|
|
get_guint32(const char *string, const char *name);
|
|
|
|
extern guint32
|
|
get_nonzero_guint32(const char *string, const char *name);
|
|
|
|
extern double
|
|
get_positive_double(const char *string, const char *name);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __UI_CLOPTS_COMMON_H__ */
|