+2013-12-17 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Add missing format_arg attribute to check that printf with translated
+ messages has proper arguments.
+
2013-12-17 Vladimir Serbinenko <phcoder@gmail.com>
Use grub_xasprintf to format translated error messages containing
/* NLS can be disabled through the configure --disable-nls option. */
#if (defined(ENABLE_NLS) && ENABLE_NLS) || !defined (GRUB_UTIL)
-extern const char *(*EXPORT_VAR(grub_gettext)) (const char *s);
+extern const char *(*EXPORT_VAR(grub_gettext)) (const char *s) __attribute__ ((format_arg (1)));
# ifdef GRUB_UTIL
for invalid uses of the value returned from these functions.
On pre-ANSI systems without 'const', the config.h file is supposed to
contain "#define const". */
-static inline const char * __attribute__ ((always_inline))
+static inline const char * __attribute__ ((always_inline,format_arg (1)))
gettext (const char *str)
{
return str;
#endif /* (defined(ENABLE_NLS) && ENABLE_NLS) */
#ifdef GRUB_UTIL
-static inline const char * __attribute__ ((always_inline))
+static inline const char * __attribute__ ((always_inline,format_arg (1)))
_ (const char *str)
{
return gettext(str);
}
#else
-static inline const char * __attribute__ ((always_inline))
+static inline const char * __attribute__ ((always_inline,format_arg (1)))
_ (const char *str)
{
return grub_gettext(str);