mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/syck/emitter.c (syck_scan_scalar): prevent indicators from
appearing alone or at the end of plain scalars. [ruby-core:5826] * ext/syck/emitter.c (syck_emit_scalar): treat typed scalar nodes as complex keys. * lib/syck.h: version 0.60. * lib/yaml/basenode.rb (YAML::BaseNode#at): transform keys during key searches. * ext/syck/rubyext.c: loading of binary-typed nodes. prevent emission of plain strings that look like symbols, but which aren't. * ext/syck/emitter.c (syck_emit): passing an int* value to the long* parameter causes unaligned access on LP64 systems. [ruby-dev:27161] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
34b3f481dc
commit
d578f9d32e
10 changed files with 395 additions and 356 deletions
|
|
@ -226,12 +226,17 @@ syck_yaml2byte(char *yamlstr)
|
|||
syck_parser_implicit_typing( parser, 1 );
|
||||
syck_parser_taguri_expansion( parser, 1 );
|
||||
oid = syck_parse( parser );
|
||||
syck_lookup_sym( parser, oid, (char **)&sav );
|
||||
|
||||
ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 );
|
||||
ret[0] = '\0';
|
||||
strcat( ret, "D\n" );
|
||||
strcat( ret, sav->buffer );
|
||||
if ( syck_lookup_sym( parser, oid, (char **)&sav ) == 1 ) {
|
||||
ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 );
|
||||
ret[0] = '\0';
|
||||
strcat( ret, "D\n" );
|
||||
strcat( ret, sav->buffer );
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = NULL;
|
||||
}
|
||||
|
||||
syck_free_parser( parser );
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue