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