[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]