wireshark/ui/clopts_common.h
Jaap Keuter d90a22c1cc Reorganize long option values
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>
2019-12-15 20:02:09 +00:00

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__ */