static void gml_ehp_esf_common( const gmltag * entry, e_tags t ) { char * p; tag_cb * wk; entry = entry; if( nest_cb->c_tag != t ) { // unexpected exxx tag if( nest_cb->c_tag == t_NONE ) { g_err_tag_no( str_tags[t + 1] );// no exxx expected } else { g_err_tag_nest( str_tags[nest_cb->c_tag + 1] ); // exxx expected } } else { wk = nest_cb; nest_cb = nest_cb->prev; add_tag_cb_to_pool( wk ); g_curr_font = nest_cb->font; scan_err = false; p = scan_start; if( *p == '.' ) p++; // over '.' if( *p ) { process_text( p, g_curr_font ); } if( !ProcFlags.concat && (input_cbs->fmflags & II_eol) ) { scr_process_break(); // ensure line is output } } scan_start = scan_stop + 1; }
void gml_exl_common( const gmltag * entry, e_tags t ) { char * p; tag_cb * wk; if( nest_cb->c_tag == t_LP ) { // terminate :LP if active end_lp(); } if( nest_cb->c_tag != t ) { // unexpected exxx tag if( nest_cb->c_tag == t_NONE ) { g_err_tag_no( str_tags[t + 1] );// no exxx expected, no tag active } else { g_err_tag_nest( str_tags[nest_cb->c_tag + 1] ); // exxx expected } } else { g_cur_left = nest_cb->lm; g_page_right = nest_cb->rm; wk = nest_cb; nest_cb = nest_cb->prev; add_tag_cb_to_pool( wk ); g_curr_font = nest_cb->font; g_cur_h_start = g_cur_left; scan_err = false; p = scan_start; if( *p == '.' ) p++; // over '.' if( *p ) { gml_pc( NULL ); } else { ProcFlags.skips_valid = false; // force use of post_skip with following text element } } ProcFlags.need_li_lp = false; // :LI or :LP no longer needed scan_start = scan_stop + 1; }
void gml_exl_common( const gmltag * entry, e_tags t ) { char * p; tag_cb * wk; entry = entry; if( nest_cb->c_tag == t_LP ) { // terminate :LP if active end_lp(); } if( nest_cb->c_tag != t ) { // unexpected exxx tag if( nest_cb->c_tag == t_NONE ) { g_err_tag_no( str_tags[t + 1] );// no exxx expected, no tag active } else { g_err_tag_nest( str_tags[nest_cb->c_tag + 1] ); // exxx expected } } else { g_cur_left = nest_cb->lm; g_cur_h_start = nest_cb->lm; g_page_right = nest_cb->rm; wk = nest_cb; nest_cb = nest_cb->prev; add_tag_cb_to_pool( wk ); g_curr_font = nest_cb->font; scan_err = false; p = scan_start; if( *p == '.' ) p++; // over '.' if( *p ) { process_text( p, g_curr_font ); } } ProcFlags.need_li_lp = false; // :LI or :LP no longer needed scan_start = scan_stop + 1; }