mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* io.c (next_argv): warn always for stdin on inplace edit mode.
* io.c (read_all): need to check string value. * io.c (argf_read): allow ARGF.read(nil). [ruby-dev:22433] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d1fd7bdf48
commit
23f79ec282
2 changed files with 36 additions and 12 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,10 +1,18 @@
|
||||||
|
Sat Dec 27 00:44:00 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* io.c (next_argv): warn always for stdin on inplace edit mode.
|
||||||
|
|
||||||
|
* io.c (read_all): need to check string value.
|
||||||
|
|
||||||
|
* io.c (argf_read): allow ARGF.read(nil). [ruby-dev:22433]
|
||||||
|
|
||||||
Fri Dec 26 23:02:09 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
|
Fri Dec 26 23:02:09 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
* io.c (rb_f_backquote): need not to check nil result.
|
* io.c (rb_f_backquote): need not to check nil result.
|
||||||
[ruby-core:02078]
|
[ruby-core:02078]
|
||||||
|
|
||||||
* io.c (rb_io_getline): should return nil on eof, even when nil rs is
|
* io.c (rb_io_getline): should return nil when read_all gives
|
||||||
specified. [ruby-core:02077]
|
empty string, even when nil rs is specified. [ruby-core:02077]
|
||||||
|
|
||||||
Fri Dec 26 18:33:54 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Fri Dec 26 18:33:54 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
|
36
io.c
36
io.c
|
@ -787,6 +787,7 @@ read_all(fptr, siz, str)
|
||||||
str = rb_tainted_str_new(0, siz);
|
str = rb_tainted_str_new(0, siz);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
StringValue(str);
|
||||||
rb_str_resize(str, siz);
|
rb_str_resize(str, siz);
|
||||||
}
|
}
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
@ -1027,8 +1028,8 @@ rb_io_getline(rs, fptr)
|
||||||
|
|
||||||
rb_io_check_readable(fptr);
|
rb_io_check_readable(fptr);
|
||||||
if (NIL_P(rs)) {
|
if (NIL_P(rs)) {
|
||||||
if (feof(fptr->f)) return Qnil;
|
|
||||||
str = read_all(fptr, 0, Qnil);
|
str = read_all(fptr, 0, Qnil);
|
||||||
|
if (RSTRING(str)->len == 0) return Qnil;
|
||||||
}
|
}
|
||||||
else if (rs == rb_default_rs) {
|
else if (rs == rb_default_rs) {
|
||||||
return rb_io_getline_fast(fptr, '\n');
|
return rb_io_getline_fast(fptr, '\n');
|
||||||
|
@ -2992,23 +2993,22 @@ next_argv()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
next_p = -1;
|
next_p = -1;
|
||||||
current_file = rb_stdin;
|
|
||||||
filename = rb_str_new2("-");
|
|
||||||
}
|
}
|
||||||
init_p = 1;
|
init_p = 1;
|
||||||
gets_lineno = 0;
|
gets_lineno = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
retry:
|
|
||||||
if (next_p == 1) {
|
if (next_p == 1) {
|
||||||
next_p = 0;
|
next_p = 0;
|
||||||
|
retry:
|
||||||
if (RARRAY(rb_argv)->len > 0) {
|
if (RARRAY(rb_argv)->len > 0) {
|
||||||
filename = rb_ary_shift(rb_argv);
|
filename = rb_ary_shift(rb_argv);
|
||||||
fn = StringValuePtr(filename);
|
fn = StringValuePtr(filename);
|
||||||
if (strlen(fn) == 1 && fn[0] == '-') {
|
if (strlen(fn) == 1 && fn[0] == '-') {
|
||||||
current_file = rb_stdin;
|
current_file = rb_stdin;
|
||||||
if (ruby_inplace_mode) {
|
if (ruby_inplace_mode) {
|
||||||
rb_warn("Can't do inplace edit for stdio");
|
rb_warn("Can't do inplace edit for stdio; skipping");
|
||||||
|
goto retry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -3079,12 +3079,17 @@ next_argv()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
init_p = 0;
|
init_p = 0;
|
||||||
if (ruby_inplace_mode) {
|
|
||||||
rb_stdout = orig_stdout;
|
|
||||||
}
|
|
||||||
return Qfalse;
|
return Qfalse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (next_p == -1) {
|
||||||
|
current_file = rb_stdin;
|
||||||
|
filename = rb_str_new2("-");
|
||||||
|
if (ruby_inplace_mode) {
|
||||||
|
rb_warn("Can't do inplace edit for stdio");
|
||||||
|
rb_stdout = orig_stdout;
|
||||||
|
}
|
||||||
|
}
|
||||||
return Qtrue;
|
return Qtrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3828,11 +3833,22 @@ argf_read(argc, argv)
|
||||||
VALUE tmp, str;
|
VALUE tmp, str;
|
||||||
long len = 0;
|
long len = 0;
|
||||||
|
|
||||||
if (argc == 1) len = NUM2LONG(argv[0]);
|
if (argc == 1 && !NIL_P(argv[0]))
|
||||||
|
len = NUM2LONG(argv[0]);
|
||||||
str = Qnil;
|
str = Qnil;
|
||||||
|
|
||||||
retry:
|
retry:
|
||||||
if (!next_argv()) return str;
|
if (!next_argv()) {
|
||||||
|
if (NIL_P(str)) {
|
||||||
|
VALUE length;
|
||||||
|
|
||||||
|
rb_scan_args(argc, argv, "02", &length, &str);
|
||||||
|
if (NIL_P(str)) return rb_str_new(0,0);
|
||||||
|
StringValue(str);
|
||||||
|
rb_str_resize(str,0);
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
if (TYPE(current_file) != T_FILE) {
|
if (TYPE(current_file) != T_FILE) {
|
||||||
tmp = argf_forward();
|
tmp = argf_forward();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue