From 5d2d9d540d84761cf11648ea42a6413001a5d7b9 Mon Sep 17 00:00:00 2001
From: "Roberto E. Vargas Caballero" <k0ga@shike2.com>
Date: Thu, 10 Sep 2015 11:53:11 +0200
Subject: [PATCH] Fix copy of line with len = 0

When a line has no any character linelen is 0, so last = &term.line[y][MIN(lastx, linelen-1)]
generated a pointer to the end of the previous line. The best thing we can do in this case
is to add a newline, because we don't have a glyph to print (and consult its state of
wrapping).
---
 st.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/st.c b/st.c
index 530d7e4..bd8b815 100644
--- a/st.c
+++ b/st.c
@@ -1004,7 +1004,10 @@ getsel(void)
 
 	/* append every set & selected glyph to the selection */
 	for (y = sel.nb.y; y <= sel.ne.y; y++) {
-		linelen = tlinelen(y);
+		if ((linelen = tlinelen(y)) == 0) {
+			*ptr++ = '\n';
+			continue;
+		}
 
 		if (sel.type == SEL_RECTANGULAR) {
 			gp = &term.line[y][sel.nb.x];
-- 
2.20.1