43 Commits
Author SHA1 Message Date
Andrew Wood 1422edeb6a New format string "%{progress-conemu}" to emit OSC 9;4 (ConEmu progress bar) codes (#202). 2026-07-30 23:04:53 +01:00
Andrew Wood 905894f294 Rename the new benchmark script. 2026-05-29 22:17:27 +01:00
Andrew Wood b99026d7d7 Add a benchmark script to measure transfer rate and CPU usage of various options (#198). 2026-05-27 23:27:56 +01:00
Wolfgang Hoschek e7d188ac65 fix: avoid EOF hang on unread pipe output (#189)
At EOF, pv waits for bytes already written to an output pipe to be consumed before finishing. If the downstream reader exits without reading those bytes, the pipe can keep reporting unread data forever. Since pv has no more input, there is no later write that would fail with EPIPE and break the wait.

Detect this EOF drain-wait case with a non-blocking poll() on the output pipe. When the pipe reports that its readers are gone, mark the pipe closed and stop waiting for bytes that can no longer be consumed. While a reader is still present, keep the existing behaviour and continue waiting for the pipe buffer to drain.

Add regression coverage for both ways pv can reach this state: direct input that leaves unread output bytes behind, and a pipeline where the original producer fails but an intermediate filter such as gzip still emits a valid empty stream. The latter matters because pv can still have pending output at EOF even when the command at the start of the pipeline failed immediately.

Signed-off-by: Wolfgang Hoschek <wolfgang.hoschek@mac.com>
2026-04-30 04:47:09 -04:00
Andrew Wood 1d28da18ce Add a basic test for monitoring, each of the "in" and "out" sides. 2026-04-19 23:12:10 +01:00
Andrew Wood d8cc637b56 Add the "%{ratio}" formatter (#67). 2026-04-03 21:49:41 +01:00
Andrew Wood e17f64fce7 Allow "--size @dir" to read the size of all files under "dir" (#179). 2026-03-07 22:23:10 +00:00
Andrew Wood 6de160192a Renamed to something more specific. 2025-11-15 15:37:43 +00:00
Andrew Wood ac13765fa5 Test --watchfd with more than one argument (#170). 2025-11-12 14:31:57 +00:00
Andrew Wood 42cf7ed628 Move the remote control code into the pv library. 2025-10-26 12:55:15 +00:00
Andrew Wood 0b687edfbe Remove the obsolete build-package script, and the scripts for the release process and lab testing (which are now maintained separately at https://codeberg.org/ivarch/scripts), and add a release config file for the new release script under the same location. 2025-10-19 00:20:03 +01:00
Andrew Wood 2efe598855 Add a test for --sparse (#45). 2025-10-14 21:46:16 +01:00
Andrew Wood 771b61db30 Add test for over-read when using stop-at-size (#166). 2025-10-05 21:33:32 +01:00
Andrew Wood 3c09b31f92 Add colour code support with a %{sgr:...} format sequence. 2024-12-15 23:25:20 +00:00
Andrew Wood 250a794873 Add globs to the indent, indentclean, and clean-local targets. 2024-12-13 19:46:31 +00:00
Andrew Wood c95e25776e Move the formatter functions into separate files so that display.c is less of a monolith; and replace the ctype.h macros with internal versions. 2024-12-09 21:42:16 +00:00
Andrew Wood 269d2f5729 Correction to "make indentclean". 2024-12-08 17:27:06 +00:00
Andrew Wood 31ea20dbd3 New script to help with the release process. 2024-12-07 02:20:30 +00:00
Andrew Wood bb339ba519 New script to build a package from the source (.rpm, .deb). 2024-12-07 01:26:44 +00:00
Andrew Wood 499f8418bf Move dev/test scripts from dist_doc_DATA to EXTRA_DIST so they do not get installed in /usr/share/doc/ but are just included in the sources. 2024-12-07 01:23:20 +00:00
Andrew Wood 2d0321e544 Draft test script to run "make check" on multiple VMs at once. 2024-12-04 22:02:59 +00:00
Andrew Wood dccc7345ab New option "--extra-display" (#3, #4). 2024-12-01 19:39:59 +00:00
Andrew Wood b783e5fa63 Memory safety check for --watchfd. 2024-11-30 23:40:09 +00:00
Andrew Wood fa745f2cfe Test "--watchfd PID". 2024-11-30 22:55:00 +00:00
Andrew Wood c17b6a8821 Add the new test. 2024-11-30 17:46:01 +00:00
Andrew Wood dc648a5368 Work around a pandoc formatting bug with .OP when it wraps to have a square bracket at the start of the line. 2024-10-14 23:36:48 +01:00
Andrew Wood 90ab359ed3 Add a comment to say what this does. 2024-10-12 16:11:57 +01:00
Andrew Wood 6cddce9f15 Adjust dist-hook rule so that a failure to sign, when MAINTAINER is set, will be detected - and to add a note to the top of the manifest. 2024-10-05 20:31:25 +01:00
Andrew Wood ac44fd59e3 Added a hook to write a signed MANIFEST file listing the SHA-512 hashes of all included files. 2024-10-05 17:41:40 +01:00
Andrew Wood 877bb1f91f Move calculation code into its own file, to make display.c smaller and keep it focused purely on display. 2024-10-04 17:22:43 +01:00
Andrew Wood aa07373c4e Removed TODO.md, since it is just an outdated copy of the issue tracker. 2024-10-03 11:52:30 +01:00
Andrew Wood 304b87503e Added size argument handling test. 2023-09-13 23:04:47 +01:00
Andrew Wood df67cee38a Addressed more issues raised by splint. 2023-09-11 23:06:57 +01:00
Andrew Wood 8bc088d016 Added "make indentclean". 2023-09-05 23:35:22 +01:00
Andrew Wood 86feafb721 Rename "doc" directory to "docs" to match Debian standards. 2023-09-03 00:40:26 +01:00
Andrew Wood 05f964ee25 Added new "make release" target. 2023-09-02 23:40:03 +01:00
Andrew Wood 756b48e7b6 Minor formatting fix, and work around a pandoc bug. 2023-09-02 01:40:46 +01:00
Andrew Wood 1f320dd7a2 Replace all gettimeofday() calls, and elapsed time arithmetic, with a new set of elapsed time functions based on clock_gettime(), to avoid faults due to time zone / DST changes and machine suspend/resume. 2023-08-30 22:23:43 +01:00
Andrew Wood a59465ff6e Support "make test" as an alias for "make check". 2023-08-28 17:46:56 +01:00
Andrew Wood 0bd1b82d3a Move libgen.h out of IPC conditional code since it is not related directly to IPC; adjust IPC configuration so that IPC support is auto-disabled if the relevant header files or library functions are missing. 2023-08-28 17:44:53 +01:00
Andrew Wood b1ef744058 Use posix_fadvise() on input files, where available. 2023-08-28 13:10:38 +01:00
Andrew Wood 7d07db6526 Extend "make clean" to remove files from "make analyse". 2023-08-28 10:15:52 +01:00
Andrew Wood e99548ea8a Major restructuring to switch build system from old scripts to GNU Automake. 2023-08-28 10:04:39 +01:00