From 6259c87d02fce0a77ac90b6786ed1f2bc5baea32 Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 20 Oct 2008 08:05:44 +0000 Subject: * 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 --- include/ruby/encoding.h | 3 ++- include/ruby/ruby.h | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'include') 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)) -- cgit v1.2.3