wireshark/wsutil/cmdarg_err.h
Guy Harris 55ddbd3101 Use g_get_prgname() to get the program name.
Have programs set the program name, at the beginning of main(), with
g_set_prgname().  That lets other code call g_get_prgname() to get the
program name.

This lets us replace a bunch of xxx_cmdarg_err() and
xxx_cmdarg_err_cont() routines with common code, as they differ only in
the command name printed in error message, and the common routine can
use g_get_prgname().

This also means that ws_log_init() doesn't need to be passed the
program name; it can juse use g_get_prgname().  The same applies to
extcap_log_init(), which calls ws_log_init().

While we're at it, have a common routine for extcaps to use ws_logv() to
log warnings, replacing some other xxx_cmdarg_err() and
xxx_cmdarg_err_cont() routines.

Use g_get_prgname() in ws_getopt.c; this means that you don't run the
risk of a pathname, rather than a command name, show up in the error
message.
2024-11-29 05:29:56 +00:00

61 lines
1.2 KiB
C

/** @file
*
* Declarations of routines to report command-line argument errors.
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef __CMDARG_ERR_H__
#define __CMDARG_ERR_H__
#include <wireshark.h>
#include <stdarg.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*
* Set the reporting functions for error messages.
*/
WS_DLL_PUBLIC void
cmdarg_err_init(void (*err)(const char *, va_list),
void (*err_cont)(const char *, va_list));
/*
* Report an error in command-line arguments.
*/
WS_DLL_PUBLIC void
vcmdarg_err(const char *fmt, va_list ap)
G_GNUC_PRINTF(1, 0);
WS_DLL_PUBLIC void
cmdarg_err(const char *fmt, ...)
G_GNUC_PRINTF(1, 2);
/*
* Report additional information for an error in command-line arguments.
*/
WS_DLL_PUBLIC void
cmdarg_err_cont(const char *fmt, ...)
G_GNUC_PRINTF(1, 2);
/*
* Error printing routines that report to the standard error.
*/
WS_DLL_PUBLIC void
stderr_cmdarg_err(const char *msg_format, va_list ap);
WS_DLL_PUBLIC void
stderr_cmdarg_err_cont(const char *msg_format, va_list ap);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __CMDARG_ERR_H__ */