summaryrefslogtreecommitdiff
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
commit6259c87d02fce0a77ac90b6786ed1f2bc5baea32 (patch)
tree941121f72d4e32b756acdc1c2a1c4f7a0cb849a3 /include
parent52b3e3b97f42498c1f30984cb1e174422c235c80 (diff)
* 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: svn+ssh://ci.ruby-lang.org/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 1b1cf33d58..8bd73fb61f 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 9789d31ecc..1fd48baaba 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))