diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-02 10:05:19 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-02 10:05:19 +0000 |
commit | f8fc9136223c83c2791566d3efa52843f89aa127 (patch) | |
tree | 166e0d413670f87d7594cda8bf9d8f504eb75b94 | |
parent | b6fe3dae4de7002c2f58bc9cfb993033dff7927d (diff) |
some patches
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | ToDo | 2 | ||||
-rw-r--r-- | lib/base64.rb | 26 | ||||
-rw-r--r-- | parse.y | 2 |
4 files changed, 18 insertions, 24 deletions
@@ -2,6 +2,10 @@ Thu Apr 2 18:31:46 1998 Yukihiro Matsumoto <matz@netlab.co.jp> * eval.c (obj_call_init): every object call `initialize'. +Wed Apr 1 08:51:53 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp> + + * parse.y (stmt): UNTIL_MOD should be for stmt, not only for expr. + Wed Apr 1 01:20:31 1998 Yukihiro Matsumoto <matz@netlab.co.jp> * object.c (true_and): boolean operators &, | and ^. @@ -28,16 +32,14 @@ Mon Mar 30 11:12:29 1998 Yukihiro Matsumoto <matz@netlab.co.jp> * eval.c (Init_eval): `class_eval': alias to the module_eval. -Mon Mar 30 14:07:07 1998 Yukihiro Matsumoto <matz@netlab.co.jp> - - * string.c (str_intern): typo in error message. - -Mon Mar 30 14:06:19 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp> +Mon Mar 30 18:50:42 1998 Tadayoshi Funaba <tadf@kt.rim.or.jp> * string.c (str_capitalize_bang): did not check string modification. * string.c (str_delete_bang): wrong conversion. + * string.c (str_intern): typo in error message. + Mon Mar 30 01:44:13 1998 Yukihiro Matsumoto <matz@netlab.co.jp> * eval.c (obj_instance_eval): accepts block as evaluation body. @@ -1,3 +1,5 @@ +* call `initialize' for built-in classes. +* 0 as flase value * non-blocking open/write for thread * package or access control for global variables * format diff --git a/lib/base64.rb b/lib/base64.rb index 96208a634d..8b75ddaa9e 100644 --- a/lib/base64.rb +++ b/lib/base64.rb @@ -1,3 +1,5 @@ +require "kconv" + def decode64(str) string = '' for line in str.split("\n") @@ -10,30 +12,18 @@ def decode64(str) return string end -def j2e(str) - while str =~ /\033\$B([^\033]*)\033\(B/ - s = $1 - pre, post = $`, $' - s.gsub!(/./) { |ch| - (ch[0]|0x80).chr - } - str = pre + s + post - end -# str.gsub!(/\033\$B([^\033]*)\033\(B/) { -# $1.gsub!(/./) { |ch| -# (ch[0]|0x80).chr -# } -# } - str -end - def decode_b(str) str.gsub!(/=\?ISO-2022-JP\?B\?([!->@-~]+)\?=/i) { decode64($1) } + str = Kconv::toeuc(str) + str.gsub!(/=\?SHIFT_JIS\?B\?([!->@-~]+)\?=/i) { + decode64($1) + } + str = Kconv::toeuc(str) str.gsub!(/\n/, ' ') str.gsub!(/\0/, '') - j2e(str) + str end def encode64(bin) @@ -332,7 +332,7 @@ stmt : iterator iter_do_block $$ = NEW_WHILE(cond($3), $1, 1); } } - | expr kUNTIL_MOD expr + | stmt kUNTIL_MOD expr { value_expr($3); if (nd_type($1) == NODE_BEGIN) { |