From b02b4bb04831671c77dbd55eaf7e77e1629c03b5 Mon Sep 17 00:00:00 2001 From: why Date: Sun, 16 May 2004 16:09:41 +0000 Subject: * lib/yaml.rb: removed fallback to pure Ruby parser. * lib/yaml/baseemitter.rb (indent_text): was forcing a mod value of zero at times, which kept some blocks from getting indentation. * lib/yaml/baseemitter.rb (node_text): rewriting folded scalars. * ext/syck/syck.h: reports style of scalars now, be they plain, block single-, or double-quoted. * ext/syck/syck.c: ditto. * ext/syck/gram.c: ditto. * ext/syck/node.c: ditto. * ext/syck/token.c: ditto. * ext/syck/rubyext.c (yaml_org_handler): symbols loaded only if scalar style is plain. * ext/syck/rubyext.c (yaml_org_handler): some empty strings were loaded as symbols. * test/yaml/test_yaml.rb (test_perl_regexp): updated test to match new regexp serialization. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/syck/rubyext.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'ext/syck/rubyext.c') diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c index d7219ef26a..3cd63eef49 100644 --- a/ext/syck/rubyext.c +++ b/ext/syck/rubyext.c @@ -15,33 +15,25 @@ typedef struct RVALUE { union { +#if 0 struct { unsigned long flags; /* always 0 for freed obj */ struct RVALUE *next; } free; +#endif struct RBasic basic; struct RObject object; struct RClass klass; - struct RFloat flonum; - struct RString string; + /*struct RFloat flonum;*/ + /*struct RString string;*/ struct RArray array; - struct RRegexp regexp; + /*struct RRegexp regexp;*/ struct RHash hash; - struct RData data; + /*struct RData data;*/ struct RStruct rstruct; - struct RBignum bignum; - struct RFile file; -#if 0 - struct RNode node; - struct RMatch match; - struct RVarmap varmap; - struct SCOPE scope; -#endif + /*struct RBignum bignum;*/ + /*struct RFile file;*/ } as; -#ifdef GC_DEBUG - char *file; - int line; -#endif } RVALUE; typedef struct { @@ -558,7 +550,9 @@ yaml_org_handler( n, ref ) { obj = rb_funcall( cDefaultKey, s_new, 0 ); } - else if ( strncmp( n->data.str->ptr, ":", 1 ) == 0 ) + else if ( n->data.str->style == scalar_plain && + n->data.str->len > 1 && + strncmp( n->data.str->ptr, ":", 1 ) == 0 ) { obj = rb_funcall( oDefaultLoader, s_transfer, 2, rb_str_new2( "ruby/sym" ), -- cgit v1.2.3