[#3292] dir.c --- Dir.chdir error handling — Johan Holmberg <holmberg@...>

55 messages 2004/08/21
[#3350] Re: [PATCH] dir.c --- Dir.chdir error handling — Yukihiro Matsumoto <matz@...> 2004/09/06

Hi, Johan,

[#3351] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/06

Hello.

[#3352] Re: [PATCH] dir.c --- Dir.chdir error handling — Yukihiro Matsumoto <matz@...> 2004/09/06

Hi,

[#3353] Re: [PATCH] dir.c --- Dir.chdir error handling — nobu.nokada@... 2004/09/06

Hi,

[#3354] Re: [PATCH] dir.c --- Dir.chdir error handling — Yukihiro Matsumoto <matz@...> 2004/09/06

Hi,

[#3356] Re: [PATCH] dir.c --- Dir.chdir error handling — nobu.nokada@... 2004/09/07

Hi,

[#3369] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/09

Sorry for late posting. Typhoon striked me.....

[#3372] Re: [PATCH] dir.c --- Dir.chdir error handling — nobu.nokada@... 2004/09/10

Hi,

[#3374] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/10

[#3376] Re: [PATCH] dir.c --- Dir.chdir error handling — nobu.nokada@... 2004/09/10

Hi,

[#3378] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/11

nobu.nokada@softhome.net wrote:

[#3383] Re: [PATCH] dir.c --- Dir.chdir error handling — nobu.nokada@... 2004/09/12

Hi,

[#3384] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/13

[#3385] Re: [PATCH] dir.c --- Dir.chdir error handling — Yukihiro Matsumoto <matz@...> 2004/09/13

Hi,

[#3386] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/13

[#3387] Re: [PATCH] dir.c --- Dir.chdir error handling — ts <decoux@...> 2004/09/13

>>>>> "H" == H Yamamoto <ocean@m2.ccsnet.ne.jp> writes:

[#3392] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/14

[#3393] Re: [PATCH] dir.c --- Dir.chdir error handling — Yukihiro Matsumoto <matz@...> 2004/09/14

Hi,

[#3394] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/14

[#3395] Re: [PATCH] dir.c --- Dir.chdir error handling — ts <decoux@...> 2004/09/14

>>>>> "H" == H Yamamoto <ocean@m2.ccsnet.ne.jp> writes:

[#3399] Re: [PATCH] dir.c --- Dir.chdir error handling — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/09/15

[#3403] Re: [PATCH] dir.c --- Dir.chdir error handling — ts <decoux@...> 2004/09/15

>>>>> "H" == H Yamamoto <ocean@m2.ccsnet.ne.jp> writes:

[#3404] Re: [PATCH] dir.c --- Dir.chdir error handling — Yukihiro Matsumoto <matz@...> 2004/09/15

Hi,

[#3405] Re: [PATCH] dir.c --- Dir.chdir error handling — ts <decoux@...> 2004/09/15

>>>>> "Y" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#3409] Re: [PATCH] dir.c --- Dir.chdir error handling — Yukihiro Matsumoto <matz@...> 2004/09/16

Hi,

[#3416] Re: [PATCH] dir.c --- Dir.chdir error handling — ts <decoux@...> 2004/09/16

>>>>> "Y" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#3303] URGENT: what's the bug reporting system now? — Dave Thomas <dave@...>

Hello!

14 messages 2004/08/25

[syck] non-ascii byte and allocator

From: nobu.nokada@...
Date: 2004-08-12 06:11:15 UTC
List: ruby-core #3280
Hi,

Since July 4, syck fails to load yaml which contains non-ascii
byte (MSB is set).

And I consider that Syck::Parser and Syck::Emitter should
define allocators.

# diff with -w

Index: ext/syck/bytecode.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/syck/bytecode.c,v
retrieving revision 1.6
diff -U2 -p -d -w -r1.6 bytecode.c
--- ext/syck/bytecode.c	15 Jul 2004 05:04:48 -0000	1.6
+++ ext/syck/bytecode.c	12 Aug 2004 02:27:18 -0000
@@ -18,5 +18,5 @@
  * They do my bidding...
  */
-#define YYCTYPE     char
+#define YYCTYPE     unsigned char
 #define YYCURSOR    parser->cursor
 #define YYMARKER    parser->marker
Index: ext/syck/implicit.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/syck/implicit.c,v
retrieving revision 1.16
diff -U2 -p -d -w -r1.16 implicit.c
--- ext/syck/implicit.c	7 Aug 2004 15:34:39 -0000	1.16
+++ ext/syck/implicit.c	12 Aug 2004 02:27:22 -0000
@@ -13,5 +13,5 @@
 #include "syck.h"
 
-#define YYCTYPE     char
+#define YYCTYPE     unsigned char
 #define YYCURSOR    cursor
 #define YYMARKER    marker
Index: ext/syck/rubyext.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/syck/rubyext.c,v
retrieving revision 1.43
diff -U2 -p -d -w -r1.43 rubyext.c
--- ext/syck/rubyext.c	7 Aug 2004 15:34:39 -0000	1.43
+++ ext/syck/rubyext.c	10 Aug 2004 08:36:05 -0000
@@ -780,23 +780,13 @@ syck_mark_parser(parser)
  */
 VALUE 
-syck_parser_new(argc, argv, class)
-    int argc;
-    VALUE *argv;
+syck_parser_s_alloc(class)
 	VALUE class;
 {
-	VALUE pobj, options, init_argv[1];
+    VALUE pobj;
     SyckParser *parser = syck_new_parser();
 
-    rb_scan_args(argc, argv, "01", &options);
 	pobj = Data_Wrap_Struct( class, syck_mark_parser, syck_free_parser, parser );
-
     syck_parser_set_root_on_error( parser, Qnil );
 
-    if ( ! rb_obj_is_instance_of( options, rb_cHash ) )
-    {
-        options = rb_hash_new();
-    }
-	init_argv[0] = options;
-	rb_obj_call_init(pobj, 1, init_argv);
 	return pobj;
 }
@@ -806,7 +796,18 @@ syck_parser_new(argc, argv, class)
  */
 static VALUE
-syck_parser_initialize( self, options )
-    VALUE self, options;
+syck_parser_initialize(argc, argv, self)
+    int argc;
+    VALUE *argv;
+    VALUE self;
+{
+    VALUE options;
+
+    if (rb_scan_args(argc, argv, "01", &options) == 0)
 {
+        options = rb_hash_new();
+    }
+    else {
+        Check_Type(options, T_HASH);
+    }
     rb_ivar_set(self, s_options, options);
 	return self;
@@ -1305,12 +1306,9 @@ syck_mark_emitter(emitter)
  */
 VALUE 
-syck_emitter_new(argc, argv, class)
-    int argc;
-    VALUE *argv;
+syck_emitter_s_alloc(class)
 	VALUE class;
 {
-	VALUE pobj, options, init_argv[1];
+    VALUE pobj;
     SyckEmitter *emitter = syck_new_emitter();
-    rb_scan_args(argc, argv, "01", &options);
 
 	pobj = Data_Wrap_Struct( class, syck_mark_emitter, syck_free_emitter, emitter );
@@ -1319,10 +1317,4 @@ syck_emitter_new(argc, argv, class)
     emitter->bonus = (void *)rb_str_new2( "" );
 
-    if ( ! rb_obj_is_instance_of( options, rb_cHash ) )
-    {
-        options = rb_hash_new();
-    }
-	init_argv[0] = options;
-	rb_obj_call_init(pobj, 1, init_argv);
 	return pobj;
 }
@@ -1332,7 +1324,18 @@ syck_emitter_new(argc, argv, class)
  */
 static VALUE
-syck_emitter_initialize( self, options )
-    VALUE self, options;
+syck_emitter_initialize(argc, argv, self)
+    int argc;
+    VALUE *argv;
+    VALUE self;
+{
+    VALUE options;
+
+    if (rb_scan_args(argc, argv, "01", &options) == 0)
 {
+        options = rb_hash_new();
+    }
+    else {
+        Check_Type(options, T_HASH);
+    }
     rb_ivar_set(self, s_options, options);
 	return self;
@@ -1513,6 +1516,6 @@ Init_syck()
     cParser = rb_define_class_under( rb_syck, "Parser", rb_cObject );
     rb_define_attr( cParser, "options", 1, 1 );
-	rb_define_singleton_method( cParser, "new", syck_parser_new, -1 );
-    rb_define_method(cParser, "initialize", syck_parser_initialize, 1);
+    rb_define_alloc_func( cParser, syck_parser_s_alloc );
+    rb_define_method(cParser, "initialize", syck_parser_initialize, -1);
     rb_define_method(cParser, "load", syck_parser_load, -1);
     rb_define_method(cParser, "load_documents", syck_parser_load_documents, -1);
@@ -1569,6 +1572,6 @@ Init_syck()
      */
     cEmitter = rb_define_class_under( rb_syck, "Emitter", rb_cObject );
-	rb_define_singleton_method( cEmitter, "new", syck_emitter_new, -1 );
-    rb_define_method( cEmitter, "initialize", syck_emitter_initialize, 1 );
+    rb_define_alloc_func( cEmitter, syck_emitter_s_alloc );
+    rb_define_method( cEmitter, "initialize", syck_emitter_initialize, -1 );
     rb_define_method( cEmitter, "level", syck_emitter_level_m, 0 );
     rb_define_method( cEmitter, "write", syck_emitter_write_m, 1 );
Index: ext/syck/token.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/syck/token.c,v
retrieving revision 1.33
diff -U2 -p -d -w -r1.33 token.c
--- ext/syck/token.c	7 Aug 2004 15:34:39 -0000	1.33
+++ ext/syck/token.c	12 Aug 2004 02:26:59 -0000
@@ -21,5 +21,5 @@
  * They do my bidding...
  */
-#define YYCTYPE     char
+#define YYCTYPE     unsigned char
 #define YYCURSOR    parser->cursor
 #define YYMARKER    parser->marker


-- 
Nobu Nakada

In This Thread

Prev Next