github.com/afumu/libc@v0.0.6/musl/src/locale/textdomain.c (about)

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