ruby-changes:25049
From: nobu <ko1@a...>
Date: Sat, 6 Oct 2012 09:42:44 +0900 (JST)
Subject: [ruby-changes:25049] nobu:r37101 (trunk): encoding.c: unicode_p
nobu 2012-10-06 09:42:14 +0900 (Sat, 06 Oct 2012) New Revision: 37101 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37101 Log: encoding.c: unicode_p * enc/encdb.c, enc/utf_16_32.h (ENC_DUMMY_UNICODE): endian-less wide UTF encodings are dummy but Unicode. * encoding.c (rb_encdb_set_unicode): set Unicode flag. * template/encdb.h.tmpl: allow ENC_DUMMY variants. Modified files: trunk/ChangeLog trunk/enc/encdb.c trunk/enc/utf_16_32.h trunk/encoding.c trunk/template/encdb.h.tmpl Index: encoding.c =================================================================== --- encoding.c (revision 37100) +++ encoding.c (revision 37101) @@ -32,6 +32,7 @@ int rb_encdb_replicate(const char *name, const char *orig); int rb_encdb_dummy(const char *name); int rb_encdb_alias(const char *alias, const char *orig); +void rb_encdb_set_unicode(int index); #pragma GCC visibility pop #endif @@ -512,6 +513,12 @@ return enc_alias(alias, idx); } +void +rb_encdb_set_unicode(int index) +{ + rb_enc_from_index(index)->flags |= ONIGENC_FLAG_UNICODE; +} + enum { ENCINDEX_ASCII, ENCINDEX_UTF_8, Index: ChangeLog =================================================================== --- ChangeLog (revision 37100) +++ ChangeLog (revision 37101) @@ -1,3 +1,14 @@ +Sat Oct 6 09:42:04 2012 Nobuyoshi Nakada <nobu@r...> + + * enc/encdb.c, enc/utf_16_32.h (ENC_DUMMY_UNICODE): endian-less wide + UTF encodings are dummy but Unicode. + + * encoding.c (rb_encdb_set_unicode): set Unicode flag. + + * template/encdb.h.tmpl: allow ENC_DUMMY variants. + + * encoding.c (rb_enc_unicode_p): oniguruma provides Unicode flag. + Fri Oct 5 17:18:42 JST 2012 TAKANO Mitsuhiro <tak@n...> * template/Doxyfile.tmpl: remove SHOW_DIRECTORIES and Index: enc/encdb.c =================================================================== --- enc/encdb.c (revision 37100) +++ enc/encdb.c (revision 37101) @@ -14,11 +14,13 @@ int rb_encdb_dummy(const char *name); void rb_encdb_declare(const char *name); void rb_enc_set_base(const char *name, const char *orig); +void rb_encdb_set_unicode(int index); #define ENC_REPLICATE(name, orig) rb_encdb_replicate((name), (orig)) #define ENC_ALIAS(name, orig) rb_encdb_alias((name), (orig)) #define ENC_DUMMY(name) rb_encdb_dummy(name) #define ENC_DEFINE(name) rb_encdb_declare(name) #define ENC_SET_BASE(name, orig) rb_enc_set_base((name), (orig)) +#define ENC_DUMMY_UNICODE(name) rb_encdb_set_unicode(ENC_DUMMY(name)) void Init_encdb(void) Index: enc/utf_16_32.h =================================================================== --- enc/utf_16_32.h (revision 37100) +++ enc/utf_16_32.h (revision 37101) @@ -1,4 +1,5 @@ #include "regenc.h" /* dummy for unsupported, statefull encoding */ -ENC_DUMMY("UTF-16"); -ENC_DUMMY("UTF-32"); +#define ENC_DUMMY_UNICODE(name) ENC_DUMMY(name) +ENC_DUMMY_UNICODE("UTF-16"); +ENC_DUMMY_UNICODE("UTF-32"); Index: template/encdb.h.tmpl =================================================================== --- template/encdb.h.tmpl (revision 37100) +++ template/encdb.h.tmpl (revision 37101) @@ -61,7 +61,7 @@ raise ArgumentError, '%s:%d: ENC_ALIAS: %s is not defined yet. (alias %s)' % [fn, $., $2, $1] unless defs[$2.upcase] - when /^ENC_DUMMY\(\s*"([^"]+)"/ + when /^ENC_DUMMY\w*\(\s*"([^"]+)"/ count += 1 else next -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/