shithub: neatroff

Download patch

ref: 7a335e6d95e877ab0c3a91e3efd9cabcc61e020b
parent: e5418ab62baa2d9c7e21e83cf2be34184e532ba4
author: Ali Gholami Rudi <ali@rudi.ir>
date: Thu Apr 3 20:35:49 EDT 2014

ren: end-of-sentence spacing when followed by font/size changes

The adj_nonl() command was added to prevent newlines for lines
containing only commands that do not print anything (like font or size
changes).  This patch makes sure render() does not call adj_nonl()
unnecessarily; otherwise, it may inhibit the insertion of a space
after end-of-sentence characters (when followed by a line break
starting with \f escape sequence).

--- a/ren.c
+++ b/ren.c
@@ -951,6 +951,9 @@
 			adj_swid(cadj, spacewid(n_f, n_s));
 			if (!wb_part(wb)) {	/* not after a \c */
 				adj_wb(cadj, wb);
+				/* wb contains only commands like \f */
+				if (!ren_nl && wb_empty(wb))
+					adj_nonl(cadj);
 				if (c == '\n')
 					adj_nl(cadj);
 				else
@@ -974,8 +977,6 @@
 		if (c != ' ') {
 			ren_back(c);
 			ren_char(wb, ren_next, ren_back);
-			if (c != '\n' && wb_empty(wb))
-				adj_nonl(cadj);
 		}
 		ren_nl = c == '\n';
 		c = ren_next();