aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-02 08:22:15 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-02 08:22:15 +0000
commit263ce88f9f2f713273e628bcef64e5f13cdbc2ff (patch)
tree58bdd80c811af5b114684a94d1f772d1c09ccf6c
parent22d508fc275ef1788e4510503217a7cc101bc6dd (diff)
downloadruby-263ce88f9f2f713273e628bcef64e5f13cdbc2ff.tar.gz
encoding.c: preserved encindex
* encoding.c (rb_enc_init): register preserved indexes. * internal.h (ruby_preserved_encindex): move from encoding.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--dmyencoding.c1
-rw-r--r--encoding.c11
-rw-r--r--internal.h15
4 files changed, 24 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f138c4abc..8a60d2ee99 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Jul 2 17:22:12 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * encoding.c (rb_enc_init): register preserved indexes.
+
+ * internal.h (ruby_preserved_encindex): move from encoding.c.
+
Tue Jul 2 11:14:36 2013 Shota Fukumori <sorah@cookpad.com>
Tue Jul 2 11:14:36 2013 Shota Fukumori <sorah@cookpad.com>
diff --git a/dmyencoding.c b/dmyencoding.c
index 1bd1106e69..99a727eb62 100644
--- a/dmyencoding.c
+++ b/dmyencoding.c
@@ -1,2 +1,3 @@
#define NO_LOCALE_CHARMAP 1
+#define NO_PRESERVED_ENCODING 1
#include "encoding.c"
diff --git a/encoding.c b/encoding.c
index 1e875018e4..cc6ce0768a 100644
--- a/encoding.c
+++ b/encoding.c
@@ -519,13 +519,6 @@ rb_encdb_set_unicode(int index)
rb_enc_from_index(index)->flags |= ONIGENC_FLAG_UNICODE;
}
-enum {
- ENCINDEX_ASCII,
- ENCINDEX_UTF_8,
- ENCINDEX_US_ASCII,
- ENCINDEX_BUILTIN_MAX
-};
-
extern rb_encoding OnigEncodingUTF_8;
extern rb_encoding OnigEncodingUS_ASCII;
@@ -541,6 +534,10 @@ rb_enc_init(void)
ENC_REGISTER(UTF_8);
ENC_REGISTER(US_ASCII);
#undef ENC_REGISTER
+#ifndef NO_PRESERVED_ENCODING
+#define ENCDB_REGISTER(name, enc) enc_register_at(ENCINDEX_##enc, name, NULL)
+#undef ENCDB_REGISTER
+#endif
enc_table.count = ENCINDEX_BUILTIN_MAX;
}
diff --git a/internal.h b/internal.h
index 9f49260d6c..cd7117c518 100644
--- a/internal.h
+++ b/internal.h
@@ -196,9 +196,20 @@ PRINTF_ARGS(void ruby_debug_printf(const char*, ...), 1, 2);
void Init_ext(void);
/* encoding.c */
-ID rb_id_encoding(void);
+#ifdef RUBY_ENCODING_H
+enum ruby_preserved_encindex {
+ ENCINDEX_ASCII,
+ ENCINDEX_UTF_8,
+ ENCINDEX_US_ASCII,
-/* encoding.c */
+#ifndef NO_PRESERVED_ENCODING
+ /* preserved indexes */
+#endif
+
+ ENCINDEX_BUILTIN_MAX
+};
+#endif
+ID rb_id_encoding(void);
void rb_gc_mark_encodings(void);
/* error.c */