shithub: neatroff

Download patch

ref: 9cdccf860421be862b85c4ff1124a37fca9a1ad8
parent: 0d12a19bb62e6bde5b0a215ec0a03b6db420d1d8
author: Ali Gholami Rudi <ali@rudi.ir>
date: Wed May 15 17:28:11 EDT 2013

ren: use sbuf_printf() when possible and clean up ren_line()

--- a/ren.c
+++ b/ren.c
@@ -129,7 +129,6 @@
 /* when nodiv, do not append .sp to diversions */
 static void ren_sp(int n, int nodiv)
 {
-	char cmd[32];
 	ren_first();
 	/* ignore .sp without arguments when reading diversions */
 	if (!n && ren_div && !n_u)
@@ -139,8 +138,7 @@
 		n_h = n_d;
 	if (cdiv && !nodiv) {
 		sbuf_putnl(&cdiv->sbuf);
-		sprintf(cmd, "%csp %du\n", c_cc, n ? n : n_v);
-		sbuf_append(&cdiv->sbuf, cmd);
+		sbuf_printf(&cdiv->sbuf, "%csp %du\n", c_cc, n ? n : n_v);
 	} else {
 		n_nl = n_d;
 	}
@@ -207,25 +205,21 @@
 /* flush the given line and send it to out.c */
 static void ren_line(char *s, int w, int ad, int ll, int li, int lt)
 {
-	int ljust = 0;
-	char cmd[32];
-	int llen = ll - (lt >= 0 ? lt : li);
+	int ljust = lt >= 0 ? lt : li;
+	int llen = ll - ljust;
 	n_n = w;
 	if (ad == AD_C)
-		ljust = llen > w ? (llen - w) / 2 : 0;
+		ljust += llen > w ? (llen - w) / 2 : 0;
 	if (ad == AD_R)
-		ljust = llen - w;
+		ljust += llen - w;
 	if (cdiv) {
 		if (cdiv->dl < w)
 			cdiv->dl = w;
-		ljust += lt >= 0 ? lt : li;
-		if (ljust) {
-			sprintf(cmd, "%ch'%du'", c_ec, ljust);
-			sbuf_append(&cdiv->sbuf, cmd);
-		}
+		if (ljust)
+			sbuf_printf(&cdiv->sbuf, "%ch'%du'", c_ec, ljust);
 		sbuf_append(&cdiv->sbuf, s);
 	} else {
-		out("H%d\n", n_o + (lt >= 0 ? lt : li) + ljust);
+		out("H%d\n", n_o + ljust);
 		out("V%d\n", n_d);
 		out_line(s);
 	}
@@ -352,7 +346,7 @@
 
 void tr_bp(char **args)
 {
-	char br[] = {c_cc, 'b', 'r', '\n'};
+	char br[8] = {c_cc, 'b', 'r', '\n'};
 	if (!cdiv && (args[1] || !n_ns)) {
 		if (!bp_force)
 			push_ne();