From bfab0945123e20061de6094f5b6dcfc017351167 Mon Sep 17 00:00:00 2001 From: nagai Date: Fri, 30 Jul 2004 07:13:55 +0000 Subject: [PATCH] * ext/tcltklib/tcltklib.c(lib_fromUTF8_core): raise ArgumentError when the unknown encoding name is given. * ext/tcltklib/tcltklib.c(lib_toUTF8_core): ditto. * ext/tk/lib/tk.rb(Tk::Encoding.encoding_convertfrom): bug fix. * ext/tk/lib/tk.rb(Tk::Encoding.encoding_convertto): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 11 +++++++++++ ext/tcltklib/tcltklib.c | 14 ++++++++++++-- ext/tk/lib/tk.rb | 11 +++++++++-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1d990d5929..1996a77b68 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Fri Jul 30 16:10:54 2004 Hidetoshi NAGAI + + * ext/tcltklib/tcltklib.c (lib_fromUTF8_core): raise ArgumentError when + the unknown encoding name is given. + + * ext/tcltklib/tcltklib.c (lib_toUTF8_core): ditto. + + * ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertfrom): bug fix. + + * ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertto): ditto. + Wed Jul 28 18:59:17 2004 Yukihiro Matsumoto * lib/cgi.rb (CGI::initialize): remove at_exit code for CGI_PARAMS diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c index adbe151f54..2792e53388 100644 --- a/ext/tcltklib/tcltklib.c +++ b/ext/tcltklib/tcltklib.c @@ -3524,7 +3524,12 @@ lib_toUTF8_core(ip_obj, src, encodename) StringValue(encodename); encoding = Tcl_GetEncoding(interp, RSTRING(encodename)->ptr); if (encoding == (Tcl_Encoding)NULL) { - rb_warning("unknown encoding name '%s'", RSTRING(encodename)->ptr); + /* + rb_warning("unknown encoding name '%s'", + RSTRING(encodename)->ptr); + */ + rb_raise(rb_eArgError, "unknown encoding name '%s'", + RSTRING(encodename)->ptr); } } @@ -3667,8 +3672,13 @@ lib_fromUTF8_core(ip_obj, src, encodename) encoding = Tcl_GetEncoding(interp, RSTRING(encodename)->ptr); if (encoding == (Tcl_Encoding)NULL) { - rb_warning("unknown encoding name '%s'", RSTRING(encodename)->ptr); + /* + rb_warning("unknown encoding name '%s'", + RSTRING(encodename)->ptr); encodename = Qnil; + */ + rb_raise(rb_eArgError, "unknown encoding name '%s'", + RSTRING(encodename)->ptr); } } diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb index af9c63f72a..e91ba92df1 100644 --- a/ext/tk/lib/tk.rb +++ b/ext/tk/lib/tk.rb @@ -1943,12 +1943,19 @@ if (/^(8\.[1-9]|9\.|[1-9][0-9])/ =~ Tk::TCL_VERSION && !Tk::JAPANIZED_TK) tk_call('encoding', 'system', enc) end - def encoding_convertfrom(str, enc=None) + def encoding_convertfrom(str, enc=nil) + # str must be a Tcl's internal string expression in enc. + # the return value is a UTF-8 string. + enc = encoding_system unless enc TkCore::INTERP.__invoke('encoding', 'convertfrom', enc, str) end alias encoding_convert_from encoding_convertfrom - def encoding_convertto(str, enc=None) + def encoding_convertto(str, enc=nil) + # str must be a UTF-8 string. + # The return value is a Tcl's internal string expression in enc. + # To get an usual enc string, use Tk.fromUTF8(ret_val, enc). + enc = encoding_system unless enc TkCore::INTERP.__invoke('encoding', 'convertto', enc, str) end alias encoding_convert_to encoding_convertto