summaryrefslogtreecommitdiff
path: root/jni/ruby/enc/encinit.c.erb
diff options
context:
space:
mode:
authorJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-16 18:49:26 +0900
committerJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-30 00:39:06 +0900
commitfcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch)
tree64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/enc/encinit.c.erb
Fresh start
Diffstat (limited to 'jni/ruby/enc/encinit.c.erb')
-rw-r--r--jni/ruby/enc/encinit.c.erb37
1 files changed, 37 insertions, 0 deletions
diff --git a/jni/ruby/enc/encinit.c.erb b/jni/ruby/enc/encinit.c.erb
new file mode 100644
index 0000000..70c2a19
--- /dev/null
+++ b/jni/ruby/enc/encinit.c.erb
@@ -0,0 +1,37 @@
+/* Copyright 2012 Google Inc. Some Rights Reserved.
+ * Author: yugui@google.com (Yugui Sonoda)
+ */
+#include <stdio.h>
+
+#define init(func, name) { \
+ extern void func(void); \
+ ruby_init_ext(name, func); \
+}
+
+#define init_enc(name) init(Init_##name, "enc/"#name".so")
+#define init_trans(name) init(Init_trans_##name, "enc/trans/"#name".so")
+#define provide(func, name) { \
+ extern void Init_##func(void); \
+ Init_##func(); \
+ rb_provide(name".so"); \
+}
+
+void ruby_init_ext(const char *name, void (*init)(void));
+void rb_provide(const char *feature);
+
+void
+Init_enc(void)
+{
+ provide(encdb, "encdb");
+% ENCS.each do |enc|
+% next if enc == 'encdb'
+ init_enc(<%= enc %>);
+% end
+
+ provide(transdb, "trans/transdb");
+% TRANS.each do |trans|
+% next if trans == 'trans/transdb'
+ init_trans(<%= File.basename trans %>);
+% end
+}
+<%# vim: set ft=eruby sw=2 : -%>