summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-10-20 08:05:44 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-10-20 08:05:44 +0000
commit058836a711eeaf1b8f0fe4e1e3b266938c9d4689 (patch)
tree941121f72d4e32b756acdc1c2a1c4f7a0cb849a3 /include
parent7a19c1b34db6e47acfdcc7391f336b33718b5d58 (diff)
downloadruby-058836a711eeaf1b8f0fe4e1e3b266938c9d4689.tar.gz
ruby-058836a711eeaf1b8f0fe4e1e3b266938c9d4689.tar.xz
ruby-058836a711eeaf1b8f0fe4e1e3b266938c9d4689.zip
* include/ruby/ruby.h (ExportStringValue): new macro to convert
string in internal encoding to external to export. * string.c (rb_str_export): new function to do conversion to external encoding. * ext/sdbm/init.c: encoding conversion support. * ext/dbm/dbm.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r--include/ruby/encoding.h3
-rw-r--r--include/ruby/ruby.h6
2 files changed, 8 insertions, 1 deletions
diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h
index 1b1cf33d5..8bd73fb61 100644
--- a/include/ruby/encoding.h
+++ b/include/ruby/encoding.h
@@ -92,7 +92,8 @@ char* rb_enc_nth(const char*, const char*, int, rb_encoding*);
VALUE rb_obj_encoding(VALUE);
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc);
-VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *enc);
+VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *);
+VALUE rb_str_export_to_enc(VALUE, rb_encoding *);
/* index -> rb_encoding */
rb_encoding* rb_enc_from_index(int idx);
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 9789d31ec..1fd48baab 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -373,6 +373,12 @@ void rb_check_safe_str(VALUE);
/* obsolete macro - use SafeStringValue(v) */
#define Check_SafeStr(v) rb_check_safe_str((VALUE)(v))
+VALUE rb_str_export(VALUE);
+#define ExportStringValue(v) do {\
+ SafeStringValue(v);\
+ (v) = rb_str_export(v);\
+} while (0)
+
VALUE rb_get_path(VALUE);
#define FilePathValue(v) ((v) = rb_get_path(v))