Module Name: src Committed By: mrg Date: Thu Jan 25 02:06:56 UTC 2024
Modified Files: src/sbin/blkdiscard: blkdiscard.c Log Message: determine the tty width instead off writing 100 chars before a new line. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sbin/blkdiscard/blkdiscard.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/blkdiscard/blkdiscard.c diff -u src/sbin/blkdiscard/blkdiscard.c:1.1 src/sbin/blkdiscard/blkdiscard.c:1.2 --- src/sbin/blkdiscard/blkdiscard.c:1.1 Mon Feb 7 09:33:26 2022 +++ src/sbin/blkdiscard/blkdiscard.c Thu Jan 25 02:06:56 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: blkdiscard.c,v 1.1 2022/02/07 09:33:26 mrg Exp $ */ +/* $NetBSD: blkdiscard.c,v 1.2 2024/01/25 02:06:56 mrg Exp $ */ /* * Copyright (c) 2019, 2020, 2022 Matthew R. Green @@ -51,6 +51,7 @@ static bool secure = false; static bool zeroout = false; static char *zeros = NULL; +static unsigned ttywidth = 80; #define FDISCARD_VERSION 20220206u @@ -224,7 +225,9 @@ main(int argc, char *argv[]) size = end_offset; } - if (verbose) + if (verbose) { + struct winsize winsize; + printf("%sgoing to %s on %s from byte %lld for " "%lld bytes, %lld at a time\n", norun ? "not " : "", @@ -233,7 +236,12 @@ main(int argc, char *argv[]) name, (long long)first_byte, (long long)size, (long long)max_per_call); - int loop = 0; + if (ioctl(fileno(stdout), TIOCGWINSZ, &winsize) != -1 && + winsize.ws_col > 1) + ttywidth = winsize.ws_col - 1; + } + + unsigned loop = 0; while (size > 0) { if (size > max_per_call) discard_size = max_per_call; @@ -248,7 +256,7 @@ main(int argc, char *argv[]) if (verbose) { printf("."); fflush(stdout); - if (loop++ > 100) { + if (++loop >= ttywidth) { loop = 0; printf("\n"); }