Changeset 237

Show
Ignore:
Timestamp:
02/14/2008 10:50:18 (9 months ago)
Author:
jgarber
Message:

Fixed extended block paragraph. Broke extended block code and quotes, but that will come.

Location:
branches/superredcloth/ext/superredcloth_scan
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/superredcloth/ext/superredcloth_scan/superredcloth.h

    r228 r237  
    2626#define PASS2(H, A, T) rb_str_append(H, red_pass2(rb_formatter, regs, ID2SYM(rb_intern(#A)), ID2SYM(rb_intern(#T)))) 
    2727#define ADD_BLOCK()    rb_str_append(html, red_block(rb_formatter, regs, block)); CLEAR(block); regs = rb_hash_new() 
     28#define ADD_EXTENDED_BLOCK()    rb_str_append(html, red_block(rb_formatter, regs, block)); CLEAR(block); 
    2829#define ADD_BLOCKCODE()    rb_str_append(html, red_blockcode(rb_formatter, regs, block)); CLEAR(block); regs = rb_hash_new() 
    2930#define ASET(T, V)     rb_hash_aset(regs, ID2SYM(rb_intern(#T)), rb_str_new2(#V)); 
  • branches/superredcloth/ext/superredcloth_scan/superredcloth_scan.rl

    r233 r237  
    2020 
    2121  action notextile { rb_str_append(html, rb_funcall(rb_formatter, rb_intern("ignore"), 1, regs)); } 
    22   action extend { plain_block = rb_hash_aref(regs, ID2SYM(rb_intern("type"))); } 
    23   action no_extend { plain_block = rb_str_new2("p"); } 
     22  action extend { extend = 1; } 
     23  action no_extend { extend = 0; } 
     24  action add_unless_extended { if (extend == 0) { ADD_BLOCK(); fgoto main; } else { ADD_EXTENDED_BLOCK(); } } 
    2425 
    2526  # blocks 
     
    3334  block_start = ( btype A C :> "." ( "." %extend | "" %no_extend ) " "+ ) ; 
    3435  block_end = ( CRLF{2} | EOF ); 
     36  extended_block_end = block_end . block_start >A @{ p = reg - 1; }; 
    3537  ftype = ( "fn" >A %{ STORE(type) } digit+ >A %{ STORE(id) } ) ; 
    3638  footnote_start = ( ftype A C :> dotspace ) ; 
     
    8082 
    8183  block := |* 
    82     block_end       { ADD_BLOCK(); fgoto main; }; 
     84    block_end => add_unless_extended; 
     85    extended_block_end { ADD_BLOCK(); fgoto main; }; 
    8386    default => cat; 
    8487  *|; 
     
    136139  int list_continue = 0; 
    137140  VALUE plain_block = rb_str_new2("p"); 
     141  int extend = 0; 
    138142  char listm[10] = ""; 
    139143