### 1.11.0 - 11 June 2026

 * *feature:* new **--monitor** option to run a command and watch its input, output, or both ([#67](https://codeberg.org/ivarch/pv/issues/67))
 * *feature:* allow decimal values for **--rate-limit** ([#193](https://codeberg.org/ivarch/pv/issues/193))
 * *feature:* extend the **--format** string **%T**/**%{buffer-percent}** to indicate the transfer method when the buffer isn't being used
 * *performance:* insert an intermediate input pipe where it would allow `splice()` to be used in more circumstances ([#188](https://codeberg.org/ivarch/pv/issues/188))
 * *performance:* use `copy_file_range`(2) when the input and output are both regular files ([#196](https://codeberg.org/ivarch/pv/issues/196))
 * *performance:* improve **--discard** performance by splicing to /dev/null internally ([#191](https://codeberg.org/ivarch/pv/issues/191))
 * *fix:* report signal interrupts on a new line, so that control-C doesn't write "^C" over the progress ([#187](https://codeberg.org/ivarch/pv/issues/187))
 * *fix:* prevent an endless wait if there is unread data in the output pipe when its reader terminates ([#189](https://codeberg.org/ivarch/pv/issues/189))
 * *fix:* prevent `splice()` from falling back to `read()` when using **--rate-limit**
 * *fix:* stop spliced transfers requiring two EOFs when the input is a terminal
 * *fix:* add timer interrupt to spliced transfers to avoid progress display lockup when the receiver stalls
 * *fix:* exit with an error if the PID file given to **--pidfile** cannot be replaced
 * *fix:* correct the **--help** word wrapping on very small terminals
 * *i18n:* Polish translations updated
 * *i18n:* Finnish translations updated
 * *i18n:* German translations updated
 * *i18n:* French translations updated
 * *i18n:* partial draft of Georgian translations added
 * *i18n:* removed empty unmaintained translation catalogue for Spanish
 * *cleanup:* fix GCC warning when using glibc 2.43 ([#180](https://codeberg.org/ivarch/pv/pulls/180))
 * *cleanup:* fix warning in pv_remote_check() stub on OpenBSD
 * *cleanup:* use dynamic line buffers for **--watchfd** process lookups
 * *cleanup:* replace the blanket 100,000-hour clamp on displayed times with a million days for timer and ETA, and 7,000 years for estimated finish time, on 64-bit systems
 * *cleanup:* use rounding when calculating ETA, and avoid integer overflows, particularly on 32-bit systems
 * *cleanup:* standardise the error reporting mechanism
 * *cleanup:* improve code comments

### 1.10.5 - 22 March 2026

 * *fix:* when using **--bits** with **--gauge**, don't incorrectly multiply the rate twice ([#182](https://codeberg.org/ivarch/pv/issues/182))

### 1.10.4 - 8 March 2026

 * *fix:* when using **--size @PATH**, *PATH* can be a directory, and the total size of all files within it will be used ([#179](https://codeberg.org/ivarch/pv/issues/179))

### 1.10.3 - 15 December 2025

 * *fix:* stop truncating the process title set by **--extra-display**

### 1.10.2 - 22 November 2025

 * *i18n:* Finnish translations updated
 * *cleanup:* adjust valgrind suppressions so memory safety tests work on LTO builds ([#174](https://codeberg.org/ivarch/pv/issues/174)/[Debian bug 1121157](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1121157))

### 1.10.1 - 12 November 2025

 * *fix:* correct **--watchfd** memory allocation error when given multiple arguments ([#170](https://codeberg.org/ivarch/pv/issues/170))

### 1.10.0 - 7 November 2025

 * *feature:* new **--query** option to show the transfer status of another running **pv** ([#101](https://codeberg.org/ivarch/pv/issues/101))
 * *fix:* make the timers work consistently in **--watchfd** if paused and resumed ([#169](https://codeberg.org/ivarch/pv/issues/169))

### 1.9.44 - 18 October 2025

 * *feature:* new **--sparse** option to write sparse output ([#45](https://codeberg.org/ivarch/pv/issues/45))
 * *fix:* don't clear the **--watchfd** display when the watched process ends ([#81](https://codeberg.org/ivarch/pv/issues/81))

### 1.9.42 - 11 October 2025

 * *feature:* permit multiple arguments to **--watchfd** ([#12](https://codeberg.org/ivarch/pv/issues/12))
 * *feature:* new "**=NAME**" syntax for **--watchfd** to watch processes by name using **pgrep**(1) ([#95](https://codeberg.org/ivarch/pv/issues/95))
 * *feature:* new "**@LISTFILE**" syntax for **--watchfd** to watch processes listed in a file
 * *fix:* improve support for changing the format of a **--watchfd** process with **--remote**
 * *fix:* don't read more than **--size** bytes when using **--stop-at-size** ([#166](https://codeberg.org/ivarch/pv/issues/166))
 * *fix:* transfer nothing if **--stop-at-size** is given a **--size** of 0 ([#166](https://codeberg.org/ivarch/pv/issues/166))
 * *i18n:* Finnish translation stub added
 * *i18n:* Turkish translations updated

### 1.9.34 - 26 July 2025

 * *fix:* prevent tight loop consuming CPU when waiting for a partially filled output pipe to be drained ([#164](https://codeberg.org/ivarch/pv/issues/164))
 * *fix:* correct a memory handling fault when using **--bar-style** with **--watchfd** ([#163](https://codeberg.org/ivarch/pv/issues/163))
 * *i18n:* French translations updated

### 1.9.31 - 28 January 2025

 * *feature:* the **--format** option can now be used with **--numeric** for customised numeric output, such as JSON ([#127](https://codeberg.org/ivarch/pv/issues/127))
 * *i18n:* German translations updated
 * *i18n:* Polish translations updated
 * *i18n:* Russian translations updated

### 1.9.27 - 12 January 2025

 * *fix:* turn off IPC support if _sys/shm.h_ is not available, for compilation on Termux
 * *fix:* bypass valgrind checks on ARM by default due to false positives

### 1.9.25 - 22 December 2024

 * *fix:* test failure of **--watchfd** on macOS corrected ([#124](https://codeberg.org/ivarch/pv/issues/124))

### 1.9.24 - 19 December 2024

 * *feature:* new **--format** sequences for graphical progress bars - "**%{bar-block}**", "**%{bar-granular}**", and "**%{bar-shaded}**" ([#15](https://codeberg.org/ivarch/pv/issues/15))
 * *feature:* new **--format** sequence "**%{sgr:colour,...}**" to use ECMA-48 Select Graphic Rendition codes to add colours
 * *feature:* new **--bar-style** option to change the default bar style ([#15](https://codeberg.org/ivarch/pv/issues/15))
 * *feature:* allow decimal values such as "1.5G" with "**--size**", "**--rate-limit**", "**--buffer-size**", and "**error-skip-block**" ([#35](https://codeberg.org/ivarch/pv/issues/35))
 * *cleanup:* improve progress bar granularity on wide displays by internally tracking the transfer percentage as a decimal number
 * *cleanup:* correct detection of **--remote** usability on GNU Hurd
 * *cleanup:* reduce likelihood of race conditions in tests when running on slow systems
 * *cleanup:* reduce memory footprint
 * *docs:* simplified the synopsis section of the manual

### 1.9.15 - 8 December 2024

 * *feature:* new **--format** sequence "**%nL**", showing the most recent line written ([#121](https://codeberg.org/ivarch/pv/issues/121))
 * *feature:* each **--format** sequence now has a more readable equivalent name, for example "**%r**" can be written as "**%{rate}**"
 * *feature:* new **--format** sequences "**%{progress-bar-only}**" and "**%{progress-amount-only}**"
 * *fix:* allow **--format** to include "%nA" more than once, with different "n" values ([#122](https://codeberg.org/ivarch/pv/issues/122))
 * *fix:* allow **--format** to include "%p" more than once, with optional width prefix
 * *fix:* calculate width correctly when wide characters are in **--format** strings
 * *fix:* add _configure_ script fallback for **--remote** check when cross-compiling ([#120](https://codeberg.org/ivarch/pv/issues/120))
 * *fix:* allow **extra-display** to be changed by **--remote** ([#123](https://codeberg.org/ivarch/pv/issues/123))
 * *cleanup:* refactored display formatters into separate functions
 * *cleanup:* improve format parser handling of dangling or invalid "%" sequences

### 1.9.7 - 2 December 2024

 * *feature:* new **--extra-display** option to update window and process titles ([#3](https://codeberg.org/ivarch/pv/issues/3), [#4](https://codeberg.org/ivarch/pv/issues/4))
 * *fix:* correct failure to report file positions in **--watchfd** ([#118](https://codeberg.org/ivarch/pv/issues/118))
 * *i18n:* Russian translations added
 * *cleanup:* tests added for **--watchfd** ([#10](https://codeberg.org/ivarch/pv/issues/10))
 * *cleanup:* worked around file descriptor leak false positives in valgrind 3.23 ([#97](https://codeberg.org/ivarch/pv/issues/97))
 * *cleanup:* cleared all *shellcheck* warnings in the test scripts
 * *cleanup:* check at compile-time whether **--remote** is going to be usable ([#119](https://codeberg.org/ivarch/pv/issues/119))

### 1.9.0 - 15 October 2024

 * *feature:* new **--store-and-forward** option to read input to a file first, then write it to the output ([#100](https://codeberg.org/ivarch/pv/issues/100))
 * *feature:* new **--stats** option to show transfer stats at the end, like "`ping`" ([#49](https://codeberg.org/ivarch/pv/issues/49))
 * *feature:* **--rate** can now be used with **--numeric** ([#17](https://codeberg.org/ivarch/pv/issues/17))
 * *feature:* **--gauge** with **--progress** to show rate gauge when size is unknown ([#46](https://codeberg.org/ivarch/pv/issues/46))
 * *i18n:* comprehensive German translations update
 * *i18n:* comprehensive Polish translations update
 * *i18n:* complete Turkish translations added
 * *i18n:* complete Czech translations added
 * *i18n:* updates to French translations
 * *fix:* resume stopped pipelines when running in the background (part of [#56](https://codeberg.org/ivarch/pv/issues/56))
 * *fix:* inspect the output pipe buffer to give a more accurate progress indicator of how much the next command has consumed
 * *fix:* prefix completion time (**--fineta**) with *FIN* rather than *ETA* ([#43](https://codeberg.org/ivarch/pv/issues/43))
 * *fix:* surround average rate (**--average-rate**) with brackets rather than square brackets
 * *fix:* correct a memory leak in **--watchfd PID**
 * *fix:* make **--direct-io** work correctly with **--output** instead of assuming stdout
 * *fix:* call `posix_fadvise()` on every input, not just the first one
 * *fix:* write UTC timestamps in debugging mode to avoid lockups in signal handlers
 * *security:* added a signed *MANIFEST* file to releases
 * *cleanup:* removed TODO.md, since it's just an outdated copy of the issue tracker
 * *cleanup:* re-ordered structure members to reduce padding
 * *cleanup:* improved readability of *SIGTTOU* handling code
 * *cleanup:* refactored to separate display, transfer, and calculation more cleanly
 * *cleanup:* instead of moving stderr when backgrounded, set a suspend-output flag

### 1.8.14 - 7 September 2024

 * *fix:* correct double-free on exit when using **--watchfd** ([#96](https://codeberg.org/ivarch/pv/issues/96)) reported by [jettero](https://codeberg.org/jettero)

### 1.8.13 - 18 August 2024

 * *feature:* when using **--size @FILE**, *FILE* can be a block device, and its size will be used (pull request [#94](https://codeberg.org/ivarch/pv/pulls/94)) supplied by [alexanderperlis](https://codeberg.org/alexanderperlis)

### 1.8.12 - 18 July 2024

 * *fix:* correct the detection of output block device size that was broken in 1.8.10 ([#91](https://codeberg.org/ivarch/pv/issues/91))
 * *fix:* do not treat a zero/interrupted write as an end of file (pull requests [#92](https://codeberg.org/ivarch/pv/pulls/92) and [#93](https://codeberg.org/ivarch/pv/pulls/93))

### 1.8.10 - 15 June 2024

 * *feature:* new **--output** option to write to a file instead of standard output (pull request [#90](https://codeberg.org/ivarch/pv/pulls/90)) supplied by [xmort](https://codeberg.org/xmort)

### 1.8.9 - 21 April 2024

 * *feature:* new **--si** option to display and interpret size suffixes in multiples of 1000 rather than 1024 (pull request [#85](https://codeberg.org/ivarch/pv/pulls/85)) supplied by [kevinruddy](https://codeberg.org/kevinruddy)
 * *fix:* continue producing progress output when the output is blocking writes ([#34](https://codeberg.org/ivarch/pv/issues/34), [#86](https://codeberg.org/ivarch/pv/issues/86), [#87](https://codeberg.org/ivarch/pv/issues/87))
 * *fix:* honour the *TMPDIR* / *TMP* environment variables again, rather than hard-coding "`/tmp`", when using a terminal lock file (originally removed in 1.8.0) ([#88](https://codeberg.org/ivarch/pv/issues/88))
 * *i18n:* corrections and missing strings added to French translations (pull request [#83](https://codeberg.org/ivarch/pv/pulls/83)) supplied by [Thomas Bertels](https://codeberg.org/tbertels)

### 1.8.5 - 19 November 2023

 * *fix:* corrected percentage formatting so it doesn't jump from 2 to 3 characters wide at 100% ([#80](https://codeberg.org/ivarch/pv/issues/80))
 * *fix:* replaced **--remote** mechanism, using a temporary file instead of SysV IPC, so it can work reliably even when there are multiple PV instances
 * *fix:* corrected compilation failure when without IPC support
 * *security:* addressed all issues highlighted by the software auditing tools "`splint`" and "`flawfinder`" (see "`make analyse`") ([#77](https://codeberg.org/ivarch/pv/issues/77))
 * *cleanup:* compilation warnings fixed on non-IPC and MacOS systems

### 1.8.0 - 24 September 2023

#### Features

 * *feature:* new **--discard** option to discard input as if writing to */dev/null* ([#42](https://codeberg.org/ivarch/pv/issues/42))
 * *feature:* new **--error-skip-block** option to make **--skip-errors** skip whole blocks ([#37](https://codeberg.org/ivarch/pv/issues/37))
 * *feature:* use `posix_fadvise()` like `cat`(1) does, to improve efficiency ([#39](https://codeberg.org/ivarch/pv/issues/39))
 * *feature:* new **--enable-static** option to "`configure`" for static builds ([#75](https://codeberg.org/ivarch/pv/pulls/75))

#### Security

 * *security:* with **--pidfile**, write to a temporary file and rename it into place, to improve security
 * *security:* keep self-contained copies of name and format string in PV internal state for memory safety
 * *security:* ignore *TMP* / *TMPDIR* environment variables when using a terminal lock file

#### Fixes

 * *fix:* only report errors about missing files when starting to transfer from them, not while calculating size, and behave more like `cat`(1) by skipping them and moving on
 * *fix:* auto-calculate total line count with **--line-mode** when all inputs are regular files
 * *fix:* use `clock_gettime()` in ETA calculation to cope with machine suspend/resume ([#13](https://codeberg.org/ivarch/pv/issues/13))
 * *fix:* if **--width** or **--height** were provided, do not change them when the window size changes ([#36](https://codeberg.org/ivarch/pv/issues/36))
 * *fix:* when a file descriptor position in **--watchfd** moves backwards, show the rate using the correct prefix ([#41](https://codeberg.org/ivarch/pv/issues/41))
 * *fix:* rewrite terminal state save/restore so state is not intermittently garbled on exit when using **--cursor** ([#20](https://codeberg.org/ivarch/pv/issues/20)), ([#24](https://codeberg.org/ivarch/pv/issues/24))

#### Cleanups

 * *cleanup:* addressed many potential issues highlighted by the software auditing tools "`splint`" and "`flawfinder`" (see new target "`make analyse`")
 * *cleanup:* switched the build system to GNU Automake
 * *cleanup:* replaced the test harness with the one native to GNU Automake
 * *cleanup:* added a test for terminal width detection to "`make check`"
 * *cleanup:* added a test to "`make check`" to ensure that "`make install`" installs everything expected
 * *cleanup:* replaced *AC_HEADER_TIOCGWINSZ* with *AC_CHECK_HEADERS(sys/ioctl.h)* for better MacOS compatibility ([#74](https://codeberg.org/ivarch/pv/issues/74))
 * *cleanup:* with **--sync**, call `fsync()` instead of `fdatasync()` on incapable systems ([#73](https://codeberg.org/ivarch/pv/issues/73))
 * *cleanup:* the manual is now a static file instead of needing to be built with "`configure`"

#### Dropped items

 * *dropped:* dropped support for **--enable-static-nls**
 * *dropped:* removed the Linux Software Map file, as the LSM project appears to be long dead
 * *dropped:* will no longer publish to SourceForge as it has a chequered history and is unnecessary
 * *dropped:* removed project from GitHub and moved to Codeberg - see "[Give Up GitHub](https://giveupgithub.org/)"

#### Other items

 * licensing change from Artistic 2.0 to GPLv3+

### 1.7.24 - 30 July 2023

 * *fix:* correct terminal size detection, broken in 1.7.17 by the configuration script rewrite ([#72](https://codeberg.org/ivarch/pv/issues/72))
 * *security:* removed *DEBUG* environment variable in debug mode, added **--debug** instead
 * *cleanup:* added "`make analyse`" to run "`splint`" and "`flawfinder`" on all source files
 * *cleanup:* corrected detection of boolean capability
 * *cleanup:* word wrapping of **--help** output is now multi-byte locale aware
 * *cleanup:* adjusted "`indent`" rules to line length of 120 and reformatted code

### 1.7.18 - 28 July 2023

 * *fix:* language file installation had been broken by the configuration script rewrite

### 1.7.17 - 27 July 2023

 * *feature:* new **--sync** option to flush cache to disk after every write (related to [#6](https://codeberg.org/ivarch/pv/issues/6), to improve accuracy when writing to slow disks)
 * *feature:* new **--direct-io** option to bypass cache - implements [#29 "Option to enable O_DIRECT"](https://codeberg.org/ivarch/pv/issues/29) - requested by Romain Kang, Jacek Wielemborek
 * *fix:* correct byte prefix size to 2 spaces in rate display, so progress display size remains constant at low transfer rates
 * *cleanup:* rewrote `configure.in` as per suggestions in newer "`autoconf`" manuals
 * *cleanup:* replaced `header.in` with one generated by "`autoheader`", moving custom logic to a separate header file "`config-aux.h`"
 * *cleanup:* added copyright notice to all source files as per GNU standards
 * *cleanup:* changed **--version** output to conform to GNU standards
 * *cleanup:* replaced backticks with `$()` in all shell scripts that did not come from elsewhere, as backticks are deprecated and harder to read
 * *cleanup:* improved the output formatting of "`make test`"
 * *cleanup:* extended the "`make test`" mechanism to allow certain tests to be skipped on platforms that cannot support them
 * *cleanup:* skip the "pipe" test (for *SIGPIPE*) if GNU "`head`" is not available, so that "`make test`" on stock OpenBSD 7.3 works
 * *cleanup:* added a lot more tests to "`make test`"
 * *cleanup:* replace all calls to `sprintf()` and `snprintf()` with a new wrapper function `pv_snprintf()` to improve security and compatibility
 * *cleanup:* replace all calls to `strcat()` with a wrapper `pv_strlcat()` to improve security and compatibility
 * *cleanup:* replace all `write()` calls to the terminal with a wrapper `pv_write_retry()` for consistency
 * *cleanup:* tidy up and fix compilation warning in **--watchfd** code
 * *cleanup:* rewrote all local shell scripts to pass analysis by [ShellCheck](https://www.shellcheck.net)

### 1.7.0 - 17 July 2023

 * *dropped:* support for Red Hat Enterprise Linux and its derivatives has been dropped; removed the RPM spec file, and will no longer build binaries
 * *feature:* the **--size** option now accepts "`@filename`" to use the size of another file (pull request [#57](https://codeberg.org/ivarch/pv/pulls/57) supplied by [Dave Beckett](https://github.com/dajobe))
 * *feature:* the **--watchfd** option is now available on OS X (pull request [#60](https://codeberg.org/ivarch/pv/pulls/60) supplied by [christoph-zededa](https://github.com/christoph-zededa))
 * *feature:* new **--bits** option to show bit count instead of byte count (adapted from pull request [#63](https://codeberg.org/ivarch/pv/pulls/63) supplied by [Nick Black](https://nick-black.com))
 * *feature:* new **--average-rate-window** option, to set the window over which the average rate is calculated, also used for ETA (modified from pull request [#65](https://codeberg.org/ivarch/pv/pulls/65) supplied by [lemonsqueeze](https://github.com/lemonsqueeze))
 * *feature:* the **--watchfd** option will now show relative filenames, if they are under the current directory (pull request [#66](https://codeberg.org/ivarch/pv/pulls/66) supplied by [ikasty](https://github.com/ikasty))
 * *fix:* correction to `pv_in_foreground()` to behave as its comment block says it should, when not on a terminal - corrects [#19 "No output in Arch Linux initcpio after 1.6.6"](https://codeberg.org/ivarch/pv/issues/19), [#31 "No output written from inside zsh <() construct"](https://codeberg.org/ivarch/pv/issues/31), [#55 "pv Stopped Working in the Background"](https://codeberg.org/ivarch/pv/issues/55) (pull request [#64](https://codeberg.org/ivarch/pv/pulls/64) supplied by [Michael Weiß](https://github.com/quitschbo))
 * *fix:* workaround for OS X 11 behaviour in configure script regarding stat64 at compile time (pull request [#57](https://codeberg.org/ivarch/pv/pulls/57) supplied by [Dave Beckett](https://github.com/dajobe))
 * *fix:* workaround for macOS equivalence of stat to stat64 - patches from [Filippo Valsorda](https://github.com/FiloSottile) and [Demitri Muna](https://github.com/demitri), correcting [#33 "Fix compilation problems due to `stat64()` on Apple Silicon"](https://codeberg.org/ivarch/pv/issues/33)
 * *fix:* add burst rate limit to transfer, so rate limits are not broken by bursty traffic (pull request [#62](https://codeberg.org/ivarch/pv/pulls/62) supplied by [Volodymyr Bychkovyak](https://github.com/vbychkoviak))
 * *fix:* corrected **--force** option so it will still output progress when not in the same process group as the owner of the terminal - corrects [#23 "No output with "-f" when run in background after 1.6.6"](https://codeberg.org/ivarch/pv/issues/23) and helps to correct [#31 "No output written from inside zsh <() construct"](https://codeberg.org/ivarch/pv/issues/31)
 * *fix:* corrected elapsed time display to show as D:HH:MM:SS after 1 day, like the ETA does - corrects [#16 "Show days in same format in ETA as in elapsed time"](https://codeberg.org/ivarch/pv/issues/16)
 * *fix:* corrected bug where percentages went down after 100% when in **--numeric** mode with a **--size** that was too small - corrects [#26 "Correct "-n" behaviour when going past 100% of "-s" size"](https://codeberg.org/ivarch/pv/issues/26)
 * *i18n:* recoded Polish translation file to UTF-8
 * *i18n:* removed inaccurate fuzzy translation matches
 * *docs:* moved all open issues into GitHub and updated the TODO list
 * *docs:* renamed README to README.md and altered it to Markdown format
 * *docs:* moved contributors from the README to docs/ACKNOWLEDGEMENTS.md
 * *docs:* moved TODO to TODO.md and altered it to Markdown format
 * *docs:* moved NEWS to NEWS.md, converted it to UTF-8, and altered it to Markdown format

### 1.6.20 - 12 September 2021

 * *fix:* add missing `stddef.h` include to `number.c` (Sam James)

### 1.6.19 - 5 September 2021

 * *fix:* starting pv in the background no longer immediately stops unless the transfer is to/from the terminal (Andriy Gapon, Jonathan Elchison)
 * *fix:* using **-B**, **-A**, or **-T** now switches on **-C** implicitly (Johannes Gerer, André Stapf)
 * *fix:* AIX build fixes (Peter Korsgaard)
 * *i18n:* updated German **--help** translations (Richard Fonfara)
 * *i18n:* switched to UTF-8 encoding, added missing translations (de,fr,pt)
 * *docs:* new "common switches" manual section (Jacek Wielemborek)
 * *docs:* use placeholder instead of `/dev/sda` in the manual (Pranav Peshwe)
 * *docs:* mention MacOS pipes and **-B 1024** in the manual (Jan Venekamp)
 * *docs:* correct shell in `autoconf/scripts/index.sh` (Juan Picca)
 * *cleanup:* various compiler warnings cleaned up

Full changelog is below:

 * (r181) added common switches section to manual (Jacek Wielemborek)
 * (r184) use placeholder instead of /dev/sda in the manual (Pranav Peshwe)
 * (r185) replace ash with sh in autoconf/scripts/index.sh (Juan Picca)
 * (r185) added note to manual about **-B 1024** in MacOS pipes (Jan Venekamp)
 * (r185) fix AIX config check when the CWD contains "yes" (Peter Korsgaard)
 * (r189) (#1556) updated German **--help** translations (Richard Fonfara)
 * (r189) updated missing German translations and changed to UTF-8 encoding
 * (r191) updated missing French translations and changed to UTF-8 encoding
 * (r193) updated missing Portuguese translations, changed to UTF-8 encoding
 * (r196) (#1563) using **-B**, **-A**, or **-T** now switches on **-C** implicitly (Johannes Gerer, André Stapf)
 * (r199) fixed numerous compiler warnings in newer GCC versions
 * (r200,205) fixed bug where "`pv /dev/zero >/dev/null &`" stopped immediately (Jonathan Elchison, Andriy Gapon)
 * (r203,205) marked unused arguments with GCC unused attribute, started using boolean data type for flags, corrected more compiler warnings

### 1.6.6 - 30 June 2017

 * (r161) use `%llu` instead of `%Lu` for better compatibility (Eric A. Borisch)
 * (r162) (#1532) fix target buffer size (**-B**) being ignored (AndCycle, Ilya Basin, Antoine Beaupré)
 * (r164) cap read/write sizes, and check elapsed time during read/write cycles, to avoid display hangs with large buffers or slow media; also remove `select()` call from repeated_write function as it slows the transfer down and the wrapping `alarm()` means it is unnecessary
 * (r169) (#1477) use alternate form for transfer counter, such that 13GB is shown as 13.0GB so it's the same width as 13.1GB (André Stapf)
 * (r171) cleanup: units corrections in man page, of the form kb -> KiB
 * (r175) report error in **-d** if process fd directory is unreadable, or if process disappears before we start the main loop (Jacek Wielemborek)

### 1.6.0 - 15 March 2015

 * fix lstat64 support when unavailable - separate patches supplied by Ganael Laplanche and Peter Korsgaard
 * (#1506) new option **-D** / **--delay-start** to only show bar after N seconds (Damon Harper)
 * new option **--fineta** / **-I** to show ETA as time of day rather than time remaining - patch supplied by Erkki Seppälä (r147)
 * (#1509) change ETA (**--eta** / **-e**) so that days are given if the hours remaining are 24 or more (Jacek Wielemborek)
 * (#1499) repeat read and write attempts on partial buffer fill/empty to work around post-signal transfer rate drop reported by Ralf Ramsauer
 * (#1507) do not try to calculate total size in line mode, due to bug reported by Jacek Wielemborek and Michiel Van Herwegen
 * cleanup: removed defunct RATS comments and unnecessary copyright notices
 * clean up displayed lines when using **--watchfd PID**, when PID exits
 * output errors on a new line to avoid overwriting transfer bar

### 1.5.7 - 26 August 2014

 * show KiB instead of incorrect kiB (Debian bug #706175)
 * (#1284) do not gzip man page, for non-Linux OSes (Bob Friesenhahn)
 * work around "awk" bug in `tests/016-numeric-timer` in decimal "," locales
 * fix "`make rpm`" and "`make srpm`", extend "`make release`" to sign releases

### 1.5.3 - 4 May 2014

 * remove *SPLICE_F_NONBLOCK* to fix problem with slow `splice()` (Jan Seda)

### 1.5.2 - 10 February 2014

 * allow **--watchfd** to look at block devices
 * let **--watchfd PID:FD** work with **--size N**
 * moved contributors out of the manual as the list was too long (NB everyone is still listed in the package documentation and always will be)

### 1.5.1 - 23 January 2014

 * new option **--watchfd** - suggested by Jacek Wielemborek and "fdwatch"
 * use non-block flag with `splice()`
 * new display option **--buffer-percent**, suggested by Kim Krecht
 * new display option **--last-written**, suggested by Kim Krecht
 * new transfer option **--no-splice**
 * fix for minor bug which dropped display elements after one empty one
 * fix for single fd leak on exit (Cristian Ciupitu)

### 1.4.12 - 5 August 2013

 * new option **--null** - patch supplied by Zing Shishak
 * AIX build fix (add "`-lc128`") - with help from Pawel Piatek
 * AIX **-c** fixes - with help from Pawel Piatek
 * SCO build fix (`po2table.sh`) - reported by Wouter Pronk
 * test scripts fix for older distributions - patch from Bryan Dongray
 * fix for `splice()` not using stdin - patch from Zev Weiss

### 1.4.6 - 22 January 2013

 * added patch from Pawel Piatek to omit *O_NOFOLLOW* in AIX

### 1.4.5 - 10 January 2013

 * updated manual page to show known problem with **-R** on Cygwin

### 1.4.4 - 11 December 2012

 * added debugging, see "`pv -h`" when `configure` is run with **--enable-debugging**
 * rewrote cursor positioning code used when IPC is unavailable (Cygwin)
 * fixed cursor positioning cursor read answerback problem (Cygwin/Solaris)
 * fixed bug causing crash when progress displayed with too-small terminal

### 1.4.0 - 6 December 2012

 * new option **--skip-errors** commissioned by Jim Salter
 * if stdout is a block device, and we don't know the total size, use the size of that block device as the total (Peter Samuelson)
 * new option **--stop-at-size** to stop after **--size** bytes
 * report correct filename on read errors
 * fix use-after-free bug in remote PID cleanup code
 * refactored large chunks of code to make it more readable and to replace most static variables with a state structure

### 1.3.9 - 5 November 2012

 * allow **--format** parameters to be sent with **--remote**
 * configure option **--disable-ipc**
 * added tests for **--numeric** with **--timer** and **--bytes**
 * added tests for **--remote**

### 1.3.8 - 29 October 2012

 * new **--pidfile** option to save process ID to a file
 * integrated patch for **--numeric** with **--timer** and **--bytes** (Sami Liedes)
 * removed signalling from **--remote** to prevent accidental process kills
 * new **--format** option (originally Vladimir Pal / Vladimir Ermakov)

### 1.3.4 - 27 June 2012

 * new **--disable-splice** configure script option
 * fixed line mode size count with multiple files (Moritz Barsnick)
 * fixes for AIX core dumps (Pawel Piatek)

### 1.3.1 - 9 June 2012

 * do not use `splice()` if the write buffer is not empty (Thomas Rachel)
 * added test 15 (pipe transfers), and new test script

### 1.3.0 - 5 June 2012

 * added Tiger build patch from Olle Jonsson
 * fix 1024-boundary display garble (Debian bug #586763)
 * use `splice`(2) where available (Debian bug #601683)
 * added known bugs section of the manual page
 * fixed average rate test, 12 (Andrew Macheret)
 * use IEEE1541 units (Thomas Rachel)
 * bug with rate limit under 10 fixed (Henry Precheur)
 * speed up PV line mode (patch: Guillaume Marcais)
 * remove `LD=ld` from `vars.mk` to fix cross-compilation (paintitgray/PV#1291)

### 1.2.0 - 14 December 2010

 * integrated improved SI prefixes and **--average-rate** (Henry Gebhardt)
 * return nonzero if exiting due to *SIGTERM* (Martin Baum)
 * patch from Phil Rutschman to restore terminal properly on exit
 * fix i18n especially for **--help** (Sebastian Kayser)
 * refactored `pv_display`
 * we now have a coherent, documented, exit status
 * modified pipe test and new cksum test from Sebastian Kayser
 * default *CFLAGS* to just "`-O`" for non-GCC (Kjetil Torgrim Homme)
 * LFS compile fix for OS X 10.4 (Alexandre de Verteuil)
 * remove *DESTDIR* `/` suffix (Sam Nelson, Daniel Pape)
 * fixed potential NULL deref in transfer (Elias Pipping / LLVM/Clang)

### 1.1.4 - 6 March 2008

 * patch from Elias Pipping correcting compilation failure on Darwin 9
 * patch from Patrick Collison correcting similar problems on OS X
 * trap *SIGINT* / *SIGHUP* / *SIGTERM* so we clean up IPCs on exit (Laszlo Ersek)
 * abort if numeric option, eg **-L**, has non-numeric value (Boris Lohner)

### 1.1.0 - 30 August 2007

 * new option **--remote** (**-R**) to control an already-running process
 * new option **--line-mode** (**-l**) to count lines instead of bytes
 * fix for **-L** to be less resource intensive
 * fix for input/output equivalence check on Mac OS X
 * fix for size calculation in pipelines on Mac OS X
 * fixed "`make uninstall`"
 * removed "`/debian`" directory at request of new Debian maintainer

### 1.0.1 - 4 August 2007

 * licensing change from Artistic to Artistic 2.0
 * removed the **-l** / **--license** option

### 1.0.0 - 2 August 2007

 * act more like "`cat`" - just skip unreadable files, don't abort
 * removed text version of manual page, and obsolete Info file generation
 * code cleanup and separation of PV internals from CLI front-end

### 0.9.9 - 5 February 2007

 * new option **--buffer-size** (**-B**) suggested by Mark Tomich
 * build fix: HP/UX largefile compile fix from Timo Savinen
 * maintain better buffer filling during transfers
 * workaround: "`pv /dev/zero | dd bs=1M count=1k`" bug (reported by Gert Menke)
 * dropped support for the Texinfo manual

### 0.9.6 - 27 February 2006

 * bugfix: `key_t` incompatibility with Cygwin
 * bugfix: interval (**-i**) parameter parses numbers after decimal point
 * build fix: use static NLS if `msgfmt` is unavailable
 * on the final update, blank out the now-zero ETA

### 0.9.2 - 1 September 2005

 * Daniel Roethlisberger patch: use lockfiles if terminal locking fails

### 0.9.1 - 16 June 2005

 * minor RPM spec file fix for Fedora Core 4

### 0.9.0 - 15 November 2004

 * minor NLS bugfix

### 0.8.9 - 6 November 2004

 * decimal values now accepted for rate and size, eg **-L 1.23M**
 * code cleanup
 * developers: "`make help`" now lists Makefile targets

### 0.8.6 - 29 June 2004

 * use `uu_lock()` for terminal locking on FreeBSD

### 0.8.5 - 2 May 2004

 * cursor positioning (**-c**) reliability improved on systems with IPC
 * minor fix: made test 005 more reliable
 * new option **--height** (**-H**)

### 0.8.2 - 24 April 2004

 * allow k,m,g,t suffixes on numbers
 * added "`srpm`" and "`release`" Makefile targets

### 0.8.1 - 19 April 2004

 * bugfix in cursor positioning (**-c**)

### 0.8.0 - 12 February 2004

 * replaced GNU getopt with my library code
 * replaced GNU gettext with my very minimal replacement
 * use *DESTDIR* instead of *RPM_BUILD_ROOT* for optional installation prefix
 * looked for flaws using RATS, cleaned up code

### 0.7.0 - 8 February 2004

 * display buffer management fixes (thanks Cédric Delfosse)
 * replaced **--enable-debug** with **--enable-debugging** and **--enable-profiling**

### 0.6.4 - 14 January 2004

 * fixed minor bug in RPM installation
 * bugfix in "`make index`" (only of interest to developers)

### 0.6.3 - 22 December 2003

 * fixed transient bug that reported "resource unavailable" occasionally

### 0.6.2 - 6 August 2003

 * block devices now have their size read correctly, so "`pv /dev/hda1`" works
 * minor code cleanups (mainly removal of CVS "Id" tags)

### 0.6.0 - 3 August 2003

 * doing *^Z* then "`bg`" then "`fg`" now continues displaying

### 0.5.9 - 23 July 2003

 * fix for test 007 when not in C locale
 * fix for build process to use *CPPFLAGS*
 * fix for build process to use correct i18n libraries
 * fix for build process - more portable sed in dependency generator
 * fix for install process - remember to `mkinstalldirs` before installing
 * fixes for building on Mac OS X

### 0.5.3 - 4 May 2003

 * added Polish translation thanks to Bartosz Feński <fenio@o2.pl> <http://skawina.eu.org/> and Krystian Zubel
 * moved `doc/debian` to `./debian` at insistence of common sense
 * minor Solaris 8 compatibility fixes
 * seems to compile and test OK on Mac OS X

### 0.5.0 - 15 April 2003

 * added French translation thanks to Stéphane Lacasse <stephane@gorfou.ca>
 * added German translation thanks to Marcos Kreinacke <public@kreinacke.com>
 * switched LGPL reference from "Library" to "Lesser"

### 0.4.9 - 18 February 2003

 * support for >2GB files added where available (Debian bug #180986)
 * added `doc/debian` dir (from Cédric Delfosse)
 * added "`make rpm`" and "`make deb`" targets to build RPM and Debian packages
 * added a "`make pv-static`" rule to build a statically linked version

### 0.4.5 - 13 December 2002

 * added Portuguese (Brazilian) translation thanks to Eduardo Aguiar

### 0.4.4 - 7 December 2002

 * pause/resume support - don't count time while stopped
 * stop output when resumed in the background
 * terminal size change support
 * bugfix: "`<=>`" indicator no longer sticks at right hand edge

### 0.4.0 - 27 November 2002

 * allow decimal interval values, eg 0.1, 0.5, etc
 * some simple tests added ("`make check`")
 * smoother throughput limiting (**--rate-limit**), now done in 0.1sec chunks
 * bounds-check interval values (**-i**) - max update interval now 10 minutes
 * more reliable non-blocking output to keep display updated
 * no longer rely on `atoll()`
 * don't output final blank line if **--numeric**
 * use `fcntl()` instead of `flock()` for Solaris compatibility

### 0.3.0 - 25 November 2002

 * handle broken output pipe gracefully
 * continue updating display even when output pipe is blocking

### 0.2.6 - 21 October 2002

 * we now ignore *EINTR* on `select()`
 * variable-size buffer (still need to add code to change size)
 * added (tentative) support for internationalisation
 * removed superfluous **--no-progress**, etc options
 * optimised transfer by using bigger buffers, based on `st_blksize`
 * added **--wait** option to wait until transfer begins before showing progress
 * added **--rate-limit** option to limit rate to a maximum throughput
 * added **--quiet** option (no output at all) to be used with **--rate-limit**

### 0.2.5 - 23 July 2002

 * added *[FILE]...* arguments, like "`cat`"
 * function separation in code
 * some bug fixes related to numeric overflow

### 0.2.3 - 19 July 2002

 * Texinfo manual written, man page updated
 * byte counter added

### 0.2.0 - 18 July 2002

 * ETA counter added
 * screen width estimation added
 * progress bar added

### 0.1.0 - 17 July 2002

 * main loop created
 * rate counter added
 * elapsed time counter added
 * percentage calculation added

### 0.0.1 - 16 July 2002

 * package created
 * first draft of man page written
