diff options
author | kouji <kouji@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-12 12:44:08 +0000 |
---|---|---|
committer | kouji <kouji@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-12-12 12:44:08 +0000 |
commit | 02a37bee67dd3a38fe5fa143fd27e59b563ebb0c (patch) | |
tree | d3c8142a75d97b428ea440ede19b90e3cea40d46 /ext | |
parent | 58740ef8816557481c752889392b4ee148fe94aa (diff) |
* ext/readline/readline.c: r20662 reverted.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r-- | ext/readline/readline.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/ext/readline/readline.c b/ext/readline/readline.c index 90fd8a9496..6100633f20 100644 --- a/ext/readline/readline.c +++ b/ext/readline/readline.c @@ -63,6 +63,11 @@ static int (*history_get_offset_func)(int); static char **readline_attempted_completion_function(const char *text, int start, int end); +#define OutputStringValue(str) do {\ + SafeStringValue(str);\ + str = rb_str_conv_enc(str, rb_enc_get(str), rb_locale_encoding());\ +} while (0)\ + #ifdef HAVE_RL_EVENT_HOOK #define BUSY_WAIT 0 @@ -214,7 +219,7 @@ readline_readline(int argc, VALUE *argv, VALUE self) rb_secure(4); if (rb_scan_args(argc, argv, "02", &tmp, &add_hist) > 0) { - ExportStringValue(tmp); + OutputStringValue(tmp); prompt = RSTRING_PTR(tmp); } @@ -568,7 +573,7 @@ readline_s_set_completion_append_character(VALUE self, VALUE str) rl_completion_append_character = '\0'; } else { - ExportStringValue(str); + OutputStringValue(str); if (RSTRING_LEN(str) == 0) { rl_completion_append_character = '\0'; } else { @@ -631,7 +636,7 @@ readline_s_set_basic_word_break_characters(VALUE self, VALUE str) static char *basic_word_break_characters = NULL; rb_secure(4); - ExportStringValue(str); + OutputStringValue(str); if (basic_word_break_characters == NULL) { basic_word_break_characters = ALLOC_N(char, RSTRING_LEN(str) + 1); @@ -694,7 +699,7 @@ readline_s_set_completer_word_break_characters(VALUE self, VALUE str) static char *completer_word_break_characters = NULL; rb_secure(4); - ExportStringValue(str); + OutputStringValue(str); if (completer_word_break_characters == NULL) { completer_word_break_characters = ALLOC_N(char, RSTRING_LEN(str) + 1); @@ -755,7 +760,7 @@ readline_s_set_basic_quote_characters(VALUE self, VALUE str) static char *basic_quote_characters = NULL; rb_secure(4); - ExportStringValue(str); + OutputStringValue(str); if (basic_quote_characters == NULL) { basic_quote_characters = ALLOC_N(char, RSTRING_LEN(str) + 1); @@ -819,7 +824,7 @@ readline_s_set_completer_quote_characters(VALUE self, VALUE str) static char *completer_quote_characters = NULL; rb_secure(4); - ExportStringValue(str); + OutputStringValue(str); if (completer_quote_characters == NULL) { completer_quote_characters = ALLOC_N(char, RSTRING_LEN(str) + 1); @@ -881,7 +886,7 @@ readline_s_set_filename_quote_characters(VALUE self, VALUE str) static char *filename_quote_characters = NULL; rb_secure(4); - ExportStringValue(str); + OutputStringValue(str); if (filename_quote_characters == NULL) { filename_quote_characters = ALLOC_N(char, RSTRING_LEN(str) + 1); @@ -972,7 +977,7 @@ hist_set(VALUE self, VALUE index, VALUE str) rb_secure(4); i = NUM2INT(index); - ExportStringValue(str); + OutputStringValue(str); if (i < 0) { i += history_length; } @@ -993,7 +998,7 @@ static VALUE hist_push(VALUE self, VALUE str) { rb_secure(4); - ExportStringValue(str); + OutputStringValue(str); add_history(RSTRING_PTR(str)); return self; } @@ -1006,7 +1011,7 @@ hist_push_method(int argc, VALUE *argv, VALUE self) rb_secure(4); while (argc--) { str = *argv++; - ExportStringValue(str); + OutputStringValue(str); add_history(RSTRING_PTR(str)); } return self; |