- for (i = 0, ripoff_sp = ripoff_stack;
- ripoff_sp->line && (i < (int) N_RIPS);
- ripoff_sp++, i++) {
-
- T(("ripping off line %d at %s", i,
- ((ripoff_sp->line < 0)
- ? "bottom"
- : "top")));
-
- SP->_rippedoff[i] = ripoff_stack[i];
- if (ripoff_sp->hook) {
- int count = (ripoff_sp->line < 0) ? -ripoff_sp->line : ripoff_sp->line;
-
- SP->_rippedoff[i].w = newwin(count,
- scolumns,
- ((ripoff_sp->line < 0)
- ? SP->_lines_avail - count
- : 0),
- 0);
- if (SP->_rippedoff[i].w != 0)
- SP->_rippedoff[i].hook(SP->_rippedoff[i].w, scolumns);
- else
+ for (rop = safe_ripoff_stack;
+ rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS;
+ rop++) {
+
+ /* If we must simulate soft labels, grab off the line to be used.
+ We assume that we must simulate, if it is none of the standard
+ formats (4-4 or 3-2-3) for which there may be some hardware
+ support. */
+ if (rop->hook == _nc_slk_initialize)
+ if (!(num_labels <= 0 || !SLK_STDFMT(slk_format)))
+ continue;
+ if (rop->hook) {
+ int count;
+ WINDOW *w;
+
+ count = (rop->line < 0) ? -rop->line : rop->line;
+ T(("ripping off %i lines at %s", count,
+ ((rop->line < 0)
+ ? "bottom"
+ : "top")));
+
+ w = newwin(count, scolumns,
+ ((rop->line < 0)
+ ? SP->_lines_avail - count
+ : 0),
+ 0);
+ if (w) {
+ rop->win = w;
+ rop->hook(w, scolumns);
+ } else {