Instead of trying to make weak functions work on all platforms,
just use a registration function for a plugin-specific setlocale function. The sudoers version just wraps sudoers_setlocale().
This commit is contained in:
@@ -18,6 +18,11 @@
|
||||
#define _SUDO_FATAL_H_
|
||||
|
||||
#include <stdarg.h>
|
||||
#ifdef HAVE_STDBOOL_H
|
||||
# include <stdbool.h>
|
||||
#else
|
||||
# include "compat/stdbool.h"
|
||||
#endif /* HAVE_STDBOOL_H */
|
||||
|
||||
/*
|
||||
* We wrap fatal/fatalx and warn/warnx so that the same output can
|
||||
@@ -120,7 +125,7 @@ struct sudo_conv_reply;
|
||||
__dso_public int sudo_fatal_callback_deregister_v1(sudo_fatal_callback_t func);
|
||||
__dso_public int sudo_fatal_callback_register_v1(sudo_fatal_callback_t func);
|
||||
__dso_public char *sudo_warn_gettext_v1(const char *msgid) __format_arg(1);
|
||||
__dso_public char *sudo_warn_strerror_v1(int errnum);
|
||||
__dso_public void sudo_warn_set_locale_func_v1(bool (*func)(bool, int *));
|
||||
__dso_public void sudo_fatal_nodebug_v1(const char *fmt, ...) __printf0like(1, 2) __attribute__((__noreturn__));
|
||||
__dso_public void sudo_fatalx_nodebug_v1(const char *fmt, ...) __printflike(1, 2) __attribute__((__noreturn__));
|
||||
__dso_public void sudo_vfatal_nodebug_v1(const char *fmt, va_list ap) __printf0like(1, 0) __attribute__((__noreturn__));
|
||||
@@ -134,7 +139,7 @@ __dso_public void sudo_warn_set_conversation_v1(int (*conv)(int num_msgs, const
|
||||
#define sudo_fatal_callback_deregister(_a) sudo_fatal_callback_deregister_v1((_a))
|
||||
#define sudo_fatal_callback_register(_a) sudo_fatal_callback_register_v1((_a))
|
||||
#define sudo_warn_gettext(_a) sudo_warn_gettext_v1((_a))
|
||||
#define sudo_warn_strerror(_a) sudo_warn_strerror_v1((_a))
|
||||
#define sudo_warn_set_locale_func(_a) sudo_warn_set_locale_func_v1((_a))
|
||||
#define sudo_fatal_nodebug sudo_fatal_nodebug_v1
|
||||
#define sudo_fatalx_nodebug sudo_fatalx_nodebug_v1
|
||||
#define sudo_vfatal_nodebug(_a, _b) sudo_vfatal_nodebug_v1((_a), (_b))
|
||||
@@ -144,5 +149,6 @@ __dso_public void sudo_warn_set_conversation_v1(int (*conv)(int num_msgs, const
|
||||
#define sudo_vwarn_nodebug(_a, _b) sudo_vwarn_nodebug_v1((_a), (_b))
|
||||
#define sudo_vwarnx_nodebug(_a, _b) sudo_vwarnx_nodebug_v1((_a), (_b))
|
||||
#define sudo_warn_set_conversation(_a) sudo_warn_set_conversation_v1(_a)
|
||||
#define sudo_warn_set_conversation(_a) sudo_warn_set_conversation_v1(_a)
|
||||
|
||||
#endif /* _SUDO_FATAL_H_ */
|
||||
|
Reference in New Issue
Block a user