ref: 0cd7efa2a8aa12782a915c7fcc70da3f7370e9f6
parent: 173ca7a5e90175d12798dbbff8dd0ed75faf3bea
author: Ali Gholami Rudi <ali@rudi.ir>
date: Tue Sep 16 05:41:57 EDT 2014
ren: .br should flush the current partial word This patch handles: abc\c .br def Reported by Carsten Kunze <carsten.kunze@arcor.de>.
--- a/ren.c
+++ b/ren.c
@@ -376,9 +376,18 @@
ren_fmtpop(fmt);
}
+/* pass the given word buffer to the current line buffer (cfmt) */
+static void ren_fmtword(struct wb *wb)
+{
+ while (fmt_word(cfmt, wb))
+ ren_fmtpop(cfmt);
+ wb_reset(wb);
+}
+
/* output current line; returns 1 if triggered a trap */
static int ren_br(void)
{
+ ren_fmtword(cwb);
ren_fmtpopall(cfmt);
while (fmt_br(cfmt))
ren_fmtpop(cfmt);
@@ -963,9 +972,7 @@
/* add cwb (the current word) to cfmt */
if (c == ' ' || c == '\n') {
if (!wb_part(cwb)) { /* not after a \c */
- while (fmt_word(cfmt, cwb))
- ren_fmtpop(cfmt);
- wb_reset(cwb);
+ ren_fmtword(cwb);
if (c == '\n')
while (fmt_newline(cfmt))
ren_fmtpop(cfmt);