1041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner#include <stdlib.h>
2041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner#include <string.h>
3041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner#include <strings.h>
4041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner#include <errno.h>
5041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
6041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *gettext(const char *msgid)
7041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
8041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) msgid;
9041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
10041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
11041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *dgettext(const char *domainname, const char *msgid)
12041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
13041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) msgid;
14041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
15041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
16041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *dcgettext(const char *domainname, const char *msgid, int category)
17041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
18041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) msgid;
19041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
20041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
21041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *ngettext(const char *msgid1, const char *msgid2, unsigned long int n)
22041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
23041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) ((n == 1) ? msgid1 : msgid2);
24041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
25041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
26041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n)
27041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
28041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) ((n == 1) ? msgid1 : msgid2);
29041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
30041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
31041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n, int category)
32041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
33041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) ((n == 1) ? msgid1 : msgid2);
34041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
35041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
36041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *textdomain(const char *domainname)
37041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
38041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	static const char default_str[] = "messages";
39041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
40041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	if (domainname && *domainname && strcmp(domainname, default_str)) {
41041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner		errno = EINVAL;
42041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner		return NULL;
43041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	}
44041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) default_str;
45041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
46041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
47041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *bindtextdomain(const char *domainname, const char *dirname)
48041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
49041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	static const char dir[] = "/";
50041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
51041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	if (!domainname || !*domainname
52041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner		|| (dirname && ((dirname[0] != '/') || dirname[1]))
53041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner		) {
54041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner		errno = EINVAL;
55041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner		return NULL;
56041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	}
57041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
58041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return (char *) dir;
59041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
60041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner
61041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turnerchar *bind_textdomain_codeset(const char *domainname, const char *codeset)
62041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner{
63041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	if (!domainname || !*domainname || (codeset && strcasecmp(codeset, "UTF-8"))) {
64041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner		errno = EINVAL;
65041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	}
66041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner	return NULL;
67041656818eb2625982d4b55d176468a4bd07fb32David 'Digit' Turner}
68