Add warning_gettext() wrapper function that changes to the user locale,
then calls gettext(). Add U_ macro that calls warning_gettext() instead of gettext(). Rename warning2()/error2() back to warning_nodebug()/error_nodebug().
This commit is contained in:
@@ -120,82 +120,23 @@
|
||||
} while (0)
|
||||
#endif /* SUDO_ERROR_WRAP */
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__ == 2
|
||||
# define fatal_nodebug(fmt...) do { \
|
||||
warning_set_locale(); \
|
||||
fatal2(fmt); \
|
||||
} while (0)
|
||||
# define fatalx_nodebug(fmt...) do { \
|
||||
warning_set_locale(); \
|
||||
fatalx2(fmt); \
|
||||
} while (0)
|
||||
# define warning_nodebug(fmt...) do { \
|
||||
warning_set_locale(); \
|
||||
warning2(fmt); \
|
||||
warning_restore_locale(); \
|
||||
} while (0)
|
||||
# define warningx_nodebug(fmt...) do { \
|
||||
warning_set_locale(); \
|
||||
warningx2(fmt); \
|
||||
warning_restore_locale(); \
|
||||
} while (0)
|
||||
#else
|
||||
# define fatal_nodebug(...) do { \
|
||||
warning_set_locale(); \
|
||||
fatal2(__VA_ARGS__); \
|
||||
} while (0)
|
||||
# define fatalx_nodebug(...) do { \
|
||||
warning_set_locale(); \
|
||||
fatalx2(__VA_ARGS__); \
|
||||
} while (0)
|
||||
# define warning_nodebug(...) do { \
|
||||
warning_set_locale(); \
|
||||
warning2(__VA_ARGS__); \
|
||||
warning_restore_locale(); \
|
||||
} while (0)
|
||||
# define warningx_nodebug(...) do { \
|
||||
warning_set_locale(); \
|
||||
warningx2(__VA_ARGS__); \
|
||||
warning_restore_locale(); \
|
||||
} while (0)
|
||||
#endif /* __GNUC__ == 2 */
|
||||
#define vfatal_nodebug(fmt, ap) do { \
|
||||
warning_set_locale(); \
|
||||
vfatal2((fmt), (ap)); \
|
||||
} while (0)
|
||||
#define vfatalx_nodebug(fmt, ap) do { \
|
||||
warning_set_locale(); \
|
||||
vfatalx2((fmt), (ap)); \
|
||||
} while (0)
|
||||
#define vwarning_nodebug(fmt, ap) do { \
|
||||
warning_set_locale(); \
|
||||
vwarning2((fmt), (ap)); \
|
||||
warning_restore_locale(); \
|
||||
} while (0)
|
||||
#define vwarningx_nodebug(fmt, ap) do { \
|
||||
warning_set_locale(); \
|
||||
vwarningx2((fmt), (ap)); \
|
||||
warning_restore_locale(); \
|
||||
} while (0)
|
||||
|
||||
#define fatal_setjmp() (fatal_enable_setjmp(), sigsetjmp(fatal_jmp, 1))
|
||||
#define fatal_longjmp(val) siglongjmp(fatal_jmp, val)
|
||||
|
||||
extern int (*sudo_printf)(int msg_type, const char *fmt, ...);
|
||||
extern sigjmp_buf fatal_jmp;
|
||||
|
||||
int fatal_callback_register(void (*func)(void));
|
||||
int fatal_callback_register(void (*func)(void));
|
||||
char *warning_gettext(const char *msgid) __format_arg(1);
|
||||
void fatal_disable_setjmp(void);
|
||||
void fatal_enable_setjmp(void);
|
||||
void fatal2(const char *, ...) __printf0like(1, 2) __attribute__((__noreturn__));
|
||||
void fatalx2(const char *, ...) __printflike(1, 2) __attribute__((__noreturn__));
|
||||
void vfatal2(const char *, va_list ap) __printf0like(1, 0) __attribute__((__noreturn__));
|
||||
void vfatalx2(const char *, va_list ap) __printflike(1, 0) __attribute__((__noreturn__));
|
||||
void warning2(const char *, ...) __printf0like(1, 2);
|
||||
void warningx2(const char *, ...) __printflike(1, 2);
|
||||
void vwarning2(const char *, va_list ap) __printf0like(1, 0);
|
||||
void vwarningx2(const char *, va_list ap) __printflike(1, 0);
|
||||
void warning_set_locale(void);
|
||||
void warning_restore_locale(void);
|
||||
void fatal_nodebug(const char *, ...) __printf0like(1, 2) __attribute__((__noreturn__));
|
||||
void fatalx_nodebug(const char *, ...) __printflike(1, 2) __attribute__((__noreturn__));
|
||||
void vfatal_nodebug(const char *, va_list ap) __printf0like(1, 0) __attribute__((__noreturn__));
|
||||
void vfatalx_nodebug(const char *, va_list ap) __printflike(1, 0) __attribute__((__noreturn__));
|
||||
void warning_nodebug(const char *, ...) __printf0like(1, 2);
|
||||
void warningx_nodebug(const char *, ...) __printflike(1, 2);
|
||||
void vwarning_nodebug(const char *, va_list ap) __printf0like(1, 0);
|
||||
void vwarningx_nodebug(const char *, va_list ap) __printflike(1, 0);
|
||||
|
||||
#endif /* _SUDO_FATAL_H_ */
|
||||
|
Reference in New Issue
Block a user