include cleanups: remove unused headers and add feature test macros
[musl] / src / locale / intl.c
1 #include <libintl.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <strings.h>
5 #include <errno.h>
6
7 char *gettext(const char *msgid)
8 {
9         return (char *) msgid;
10 }
11
12 char *dgettext(const char *domainname, const char *msgid)
13 {
14         return (char *) msgid;
15 }
16
17 char *dcgettext(const char *domainname, const char *msgid, int category)
18 {
19         return (char *) msgid;
20 }
21
22 char *ngettext(const char *msgid1, const char *msgid2, unsigned long int n)
23 {
24         return (char *) ((n == 1) ? msgid1 : msgid2);
25 }
26
27 char *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n)
28 {
29         return (char *) ((n == 1) ? msgid1 : msgid2);
30 }
31
32 char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n, int category)
33 {
34         return (char *) ((n == 1) ? msgid1 : msgid2);
35 }
36
37 char *textdomain(const char *domainname)
38 {
39         static const char default_str[] = "messages";
40
41         if (domainname && *domainname && strcmp(domainname, default_str)) {
42                 errno = EINVAL;
43                 return NULL;
44         }
45         return (char *) default_str;
46 }
47
48 char *bindtextdomain(const char *domainname, const char *dirname)
49 {
50         static const char dir[] = "/";
51
52         if (!domainname || !*domainname
53                 || (dirname && ((dirname[0] != '/') || dirname[1]))
54                 ) {
55                 errno = EINVAL;
56                 return NULL;
57         }
58
59         return (char *) dir;
60 }
61
62 char *bind_textdomain_codeset(const char *domainname, const char *codeset)
63 {
64         if (!domainname || !*domainname || (codeset && strcasecmp(codeset, "UTF-8"))) {
65                 errno = EINVAL;
66         }
67         return NULL;
68 }