Skip to content

Commit 73fc3e7

Browse files
vkochanxhebox
authored andcommitted
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 <[email protected]>
1 parent a597aae commit 73fc3e7

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

include/libintl.h

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,25 @@
44
#ifdef __cplusplus
55
extern "C" {
66
#endif
7-
char *gettext(const char *msgid);
8-
char *dgettext(const char *domainname, const char *msgid);
9-
char *dcgettext(const char *domainname, const char *msgid, int category);
10-
char *ngettext(const char *msgid1, const char *msgid2, unsigned long n);
11-
char *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n);
12-
char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n, int category);
7+
8+
#if __GNUC__ + 0 >= 3
9+
# define GETTEXT_INTERNAL_FA(n) __attribute__ ((__format_arg__ (n)))
10+
#else
11+
# define GETTEXT_INTERNAL_FA(n)
12+
#endif
13+
14+
char *gettext(const char *msgid)
15+
GETTEXT_INTERNAL_FA(1);
16+
char *dgettext(const char *domainname, const char *msgid)
17+
GETTEXT_INTERNAL_FA(2);
18+
char *dcgettext(const char *domainname, const char *msgid, int category)
19+
GETTEXT_INTERNAL_FA(2);
20+
char *ngettext(const char *msgid1, const char *msgid2, unsigned long n)
21+
GETTEXT_INTERNAL_FA(1) GETTEXT_INTERNAL_FA(2);
22+
char *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n)
23+
GETTEXT_INTERNAL_FA(2) GETTEXT_INTERNAL_FA(3);
24+
char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n, int category)
25+
GETTEXT_INTERNAL_FA(2) GETTEXT_INTERNAL_FA(3);
1326

1427
char *textdomain(const char *domainname);
1528
char *bind_textdomain_codeset(const char *domainname, const char *codeset);

0 commit comments

Comments
 (0)