1*c9945492SAndroid Build Coastguard Worker #include <libintl.h>
2*c9945492SAndroid Build Coastguard Worker #include <string.h>
3*c9945492SAndroid Build Coastguard Worker #include <stdlib.h>
4*c9945492SAndroid Build Coastguard Worker #include <errno.h>
5*c9945492SAndroid Build Coastguard Worker #include <limits.h>
6*c9945492SAndroid Build Coastguard Worker
7*c9945492SAndroid Build Coastguard Worker static char *current_domain;
8*c9945492SAndroid Build Coastguard Worker
__gettextdomain()9*c9945492SAndroid Build Coastguard Worker char *__gettextdomain()
10*c9945492SAndroid Build Coastguard Worker {
11*c9945492SAndroid Build Coastguard Worker return current_domain ? current_domain : "messages";
12*c9945492SAndroid Build Coastguard Worker }
13*c9945492SAndroid Build Coastguard Worker
textdomain(const char * domainname)14*c9945492SAndroid Build Coastguard Worker char *textdomain(const char *domainname)
15*c9945492SAndroid Build Coastguard Worker {
16*c9945492SAndroid Build Coastguard Worker if (!domainname) return __gettextdomain();
17*c9945492SAndroid Build Coastguard Worker
18*c9945492SAndroid Build Coastguard Worker size_t domlen = strlen(domainname);
19*c9945492SAndroid Build Coastguard Worker if (domlen > NAME_MAX) {
20*c9945492SAndroid Build Coastguard Worker errno = EINVAL;
21*c9945492SAndroid Build Coastguard Worker return 0;
22*c9945492SAndroid Build Coastguard Worker }
23*c9945492SAndroid Build Coastguard Worker
24*c9945492SAndroid Build Coastguard Worker if (!current_domain) {
25*c9945492SAndroid Build Coastguard Worker current_domain = malloc(NAME_MAX+1);
26*c9945492SAndroid Build Coastguard Worker if (!current_domain) return 0;
27*c9945492SAndroid Build Coastguard Worker }
28*c9945492SAndroid Build Coastguard Worker
29*c9945492SAndroid Build Coastguard Worker memcpy(current_domain, domainname, domlen+1);
30*c9945492SAndroid Build Coastguard Worker
31*c9945492SAndroid Build Coastguard Worker return current_domain;
32*c9945492SAndroid Build Coastguard Worker }
33*c9945492SAndroid Build Coastguard Worker
gettext(const char * msgid)34*c9945492SAndroid Build Coastguard Worker char *gettext(const char *msgid)
35*c9945492SAndroid Build Coastguard Worker {
36*c9945492SAndroid Build Coastguard Worker return dgettext(0, msgid);
37*c9945492SAndroid Build Coastguard Worker }
38*c9945492SAndroid Build Coastguard Worker
ngettext(const char * msgid1,const char * msgid2,unsigned long int n)39*c9945492SAndroid Build Coastguard Worker char *ngettext(const char *msgid1, const char *msgid2, unsigned long int n)
40*c9945492SAndroid Build Coastguard Worker {
41*c9945492SAndroid Build Coastguard Worker return dngettext(0, msgid1, msgid2, n);
42*c9945492SAndroid Build Coastguard Worker }
43