#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include #include #include "config.h" static double constant(char *name, int arg) { errno = 0; if (strEQ(name, "LC_CTYPE")) return LC_CTYPE; if (strEQ(name, "LC_NUMERIC")) return LC_NUMERIC; if (strEQ(name, "LC_COLLATE")) return LC_COLLATE; if (strEQ(name, "LC_MONETARY")) return LC_MONETARY; if (strEQ(name, "LC_MESSAGES")) return LC_MESSAGES; if (strEQ(name, "LC_ALL")) return LC_ALL; errno = EINVAL; return 0; } #define ANY_MISSING 0 #ifndef HAVE_DGETTEXT /* if dgettext is not there, neither will dcgettext, dngettext and dcngettext be. But only deal with dngettext and dcngettext if they will not be dealt with later because of ngettext */ #define dgettext(a,b) not_here("dgettext") #define dcgettext(a,b,c) not_here("dcgettext") #ifdef HAVE_NGETTEXT #define dngettext(a,b,c,d) not_here("dngettext") #define dcngettext(a,b,c,d,e) not_here("dcngettext") #endif #undef ANY_MISSING #define ANY_MISSING 1 #endif #ifndef HAVE_NGETTEXT #define ngettext(a,b,c) not_here("ngettext") #define dngettext(a,b,c,d) not_here("dngettext") #define dncgettext(a,b,c,d,e) not_here("dcngettext") #undef ANY_MISSING #define ANY_MISSING 1 #endif #ifndef HAVE_BIND_TEXTDOMAIN_CODESET #define bind_textdomain_codeset(a,b) not_here("bind_textdomain_codeset") #undef ANY_MISSING #define ANY_MISSING 1 #endif #if ANY_MISSING static int not_here(char *s) { croak("Locale::gettext::%s not implemented on this architecture", s); return -1; } #endif MODULE = Locale::gettext PACKAGE = Locale::gettext double constant(name,arg) char * name int arg char * gettext(msgid) char * msgid char * dcgettext(domainname, msgid, category) char * domainname char * msgid int category char * dgettext(domainname, msgid) char * domainname char * msgid char * ngettext(msgid, msgid_plural, n) char * msgid char * msgid_plural unsigned long n char * dcngettext(domainname, msgid, msgid_plural, n, category) char * domainname char * msgid char * msgid_plural unsigned long n int category char * dngettext(domainname, msgid, msgid_plural, n) char * domainname char * msgid char * msgid_plural unsigned long n char * textdomain(domain) char * domain char * bindtextdomain(domain, dirname = NULL) char * domain char * dirname char * bind_textdomain_codeset(domain, codeset = NULL) char * domain char * codeset