commit 714601b29d6ed52aaf111cde34c524bec997a555
parent 0df09d5ba02a46b3886989f11dac060fb53ba619
Author: Tait Hoyem <code@tait.tech>
Date:   Mon, 14 Sep 2020 22:36:15 +0000
ed: Add bytecount print to 'w' command
Diffstat:
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/TODO b/TODO
@@ -55,7 +55,6 @@ ed
     line
     .
     1g/^$/p
-* w command doesn't print byte count.
 * Editing huge files doesn't work well.
 
 printf
diff --git a/ed.c b/ed.c
@@ -623,14 +623,18 @@ static void
 dowrite(const char *fname, int trunc)
 {
 	FILE *fp;
+	size_t bytecount = 0;
 	int i, line;
 
 	if (!(fp = fopen(fname, (trunc) ? "w" : "a")))
 		error("input/output error");
 
 	line = curln;
-	for (i = line1; i <= line2; ++i)
-		fputs(gettxt(i), fp);
+	for (i = line1; i <= line2; ++i) {
+		gettxt(i);
+		bytecount += text.siz - 1;
+		fputs(text.str, fp);
+	}
 
 	curln = line2;
 	if (fclose(fp))
@@ -638,6 +642,7 @@ dowrite(const char *fname, int trunc)
 	strcpy(savfname, fname);
 	modflag = 0;
 	curln = line;
+	printf("%zu\n", bytecount);
 }
 
 static void