summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--ext/syck/rubyext.c15
-rw-r--r--lib/open3.rb7
-rw-r--r--object.c2
4 files changed, 25 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 052bd8f89e..000a317e43 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu Dec 16 00:57:30 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * ext/syck/rubyext.c (rb_syck_io_str_read): [ruby-core:03973]
+
Thu Dec 16 00:43:29 2004 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
* lib/drb/drb.rb: changed default binded address family to use an
@@ -20,6 +24,10 @@ Wed Dec 15 17:47:17 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
* lib/webrick/config.rb (WEBrick::Config::FileHandler):
default value of :NondisclosureName is [".ht*", "*~"].
+Wed Dec 15 16:10:23 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * object.c (rb_obj_id_obsolete): warn always.
+
Wed Dec 15 15:31:02 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* lib/set.rb (Set#==): [ruby-dev:25206]
diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c
index c54deea618..cd813132c2 100644
--- a/ext/syck/rubyext.c
+++ b/ext/syck/rubyext.c
@@ -138,6 +138,7 @@ rb_syck_io_str_read( char *buf, SyckIoStr *str, long max_size, long skip )
VALUE str2 = rb_funcall2(src, s_read, 1, &n);
if (!NIL_P(str2))
{
+ StringValue(str2);
len = RSTRING(str2)->len;
memcpy( buf + skip, RSTRING(str2)->ptr, len );
}
@@ -821,9 +822,11 @@ syck_parser_bufsize_set( self, size )
{
SyckParser *parser;
- Data_Get_Struct(self, SyckParser, parser);
if ( rb_respond_to( size, s_to_i ) ) {
- parser->bufsize = NUM2INT(rb_funcall(size, s_to_i, 0));
+ int size = NUM2INT(rb_funcall(size, s_to_i, 0));
+
+ Data_Get_Struct(self, SyckParser, parser);
+ parser->bufsize = size;
}
return self;
}
@@ -856,10 +859,10 @@ syck_parser_load(argc, argv, self)
volatile VALUE hash; /* protect from GC */
rb_scan_args(argc, argv, "11", &port, &proc);
- Data_Get_Struct(self, SyckParser, parser);
input = rb_hash_aref( rb_attr_get( self, s_options ), sym_input );
model = rb_hash_aref( rb_attr_get( self, s_options ), sym_model );
+ Data_Get_Struct(self, SyckParser, parser);
syck_set_model( parser, input, model );
bonus.taint = syck_parser_assign_io(parser, port);
@@ -887,10 +890,10 @@ syck_parser_load_documents(argc, argv, self)
volatile VALUE hash;
rb_scan_args(argc, argv, "1&", &port, &proc);
- Data_Get_Struct(self, SyckParser, parser);
input = rb_hash_aref( rb_attr_get( self, s_options ), sym_input );
model = rb_hash_aref( rb_attr_get( self, s_options ), sym_model );
+ Data_Get_Struct(self, SyckParser, parser);
syck_set_model( parser, input, model );
bonus.taint = syck_parser_assign_io(parser, port);
@@ -1374,8 +1377,8 @@ syck_emitter_write_m( self, str )
{
SyckEmitter *emitter;
- Data_Get_Struct(self, SyckEmitter, emitter);
StringValue(str);
+ Data_Get_Struct(self, SyckEmitter, emitter);
syck_emitter_write( emitter, RSTRING(str)->ptr, RSTRING(str)->len );
return self;
}
@@ -1389,8 +1392,8 @@ syck_emitter_simple_write( self, str )
{
SyckEmitter *emitter;
- Data_Get_Struct(self, SyckEmitter, emitter);
StringValue(str);
+ Data_Get_Struct(self, SyckEmitter, emitter);
syck_emitter_simple( emitter, RSTRING(str)->ptr, RSTRING(str)->len );
return self;
}
diff --git a/lib/open3.rb b/lib/open3.rb
index 407cd7662c..1ddd213f61 100644
--- a/lib/open3.rb
+++ b/lib/open3.rb
@@ -9,6 +9,13 @@
# or
# include Open3
# stdin, stdout, stderr = popen3('nroff -man')
+#
+# popen3 can also take a block which will receive stdin, stdout and stderr
+# as parameters. This ensures stdin, stdout and stderr are closed once
+# the block exits.
+#
+# Such as
+# Open3.popen3('nroff -man') { |stdin, stdout, stderr| ... }
module Open3
#[stdin, stdout, stderr] = popen3(command);
diff --git a/object.c b/object.c
index 3d77c36a1b..308e1dc8d7 100644
--- a/object.c
+++ b/object.c
@@ -149,7 +149,7 @@ VALUE
rb_obj_id_obsolete(obj)
VALUE obj;
{
- rb_warning("Object#id will be deprecated; use Object#object_id");
+ rb_warn("Object#id will be deprecated; use Object#object_id");
return rb_obj_id(obj);
}