From b3d7273dc1f7e29a759de8dd88cd00f99a66bed1 Mon Sep 17 00:00:00 2001 From: naruse Date: Tue, 4 Aug 2009 00:50:59 +0000 Subject: Add functions and macros for second encoding definitions. * encoding.c (rb_enc_set_base): Add for setting base encoding with their names. this is internal function. * template/encdb.h.tmpl: specify ENC_SET_BASE for second encodings in each encoding files. * enc/encdb.c (rb_enc_set_base): add a declaration. (ENC_SET_BASE): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- encoding.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'encoding.c') diff --git a/encoding.c b/encoding.c index 5e54ce7218..49326b6625 100644 --- a/encoding.c +++ b/encoding.c @@ -275,6 +275,18 @@ set_base_encoding(int index, rb_encoding *base) return enc; } +/* for encdb.h + * Set base encoding for encodings which are not replicas + * but not in their own files. + */ +void +rb_enc_set_base(const char *name, const char *orig) +{ + int idx = rb_enc_registered(name); + int origidx = rb_enc_registered(orig); + set_base_encoding(idx, rb_enc_from_index(origidx)); +} + int rb_enc_replicate(const char *name, rb_encoding *encoding) { -- cgit v1.2.3