about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-05-17 18:27:56 -0400
committerJune McEnroe <june@causal.agency>2021-05-17 18:27:56 -0400
commitc7ae65ee36b0c4f2ad3c7ff730bc879c628ea163 (patch)
treee0ea1e28bd7bf10a2260740c8130b254159a8876
parentAllocate 1 + ParamCap matches in unscoop (diff)
downloadlitterbox-c7ae65ee36b0c4f2ad3c7ff730bc879c628ea163.tar.gz
litterbox-c7ae65ee36b0c4f2ad3c7ff730bc879c628ea163.zip
Print paths to stdout and progress to stderr
-rw-r--r--unscoop.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/unscoop.c b/unscoop.c
index 4779278..e7e706d 100644
--- a/unscoop.c
+++ b/unscoop.c
@@ -388,7 +388,7 @@ int main(int argc, char *argv[]) {
 
 	size_t sizeTotal = 0;
 	size_t sizeRead = 0;
-	size_t sizePercent = -1;
+	size_t sizePercent = 0;
 	struct {
 		regmatch_t match[ParamCap];
 	} *paths = calloc(argc, sizeof(*paths));
@@ -411,6 +411,8 @@ int main(int argc, char *argv[]) {
 	size_t cap = 0;
 	for (int i = optind; i < argc; ++i) {
 		if (!argv[i]) continue;
+		printf("%s\n", argv[i]);
+		fprintf(stderr, " %3zu%%\r", sizePercent);
 
 		FILE *file = fopen(argv[i], "r");
 		if (!file) err(EX_NOINPUT, "%s", argv[i]);
@@ -433,8 +435,7 @@ int main(int argc, char *argv[]) {
 			sizeRead += len;
 			if (100 * sizeRead / sizeTotal != sizePercent) {
 				sizePercent = 100 * sizeRead / sizeTotal;
-				printf("\r%3zu%%", sizePercent);
-				fflush(stdout);
+				fprintf(stderr, " %3zu%%\r", sizePercent);
 			}
 		}
 		if (ferror(file)) err(EX_IOERR, "%s", argv[i]);
@@ -442,7 +443,7 @@ int main(int argc, char *argv[]) {
 		fclose(file);
 		dbExec(SQL(COMMIT TRANSACTION;));
 	}
-	printf("\n");
+	fprintf(stderr, "\n");
 
 	dbClose();
 }