Changeset 1707

Show
Ignore:
Timestamp:
01/09/06 17:48:25
Author:
miyagawa
Message:

merge changes on YAML repository
Reverted integer/float handling to scalar_none

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • JSON-Syck/trunk/Makefile.PL

    r1706 r1707  
    66inc_paths   '.'; 
    77c_files     (glob("*.c"), (-e 'Syck.c' ? () : 'Syck.c')); 
     8optimize_flags '-g3'; 
    89 
    910can_cc or die "This module requires a C compiler"; 
  • JSON-Syck/trunk/Syck.xs

    r1706 r1707  
    7575} 
    7676 
     77void perl_syck_error_handler(SyckParser *p, char *msg) { 
     78    croak(form( "JSON::Syck parser (line %d, column %d): %s",  
     79        p->linect + 1, 
     80        p->cursor - p->lineptr, 
     81        msg )); 
     82} 
     83 
    7784static SV * Load(char *s) { 
    7885    SV *obj; 
     
    8188    syck_parser_str_auto(parser, s, NULL); 
    8289    syck_parser_handler(parser, perl_syck_parser_handler); 
    83     syck_parser_error_handler(parser, NULL); 
     90    syck_parser_error_handler(parser, perl_syck_error_handler); 
    8491    syck_parser_implicit_typing(parser, 1); 
    8592    syck_parser_taguri_expansion(parser, 0); 
     
    103110 
    104111    if (sv == &PL_sv_undef) { 
    105         return syck_emit_scalar(e, "string", scalar_2quote, 0, 0, 0, "~", 1); 
     112        return syck_emit_scalar(e, "string", scalar_none, 0, 0, 0, "~", 1); 
    106113    } 
    107114     
     
    145152        case SVt_PVLV: { 
    146153            if (sv_len(sv) > 0) { 
    147                 syck_emit_scalar(e, OBJOF("string"), scalar_2quote, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
     154                syck_emit_scalar(e, OBJOF("string"), scalar_none, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
    148155            } 
    149156            else { 
     
    157164        } 
    158165        case SVt_PVAV: { 
    159             syck_emit_seq(e, OBJOF("array"), seq_none); 
     166            syck_emit_seq(e, OBJOF("array"), seq_inline); 
    160167            *tag = '\0'; 
    161168            len = av_len((AV*)sv) + 1; 
     
    193200        case SVt_PVCV: { 
    194201            /* XXX TODO XXX */ 
    195             syck_emit_scalar(e, OBJOF("string"), scalar_2quote, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
     202            syck_emit_scalar(e, OBJOF("string"), scalar_none, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
    196203            break; 
    197204        } 
     
    199206        case SVt_PVFM: { 
    200207            /* XXX TODO XXX */ 
    201             syck_emit_scalar(e, OBJOF("string"), scalar_2quote, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
     208            syck_emit_scalar(e, OBJOF("string"), scalar_none, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
    202209            break; 
    203210        } 
    204211        case SVt_PVIO: { 
    205             syck_emit_scalar(e, OBJOF("string"), scalar_2quote, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
    206             break; 
    207         } 
    208     } 
    209     syck_emitter_flush( e, 0 ); 
     212            syck_emit_scalar(e, OBJOF("string"), scalar_none, 0, 0, 0, SvPV_nolen(sv), sv_len(sv)); 
     213            break; 
     214        } 
     215    } 
    210216cleanup: 
    211217    *tag = '\0'; 
    212218} 
    213219 
    214 SV* Dump(SV *sv) { 
     220SV* _Dump(SV *sv) { 
    215221    struct emitter_xtra *bonus; 
    216222    SV* out = newSVpvn("", 0); 
     
    227233    perl_syck_mark_emitter( emitter ); 
    228234    syck_emit( emitter, (st_data_t)sv ); 
     235    syck_emitter_flush( emitter, 1 ); 
     236    syck_emitter_flush( emitter, 0 ); 
     237    Safefree(bonus->tag); 
    229238    syck_free_emitter( emitter ); 
    230     Safefree(bonus->tag); 
    231239 
    232240    return out; 
     
    242250 
    243251SV * 
    244 Dump (sv) 
     252_Dump (sv) 
    245253        SV *    sv 
  • JSON-Syck/trunk/lib/JSON/Syck.pm

    r1706 r1707  
    1010 
    1111__PACKAGE__->bootstrap; 
     12 
     13sub Dump { 
     14    my $json = JSON::Syck::_Dump(@_); 
     15    chomp($json); 
     16    $json; 
     17} 
    1218 
    13191;