VOID r_x_eblock() { /* internal declarations */ register LN *ln; /* fast pointer */ /* start of routine */ if (--St_c_cblk <= 0) { /* end of blocks. If at least one line finished ** in the LN structures, print it out */ St_c_cblk = 0; St_l_number = St_top_l_number; for(ln=St_c_lntop; (ln!=NULL) && (ln->ln_started!=LN_NONE); ln=ln->ln_below) { if (ln->ln_started==LN_NEW) { /* at least one line finished. Print it out. */ r_x_newline(1); break; } } } return; }
VOID r_do_page() { /* internal declarations */ bool no_write = FALSE; /* true if St_no_write TRUE ** on entry. */ DB_DATA_VALUE ffdbv; DB_TEXT_STRING *fftext; char ffbuf[20]; /* start of routine */ if (St_p_length <=0) { /* never do page breaks on 0 length page */ return; } St_in_pbreak = TRUE; if (St_no_write) { /* nothing written yet */ r_set_dflt(); no_write = TRUE; /* need to know later */ } /* note: r_set_dflt sets St_no_write to FALSE */ /* temporarily save the current environment */ r_switch(); r_ln_clr(Ptr_pln_top); /* clear out page buffers */ r_x_tab(St_p_lm,B_ABSOLUTE); /* set up error flag switch */ Cact_tname = NAM_FOOTER; if (!no_write) { r_x_tcmd((Ptr_pag_brk)->brk_footer); if ((St_c_cblk>0) || (St_c_lntop->ln_started!=LN_NONE)) { /* something left in the line buffers. Write out */ St_c_cblk = 0; r_x_newline(1); } /* Bug # 3902 */ if (St_ff_on && !St_to_term ) r_wrt(En_rf_unit, ERx("\f"), 1); else if( St_to_term && St_ff_on) { ffdbv.db_data = (PTR) ffbuf; ffdbv.db_length = 1; ffdbv.db_prec = 0; ffdbv.db_datatype = DB_LTXT_TYPE; fftext = (DB_TEXT_STRING *) ffbuf; STcopy(ERx("\f"), (PTR)fftext->db_t_text); fftext->db_t_count = 1; r_x_print( &ffdbv, ffdbv.db_length, FALSE); } } /* determine the next page number */ if (St_nxt_page >= 0) { St_p_number = St_nxt_page; St_nxt_page = -1; } else if (!no_write) { St_p_number++; } St_l_number = 1; St_pos_number = 1; /* if the St_do_phead is set to FALSE (at the very end of the ** report, don't put out a header for the next page */ if (St_do_phead == TRUE) { Cact_tname =NAM_HEADER; r_x_tcmd((Ptr_pag_brk)->brk_header); } St_in_pbreak = FALSE; if( St_adjusting) { r_stp_adjust(); /* in case anything is there */ } if ((St_c_cblk>0) || (St_c_lntop->ln_started!=LN_NONE)) { /* something left in the line buffers. Write out */ St_c_cblk = 0; r_x_newline(1); } /* get back the old environment */ r_switch(); r_x_tab(St_left_margin,B_ABSOLUTE); /* go to report margin */ return; }