diff options
author | Vadim Kochan <vadim4j@gmail.com> | 2019-04-06 07:45:04 +0300 |
---|---|---|
committer | xhe <xhebox@users.noreply.github.com> | 2019-04-06 12:45:04 +0800 |
commit | 73fc3e7ef7e016a3874b632fd0475969d288f309 (patch) | |
tree | 7cb2dd0999194ec6482390ef97c1c7c9a2088a90 | |
parent | a597aaebd15ef73a65d67f0d6f746ca7ca812d51 (diff) | |
download | gettext-tiny-73fc3e7ef7e016a3874b632fd0475969d288f309.tar.gz |
gettext-tiny: Fix format not a string literal error (#41)
Add 'format_arg' attribute for the functions which may return string
as formatted parameter, otherwise it fails to compile with corresponding
compiler checking flag enabled.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
-rw-r--r-- | include/libintl.h | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/include/libintl.h b/include/libintl.h index 154c532..ae0462f 100644 --- a/include/libintl.h +++ b/include/libintl.h @@ -4,12 +4,25 @@ #ifdef __cplusplus extern "C" { #endif -char *gettext(const char *msgid); -char *dgettext(const char *domainname, const char *msgid); -char *dcgettext(const char *domainname, const char *msgid, int category); -char *ngettext(const char *msgid1, const char *msgid2, unsigned long n); -char *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n); -char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n, int category); + +#if __GNUC__ + 0 >= 3 +# define GETTEXT_INTERNAL_FA(n) __attribute__ ((__format_arg__ (n))) +#else +# define GETTEXT_INTERNAL_FA(n) +#endif + +char *gettext(const char *msgid) + GETTEXT_INTERNAL_FA(1); +char *dgettext(const char *domainname, const char *msgid) + GETTEXT_INTERNAL_FA(2); +char *dcgettext(const char *domainname, const char *msgid, int category) + GETTEXT_INTERNAL_FA(2); +char *ngettext(const char *msgid1, const char *msgid2, unsigned long n) + GETTEXT_INTERNAL_FA(1) GETTEXT_INTERNAL_FA(2); +char *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n) + GETTEXT_INTERNAL_FA(2) GETTEXT_INTERNAL_FA(3); +char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n, int category) + GETTEXT_INTERNAL_FA(2) GETTEXT_INTERNAL_FA(3); char *textdomain(const char *domainname); char *bind_textdomain_codeset(const char *domainname, const char *codeset); |