va_list args;
char buf[1024];
+ if (!is_logged(evdev_libinput_context(device), priority))
+ return;
+
/* Anything info and above is user-visible, use the device name */
snprintf(buf,
sizeof(buf),
enum ratelimit_state state;
+ if (!is_logged(evdev_libinput_context(device), priority))
+ return;
+
state = ratelimit_test(ratelimit);
if (state == RATELIMIT_EXCEEDED)
return;
#define log_bug_libinput_ratelimit(li_, r_, ...) log_msg_ratelimit((li_), (r_), LIBINPUT_LOG_PRIORITY_ERROR, "libinput bug: " __VA_ARGS__)
#define log_bug_client_ratelimit(li_, r_, ...) log_msg_ratelimit((li_), (r_), LIBINPUT_LOG_PRIORITY_ERROR, "client bug: " __VA_ARGS__)
+static inline bool
+is_logged(const struct libinput *libinput,
+ enum libinput_log_priority priority)
+{
+ return libinput->log_handler &&
+ libinput->log_priority <= priority;
+}
+
+
void
log_msg_ratelimit(struct libinput *libinput,
struct ratelimit *ratelimit,
const char *format,
va_list args)
{
- if (libinput->log_handler &&
- libinput->log_priority <= priority)
+ if (is_logged(libinput, priority))
libinput->log_handler(libinput, priority, format, args);
}