summaryrefslogtreecommitdiff
path: root/src/locale/__lctrans.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-07-26 02:34:09 -0400
committerRich Felker <dalias@aerifal.cx>2014-07-26 02:34:09 -0400
commit41421d6beb3f17aa8838f7cdaad9cd16b4c451f6 (patch)
tree9bf941192997e02121a3e8de767007d1ebf54693 /src/locale/__lctrans.c
parent6cb4f91db7a5dc3bca63037ddc5f998a08dc3fb0 (diff)
downloadmusl-41421d6beb3f17aa8838f7cdaad9cd16b4c451f6.tar.gz
implement mo file string lookup for translations
the core is based on a binary search; hash table is not used. both native and reverse-endian mo files are supported. all offsets read from the mapped mo file are checked against the mapping size to prevent the possibility of reads outside the mapping. this commit has no observable effects since there are not yet any callers to the message translation code.
Diffstat (limited to 'src/locale/__lctrans.c')
-rw-r--r--src/locale/__lctrans.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/locale/__lctrans.c b/src/locale/__lctrans.c
new file mode 100644
index 00000000..2769c084
--- /dev/null
+++ b/src/locale/__lctrans.c
@@ -0,0 +1,20 @@
+#include <locale.h>
+#include "locale_impl.h"
+#include "libc.h"
+
+const char *dummy(const char *msg, const struct __locale_map *lm)
+{
+ return msg;
+}
+
+weak_alias(dummy, __lctrans_impl);
+
+const char *__lctrans(const char *msg, const struct __locale_map *lm)
+{
+ return __lctrans_impl(msg, lm);
+}
+
+const char *__lctrans_cur(const char *msg)
+{
+ return __lctrans_impl(msg, CURRENT_LOCALE->cat[LC_MESSAGES-2]);
+}