From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/enc/encinit.c.erb | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 jni/ruby/enc/encinit.c.erb (limited to 'jni/ruby/enc/encinit.c.erb') 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 + +#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 : -%> -- cgit v1.2.3