diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-09-12 21:22:59 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-09-12 21:22:59 +0900 |
| commit | 231a1d68b061d80ac2ccdb7dd2e9637adb22692b (patch) | |
| tree | 6e0e650bafde1081fb827fb58b74fe281ccd36e6 | |
| parent | 6bbdb97e7533d1fcf2bc5a2a20b42d1c0e5a9bf3 (diff) | |
| download | mruby-231a1d68b061d80ac2ccdb7dd2e9637adb22692b.tar.gz mruby-231a1d68b061d80ac2ccdb7dd2e9637adb22692b.zip | |
Remove `$/` from mruby implementation.
1. `$/` and other Perl-ish global variables are not defined in ISO.
2. The current Ruby policy do not encourage those variables.
3. Those variables has global effect and can cause troubles.
| -rw-r--r-- | mrbgems/mruby-io/mrblib/io.rb | 6 | ||||
| -rw-r--r-- | mrbgems/mruby-io/src/io.c | 3 | ||||
| -rw-r--r-- | src/string.c | 5 |
3 files changed, 5 insertions, 9 deletions
diff --git a/mrbgems/mruby-io/mrblib/io.rb b/mrbgems/mruby-io/mrblib/io.rb index f3c4de6fd..a6e3ef3de 100644 --- a/mrbgems/mruby-io/mrblib/io.rb +++ b/mrbgems/mruby-io/mrblib/io.rb @@ -226,12 +226,12 @@ class IO end end - def readline(arg = $/, limit = nil) + def readline(arg = "\n", limit = nil) case arg when String rs = arg when Fixnum - rs = $/ + rs = "\n" limit = arg else raise ArgumentError @@ -242,7 +242,7 @@ class IO end if rs == "" - rs = $/ + $/ + rs = "\n\n" end array = [] diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c index eb9c4097b..784cdaf49 100644 --- a/mrbgems/mruby-io/src/io.c +++ b/mrbgems/mruby-io/src/io.c @@ -1328,7 +1328,4 @@ mrb_init_io(mrb_state *mrb) mrb_define_method(mrb, io, "closed?", mrb_io_closed, MRB_ARGS_NONE()); /* 15.2.20.5.2 */ mrb_define_method(mrb, io, "pid", mrb_io_pid, MRB_ARGS_NONE()); /* 15.2.20.5.2 */ mrb_define_method(mrb, io, "fileno", mrb_io_fileno, MRB_ARGS_NONE()); - - - mrb_gv_set(mrb, mrb_intern_cstr(mrb, "$/"), mrb_str_new_cstr(mrb, "\n")); } diff --git a/src/string.c b/src/string.c index c1c28ee8b..35c7f8e7c 100644 --- a/src/string.c +++ b/src/string.c @@ -1529,9 +1529,8 @@ mrb_str_chomp_bang(mrb_state *mrb, mrb_value str) * str.chomp(separator="\n") => new_str * * Returns a new <code>String</code> with the given record separator removed - * from the end of <i>str</i> (if present). If <code>$/</code> has not been - * changed from the default Ruby record separator, then <code>chomp</code> also - * removes carriage return characters (that is it will remove <code>\n</code>, + * from the end of <i>str</i> (if present). <code>chomp</code> also removes + * carriage return characters (that is it will remove <code>\n</code>, * <code>\r</code>, and <code>\r\n</code>). * * "hello".chomp #=> "hello" |
