ed: Add bytecount print to 'w' command

This commit is contained in:
Tait Hoyem 2020-09-14 22:36:15 +00:00 committed by Michael Forney
parent 0df09d5ba0
commit 714601b29d
2 changed files with 7 additions and 3 deletions

1
TODO
View File

@ -55,7 +55,6 @@ ed
line line
. .
1g/^$/p 1g/^$/p
* w command doesn't print byte count.
* Editing huge files doesn't work well. * Editing huge files doesn't work well.
printf printf

9
ed.c
View File

@ -623,14 +623,18 @@ static void
dowrite(const char *fname, int trunc) dowrite(const char *fname, int trunc)
{ {
FILE *fp; FILE *fp;
size_t bytecount = 0;
int i, line; int i, line;
if (!(fp = fopen(fname, (trunc) ? "w" : "a"))) if (!(fp = fopen(fname, (trunc) ? "w" : "a")))
error("input/output error"); error("input/output error");
line = curln; line = curln;
for (i = line1; i <= line2; ++i) for (i = line1; i <= line2; ++i) {
fputs(gettxt(i), fp); gettxt(i);
bytecount += text.siz - 1;
fputs(text.str, fp);
}
curln = line2; curln = line2;
if (fclose(fp)) if (fclose(fp))
@ -638,6 +642,7 @@ dowrite(const char *fname, int trunc)
strcpy(savfname, fname); strcpy(savfname, fname);
modflag = 0; modflag = 0;
curln = line; curln = line;
printf("%zu\n", bytecount);
} }
static void static void