* 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/branches/ruby_1_8@6721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagai 2004-07-30 07:13:55 +00:00
parent 5ec2678fb1
commit d6f13c158d
3 changed files with 32 additions and 4 deletions

View file

@ -1,3 +1,14 @@
Fri Jul 30 16:10:54 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* 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 <matz@ruby-lang.org> Wed Jul 28 18:59:17 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* lib/cgi.rb (CGI::initialize): remove at_exit code for CGI_PARAMS * lib/cgi.rb (CGI::initialize): remove at_exit code for CGI_PARAMS

View file

@ -3524,7 +3524,12 @@ lib_toUTF8_core(ip_obj, src, encodename)
StringValue(encodename); StringValue(encodename);
encoding = Tcl_GetEncoding(interp, RSTRING(encodename)->ptr); encoding = Tcl_GetEncoding(interp, RSTRING(encodename)->ptr);
if (encoding == (Tcl_Encoding)NULL) { 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); encoding = Tcl_GetEncoding(interp, RSTRING(encodename)->ptr);
if (encoding == (Tcl_Encoding)NULL) { 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; encodename = Qnil;
*/
rb_raise(rb_eArgError, "unknown encoding name '%s'",
RSTRING(encodename)->ptr);
} }
} }

View file

@ -1943,12 +1943,19 @@ if (/^(8\.[1-9]|9\.|[1-9][0-9])/ =~ Tk::TCL_VERSION && !Tk::JAPANIZED_TK)
tk_call('encoding', 'system', enc) tk_call('encoding', 'system', enc)
end 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) TkCore::INTERP.__invoke('encoding', 'convertfrom', enc, str)
end end
alias encoding_convert_from encoding_convertfrom 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) TkCore::INTERP.__invoke('encoding', 'convertto', enc, str)
end end
alias encoding_convert_to encoding_convertto alias encoding_convert_to encoding_convertto