[PATCH libevdev 2/3] Mark the log functions with the printf format attribute

David Herrmann dh.herrmann at gmail.com
Sun May 25 05:29:50 PDT 2014


Hi

On Mon, May 19, 2014 at 6:01 AM, Peter Hutterer
<peter.hutterer at who-t.net> wrote:
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
>  configure.ac            |  1 +
>  libevdev/libevdev-int.h |  3 +--
>  libevdev/libevdev.h     | 10 +++++++++-
>  3 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 0f2755e..9c0aae3 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -50,6 +50,7 @@ AM_SILENT_RULES([yes])
>
>  # Check for programs
>  AC_PROG_CC_C99
> +CC_ATTRIBUTE_FORMAT

Who cares for that? LLVM and GCC implement
__attribute__((__format__)). I'm no big fan of supporting compilers we
don't know. And stuff like that should be forced into the C standard,
instead of working around it all the time.

Anyhow, patch still looks fine, so if you really want that:

Reviewed-by: David Herrmann <dh.herrmann at gmail.com>

Thanks
David

>
>  # Initialize libtool
>  LT_PREREQ([2.2])
> diff --git a/libevdev/libevdev-int.h b/libevdev/libevdev-int.h
> index 98c75ce..f587e76 100644
> --- a/libevdev/libevdev-int.h
> +++ b/libevdev/libevdev-int.h
> @@ -36,7 +36,6 @@
>  #define ABS_MT_MAX ABS_MT_TOOL_Y
>  #define ABS_MT_CNT (ABS_MT_MAX - ABS_MT_MIN + 1)
>  #define LIBEVDEV_EXPORT __attribute__((visibility("default")))
> -#define LIBEVDEV_PRINTF(_format, _args) __attribute__ ((format (printf, _format, _args)))
>  #define ALIAS(_to) __attribute__((alias(#_to)))
>
>  /**
> @@ -131,7 +130,7 @@ extern void
>  log_msg(enum libevdev_log_priority priority,
>         void *data,
>         const char *file, int line, const char *func,
> -       const char *format, ...) LIBEVDEV_PRINTF(6, 7);
> +       const char *format, ...) LIBEVDEV_ATTRIBUTE_PRINTF(6, 7);
>
>  /**
>   * @return a pointer to the next element in the queue, or NULL if the queue
> diff --git a/libevdev/libevdev.h b/libevdev/libevdev.h
> index ef142ea..2c46102 100644
> --- a/libevdev/libevdev.h
> +++ b/libevdev/libevdev.h
> @@ -30,6 +30,13 @@ extern "C" {
>  #include <linux/input.h>
>  #include <stdarg.h>
>
> +#undef LIBEVDEV_ATTRIBUTE_PRINTF
> +#ifdef SUPPORT_ATTRIBUTE_FORMAT
> +#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args) __attribute__ ((format (printf, _format, _args)))
> +#else
> +#define LIBEVDEV_ATTRIBUTE_PRINTF(_format, _args) /**/
> +#endif
> +
>  /**
>   * @mainpage
>   *
> @@ -789,7 +796,8 @@ typedef void (*libevdev_log_func_t)(enum libevdev_log_priority priority,
>                                     void *data,
>                                     const char *file, int line,
>                                     const char *func,
> -                                   const char *format, va_list args);
> +                                   const char *format, va_list args)
> +       LIBEVDEV_ATTRIBUTE_PRINTF(6, 0);
>
>  /**
>   * @ingroup init
> --
> 1.9.0
>
> _______________________________________________
> Input-tools mailing list
> Input-tools at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/input-tools


More information about the Input-tools mailing list