summaryrefslogtreecommitdiff
path: root/libintl
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2016-12-20 19:57:05 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2016-12-20 19:57:05 +0100
commitb39b5151b937c4d36ff293b62cee988378245fac (patch)
tree3145e0981d7a2fdf6bb7a25141fb2f366fa1e33f /libintl
parent4fa7ed9388f3ca81d97cad2099a6f9fa9f8098de (diff)
add stub implementation for libintl/gettext
These adds the stubs from gettext-tiny 0.0.5 from here: https://github.com/sabotage-linux/gettext-tiny
Diffstat (limited to 'libintl')
-rw-r--r--libintl/Makefile9
-rw-r--r--libintl/Makefile.in30
-rw-r--r--libintl/libintl.c82
3 files changed, 121 insertions, 0 deletions
diff --git a/libintl/Makefile b/libintl/Makefile
new file mode 100644
index 000000000..1ffc16ee3
--- /dev/null
+++ b/libintl/Makefile
@@ -0,0 +1,9 @@
+# Makefile for uClibc-ng
+# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+
+top_srcdir=../
+top_builddir=../
+include $(top_builddir)Rules.mak
+all: libs
+include Makefile.in
+include $(top_srcdir)Makerules
diff --git a/libintl/Makefile.in b/libintl/Makefile.in
new file mode 100644
index 000000000..445a75853
--- /dev/null
+++ b/libintl/Makefile.in
@@ -0,0 +1,30 @@
+# Makefile for uClibc-ng
+# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+
+subdirs += libintl
+
+CFLAGS-libintl := -DNOT_IN_libc -DIS_IN_libintl $(SSP_ALL_CFLAGS)
+
+libintl_DIR := $(top_srcdir)libintl
+libintl_OUT := $(top_builddir)libintl
+
+libintl_SRC-$(UCLIBC_HAS_LIBINTL) := libintl.c
+
+libintl_SRC := $(addprefix $(libintl_DIR)/,$(libintl_SRC-y))
+libintl_OBJ := $(patsubst $(libintl_DIR)/%.c,$(libintl_OUT)/%.o,$(libintl_SRC))
+
+ifeq ($(DOPIC),y)
+libintl-a-y := $(libintl_OBJ:.o=.os)
+else
+libintl-a-y := $(libintl_OBJ)
+endif
+libintl-so-y := $(libintl_OBJ:.o=.os)
+
+objclean-y += CLEAN_libintl
+
+$(libintl_OUT)/libintl.oS: $(libintl_SRC)
+ $(Q)$(RM) $@
+ $(compile-m)
+
+CLEAN_libintl:
+ $(do_rm) $(addprefix $(libintl_OUT)/*., o os oS a)
diff --git a/libintl/libintl.c b/libintl/libintl.c
new file mode 100644
index 000000000..0851fac1c
--- /dev/null
+++ b/libintl/libintl.c
@@ -0,0 +1,82 @@
+/* Copyright (C) 2003 Manuel Novoa III
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Trivial Stubs, Public Domain.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+char *gettext(const char *msgid)
+{
+ return (char *) msgid;
+}
+
+char *dgettext(const char *domainname, const char *msgid)
+{
+ (void) domainname;
+ return (char *) msgid;
+}
+
+char *dcgettext(const char *domainname, const char *msgid, int category)
+{
+ (void) domainname;
+ (void) category;
+ return (char *) msgid;
+}
+
+char *ngettext(const char *msgid1, const char *msgid2, unsigned long n)
+{
+ return (char *) ((n == 1) ? msgid1 : msgid2);
+}
+
+char *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n)
+{
+ (void) domainname;
+ return (char *) ((n == 1) ? msgid1 : msgid2);
+}
+
+char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n, int category)
+{
+ (void) domainname;
+ (void) category;
+ return (char *) ((n == 1) ? msgid1 : msgid2);
+}
+
+char *textdomain(const char *domainname)
+{
+ static const char default_str[] = "messages";
+
+ if (domainname && *domainname && strcmp(domainname, default_str)) {
+ errno = EINVAL;
+ return NULL;
+ }
+ return (char *) default_str;
+}
+
+char *bindtextdomain(const char *domainname, const char *dirname)
+{
+ static const char dir[] = "/";
+
+ if (!domainname || !*domainname
+ || (dirname && ((dirname[0] != '/') || dirname[1]))
+ ) {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ return (char *) dir;
+}
+
+char *bind_textdomain_codeset(const char *domainname, const char *codeset)
+{
+ if (!domainname || !*domainname || (codeset && strcasecmp(codeset, "UTF-8"))) {
+ errno = EINVAL;
+ }
+ return NULL;
+}
+
+/* trick configure tests checking for gnu libintl, as in the copy included in gdb */
+const char *_nl_expand_alias () { return NULL; }
+int _nl_msg_cat_cntr = 0;