diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 |
commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /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.erb | 37 |
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 : -%> |