commit 9781959581c4c150decd0c7cbc325da23eb009d3
Author: Roberto E. Vargas Caballero <[email protected]>
AuthorDate: Sun Mar 4 17:08:14 2018 +0100
Commit: sin <[email protected]>
CommitDate: Tue Jul 3 09:31:46 2018 +0100
Fix copy()
Copy was using directly the line numbers and incrementing them
without calling nextln(). It also didn't worry about how
line numbers are modified when we insert new lines.
diff --git a/ed.c b/ed.c
index 70dd2a5..13c41c6 100644
--- a/ed.c
+++ b/ed.c
@@ -854,14 +854,19 @@ scroll(int num)
static void
copy(int where)
{
- int i;
if (!line1)
error("incorrect address");
curln = where;
- for (i = line1; i <= line2; ++i)
- inject(gettxt(i), AFTER);
+ while (line1 <= line2) {
+ inject(gettxt(line1), AFTER);
+ if (line2 >= curln)
+ line2 = nextln(line2);
+ line1 = nextln(line1);
+ if (line1 >= curln)
+ line1 = nextln(line1);
+ }
}
static void