ref: 046f8565a5a858c2201b4fcfef4daa65842d2b54
parent: c10361cc297cc032c392dba0f66482f8f53ef03b
author: Ali Gholami Rudi <ali@rudi.ir>
date: Wed Nov 28 16:28:16 EST 2012
tr: start a new page when passing \n(.p
--- a/ren.c
+++ b/ren.c
@@ -199,11 +199,19 @@
*s = '\0';
}
+static void ren_ne(int n)
+{
+ if (n_nl + n > n_p)
+ ren_page(n_pg + 1);
+}
+
static void down(int n)
{
n_d += n;
n_nl = n_d;
- printf("v%d\n", n);
+ if (n_nl <= n_p)
+ printf("v%d\n", n);
+ ren_ne(0);
}
static void ren_br(int sp, int adj)
@@ -212,9 +220,11 @@
buf[buflen] = '\0';
if (nwords) {
adjust(out, wid > LL ? n_ad : adj);
+ ren_ne(n_v);
down(n_v);
printf("H%d\n", n_o + n_i);
output(out);
+ ren_ne(n_v);
}
if (sp)
down(sp);
--- a/tr.c
+++ b/tr.c
@@ -84,6 +84,12 @@
n_v = tr_int(args[1], n_v, 'p');
}
+static void tr_pl(char **args)
+{
+ if (args[1])
+ n_p = tr_int(args[1], n_p, 'v');
+}
+
static void tr_ds(char **args)
{
if (!args[2])
@@ -264,6 +270,7 @@
{"ll", tr_ll},
{"na", tr_na},
{"nr", tr_nr, mkargs_reg1},
+ {"pl", tr_pl},
{"ps", tr_ps},
{"sp", tr_sp},
{"vs", tr_vs},