Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
88dd09393c | ||
|
|
29124c585e | ||
|
|
65828899ea | ||
|
|
853190d36d | ||
|
|
f13f5e70c1 | ||
|
|
4e2ab087e5 | ||
|
|
242c19e4f6 | ||
|
|
3003f46313 | ||
|
|
c718a00e2c | ||
|
|
01f627b2de | ||
|
|
461486ec4f | ||
|
|
fd46c9b1f6 | ||
|
|
001dfb71c2 | ||
|
|
bcb33ce2aa | ||
|
|
c8090806f9 | ||
|
|
3403ebd857 | ||
|
|
4fddf40436 | ||
|
|
62b5ac26df | ||
|
|
e8c0b6717f | ||
|
|
2bf76577dd | ||
|
|
90d9638488 | ||
|
|
f6d0135cc6 | ||
|
|
56adce8edf | ||
|
|
008ee74a98 | ||
|
|
fa8aa85248 | ||
|
|
442a298c38 | ||
|
|
bb0c5bdfca | ||
|
|
29908cff6c | ||
|
|
456ab7cebb | ||
|
|
0d1d5b77ec | ||
|
|
ff5efbe3eb | ||
|
|
81d008a325 | ||
|
|
288dd633d7 | ||
|
|
9dce037cdc | ||
|
|
6ae07496d2 | ||
|
|
cd60822380 | ||
|
|
0fdd9f0787 | ||
|
|
0d520172ac | ||
|
|
04ea58f786 | ||
|
|
94a9f658e1 | ||
|
|
0ec9e208df | ||
|
|
4c84060940 | ||
|
|
8fb3aecde5 | ||
|
|
e228b3397d | ||
|
|
d1d1999334 | ||
|
|
685c91a1cb | ||
|
|
50c0b329c9 | ||
|
|
5c8e2707a4 | ||
|
|
5768166460 | ||
|
|
6bdb951af4 | ||
|
|
06824aee2d | ||
|
|
c5cd932fb0 | ||
|
|
a6ecf60ad1 | ||
|
|
b0cad6d3e3 | ||
|
|
a9cef81657 | ||
|
|
cc95aa67a3 | ||
|
|
b78e58ab87 | ||
|
|
12d22b5ab0 | ||
|
|
3255f72f39 | ||
|
|
c79eb8540a | ||
|
|
0ca8ef5187 | ||
|
|
386e3ac5fa | ||
|
|
6e24924a23 | ||
|
|
b0720194e1 | ||
|
|
613642ba3d | ||
|
|
103df51a59 |
@@ -0,0 +1 @@
|
|||||||
|
github: a-j-wood
|
||||||
@@ -1,265 +0,0 @@
|
|||||||
Introduction
|
|
||||||
************
|
|
||||||
|
|
||||||
This is the README for `pv' ("Pipe Viewer"), a terminal-based tool for
|
|
||||||
monitoring the progress of data through a pipeline. It can be inserted into
|
|
||||||
any normal pipeline between two processes to give a visual indication of how
|
|
||||||
quickly data is passing through, how long it has taken, how near to
|
|
||||||
completion it is, and an estimate of how long it will be until completion.
|
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
*************
|
|
||||||
|
|
||||||
A manual page is included in this distribution. See `man ./doc/quickref.1',
|
|
||||||
or `man pv' after installation.
|
|
||||||
|
|
||||||
|
|
||||||
Compilation
|
|
||||||
***********
|
|
||||||
|
|
||||||
If this is not a packaged release, first run "./generate.sh".
|
|
||||||
|
|
||||||
To compile the package, type "sh ./configure", which should generate a
|
|
||||||
Makefile for your system. You may then type "make" to build everything.
|
|
||||||
Note that GNU `make' is required; this may be installed as `gmake' on some
|
|
||||||
systems, so if typing "make" gives an error, try "gmake" instead.
|
|
||||||
|
|
||||||
See the file `doc/INSTALL' for more about the `configure' script.
|
|
||||||
|
|
||||||
Developers note that you can do "./configure --enable-debugging" to cause
|
|
||||||
debugging support to be built in, and "--enable-profiling" builds in
|
|
||||||
profiling support (see "man gprof"). Also note that doing "make index" will
|
|
||||||
generate an HTML code index (using "ctags" and "cproto"); this index lists
|
|
||||||
all files used, all functions defined, and all TODOs marked in the code.
|
|
||||||
|
|
||||||
|
|
||||||
Author and acknowledgements
|
|
||||||
***************************
|
|
||||||
|
|
||||||
This package is copyright 2021 Andrew Wood, and is being distributed under
|
|
||||||
the terms of the Artistic License 2.0. For more details of this license,
|
|
||||||
see the file `doc/COPYING'.
|
|
||||||
|
|
||||||
Report bugs in `pv' using the contact form linked from the home page.
|
|
||||||
|
|
||||||
The `pv' home page is at:
|
|
||||||
|
|
||||||
http://www.ivarch.com/programs/pv.shtml
|
|
||||||
|
|
||||||
The latest version can always be found here.
|
|
||||||
|
|
||||||
Credit is also due to:
|
|
||||||
|
|
||||||
Jakub Hrozek <jhrozek@redhat.com>
|
|
||||||
- Fedora package maintainer
|
|
||||||
|
|
||||||
Antoine Beaupré <anarcat@debian.org>
|
|
||||||
- Debian package maintainer
|
|
||||||
|
|
||||||
Kevin Coyner <kcoyner@debian.org>
|
|
||||||
Cédric Delfosse <cedric@debian.org>
|
|
||||||
- previous Debian package maintainers
|
|
||||||
|
|
||||||
Eduardo Aguiar <eduardo.oliveira@sondabrasil.com.br>
|
|
||||||
- provided Portuguese (Brazilian) translation
|
|
||||||
|
|
||||||
Stéphane Lacasse <stephane@gorfou.ca>
|
|
||||||
- provided French translation
|
|
||||||
|
|
||||||
Marcos Kreinacke <public@kreinacke.com>
|
|
||||||
- provided German translation
|
|
||||||
|
|
||||||
Bartosz Feñski <fenio@o2.pl> <http://skawina.eu.org/>
|
|
||||||
- provided Polish translation along with Krystian Zubel
|
|
||||||
|
|
||||||
Joshua Jensen
|
|
||||||
- reported RPM installation bug
|
|
||||||
|
|
||||||
Boris Folgmann <http://www.folgmann.com/en/>
|
|
||||||
- reported cursor handling bug
|
|
||||||
|
|
||||||
Mathias Gumz
|
|
||||||
- reported NLS bug
|
|
||||||
|
|
||||||
Daniel Roethlisberger
|
|
||||||
- submitted patch to use lockfiles for -c if terminal locking fails
|
|
||||||
|
|
||||||
Adam Buchbinder
|
|
||||||
- lots of help with a Cygwin port of -c
|
|
||||||
|
|
||||||
Mark Tomich <http://metuchen.dyndns.org>
|
|
||||||
- suggested -B option
|
|
||||||
|
|
||||||
Gert Menke
|
|
||||||
- reported bug when piping to dd with a large input buffer size
|
|
||||||
|
|
||||||
Ville Herva <Ville.Herva@iki.fi>
|
|
||||||
- informative bug report about rate limiting performance
|
|
||||||
|
|
||||||
Elias Pipping
|
|
||||||
- patch to compile properly on Darwin 9; potential NULL deref report
|
|
||||||
|
|
||||||
Patrick Collison
|
|
||||||
- similar patch for OS X
|
|
||||||
|
|
||||||
Boris Lohner
|
|
||||||
- reported problem that "-L" does not complain if given non-numeric value
|
|
||||||
|
|
||||||
Sebastian Kayser
|
|
||||||
- supplied testing for SIGPIPE, demonstrated internationalisation problem
|
|
||||||
|
|
||||||
Laszlo Ersek <http://phptest11.atw.hu/>
|
|
||||||
- reported shared memory leak on SIGINT with -c
|
|
||||||
|
|
||||||
Phil Rutschman <http://bandgap.rsnsoft.com/>
|
|
||||||
- provided a patch for fully restoring terminal state on exit
|
|
||||||
|
|
||||||
Henry Precheur <http://henry.precheur.org/>
|
|
||||||
- reporting and suggestions for --rate-limit bug when rate is under 10
|
|
||||||
|
|
||||||
E. Rosten <http://mi.eng.cam.ac.uk/~er258/>
|
|
||||||
- supplied patch for block buffering in line mode
|
|
||||||
|
|
||||||
Kjetil Torgrim Homme
|
|
||||||
- reported compilation error with default CFLAGS on non-GCC compilers
|
|
||||||
|
|
||||||
Alexandre de Verteuil
|
|
||||||
- reported bug in OS X build and supplied test environment to fix in
|
|
||||||
|
|
||||||
Martin Baum
|
|
||||||
- supplied patch to return nonzero exit status if terminated by signal
|
|
||||||
|
|
||||||
Sam Nelson <http://www.siliconfuture.net/>
|
|
||||||
- supplied patch to fix trailing slash on DESTDIR
|
|
||||||
|
|
||||||
Daniel Pape
|
|
||||||
- reported Cygwin installation problem due to DESTDIR
|
|
||||||
|
|
||||||
Philipp Beckers
|
|
||||||
- ported to the Syabas PopcornHour A-100 series
|
|
||||||
|
|
||||||
Henry Gebhard <hsggebhardt@googlemail.com>
|
|
||||||
- supplied patches to improve SI prefixes and add --average-rate
|
|
||||||
|
|
||||||
Vladimir Kokarev, Alexander Leo
|
|
||||||
- reported that exit status did not reflect file errors
|
|
||||||
|
|
||||||
Thomas Rachel
|
|
||||||
- submitted patches for IEEE1541 (MiB suffixes), 1+e03 bug
|
|
||||||
|
|
||||||
Guillaume Marcais
|
|
||||||
- submitted speedup patch for line mode
|
|
||||||
|
|
||||||
Moritz Barsnick
|
|
||||||
- submitted patch for compile warning in size calculation
|
|
||||||
|
|
||||||
Pawel Piatek
|
|
||||||
- submitted RPM and patches for AIX
|
|
||||||
|
|
||||||
Sami Liedes
|
|
||||||
- submitted patch for --timer and --bytes with --numeric
|
|
||||||
|
|
||||||
Steven Willis
|
|
||||||
- reported problem with "-R" killing non-PV remote processes
|
|
||||||
|
|
||||||
Vladimir Pal, Vladimir Ermakov
|
|
||||||
- submitted patch which led to development of --format option
|
|
||||||
|
|
||||||
Peter Samuelson <peter@p12n.org>
|
|
||||||
- submitted patch to calculate size if stdout is a block device
|
|
||||||
|
|
||||||
Miguel Diaz
|
|
||||||
- much Cygwin help (and packaging), found narrow-terminal bug
|
|
||||||
|
|
||||||
Jim Salter <http://ubuntuwiki.net>
|
|
||||||
- commissioned work on the --skip-errors option
|
|
||||||
|
|
||||||
Wouter Pronk
|
|
||||||
- reported build problem on SCO
|
|
||||||
|
|
||||||
Bryan Dongray <http://www.dongrays.com>
|
|
||||||
- provided patches for test scripts failing on older Red Hats
|
|
||||||
|
|
||||||
Zev Weiss <www.bewilderbeest.net>
|
|
||||||
- provided patch to fix splice() not using stdin
|
|
||||||
|
|
||||||
Zing Shishak
|
|
||||||
- provided patch for --null / -0 (count null terminated lines)
|
|
||||||
|
|
||||||
Jacek Wielemborek <http://deetah.jogger.pl/kategorie/english>
|
|
||||||
- implemented fdwatch in Python, suggested PV port
|
|
||||||
- reported bug with "-l" and ETA / size
|
|
||||||
- suggested common switches
|
|
||||||
|
|
||||||
Kim Krecht
|
|
||||||
- suggested buffer fill status and last bytes output display options
|
|
||||||
|
|
||||||
Cristian Ciupitu <http://ciupicri.github.io>, Josh Stone
|
|
||||||
- pointed out file descriptor leak with helpful suggestions
|
|
||||||
(Josh Stone initially noticed the missing close)
|
|
||||||
|
|
||||||
Jan Seda
|
|
||||||
- found issue with splice() and SPLICE_F_NONBLOCK causing slowdown
|
|
||||||
|
|
||||||
André Stapf
|
|
||||||
- pointed out formatting problem e.g. 13GB -> 13.1GB which should be
|
|
||||||
shown 13.0GB -> 13.1GB; highlighted on-startup row swapping in -c
|
|
||||||
|
|
||||||
Damon Harper <http://www.usrbin.ca/>
|
|
||||||
- suggested "-D" / "--delay-start" option
|
|
||||||
|
|
||||||
Ganaël Laplanche <http://www.martymac.org>
|
|
||||||
- provided patch for lstat64 on systems that do not support it
|
|
||||||
|
|
||||||
Peter Korsgaard <http://www.buildroot.net/>
|
|
||||||
- provided similar patch for lstat64, specifically for uClibc support
|
|
||||||
- provided AIX cross-compilation patch to fix bug in -lc128 check
|
|
||||||
|
|
||||||
Ralf Ramsauer <https://blog.ramses-pyramidenbau.de/>
|
|
||||||
- reported bug which dropped transfer rate on terminal resize
|
|
||||||
|
|
||||||
Michiel Van Herwegen
|
|
||||||
- reported and discussed bug with "-l" and ETA / size
|
|
||||||
|
|
||||||
Erkki Seppälä <http://www.inside.org/~flux/>
|
|
||||||
- provided patch implementing "-I"
|
|
||||||
|
|
||||||
Eric A. Borisch
|
|
||||||
- provided details of compatibility fix for "%Lu" in watchpid code
|
|
||||||
|
|
||||||
Jan Venekamp
|
|
||||||
- reported MacOS buffer size interactions with pipes
|
|
||||||
|
|
||||||
Matt <https://github.com/lemonsqueeze/pv>
|
|
||||||
- provided "rate-window" patches for rate calculation
|
|
||||||
|
|
||||||
Filippo Valsorda
|
|
||||||
- provided patch for stat64 issue on Apple Silicon
|
|
||||||
|
|
||||||
Matt Koscica, William Dillon
|
|
||||||
- also reported stat64 issue on Apple Silicon
|
|
||||||
|
|
||||||
Norman Rasmussen
|
|
||||||
- suggested -c with -d PID:FD, reject -N with -d PID
|
|
||||||
|
|
||||||
Andriy Gapon, Jonathan Elchison
|
|
||||||
- reported bug where "pv /dev/zero >/dev/null &" stops immediately
|
|
||||||
|
|
||||||
Marcelo Chiesa
|
|
||||||
- reported unused-result warnings when compiling PV 1.6.6
|
|
||||||
|
|
||||||
Jered Floyd
|
|
||||||
- provided patches to improve --rate-limit
|
|
||||||
|
|
||||||
Christoph Biedl
|
|
||||||
- provided ETA and dynamic interval patches
|
|
||||||
|
|
||||||
Richard Fonfara
|
|
||||||
- provided German translations for "pv --help"
|
|
||||||
|
|
||||||
Johannes Gerer <http://johannesgerer.com>
|
|
||||||
- suggested that "-B" should enable "-C"
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
This is the README for **pv** ("Pipe Viewer"), a terminal-based tool for
|
||||||
|
monitoring the progress of data through a pipeline. It can be inserted into
|
||||||
|
any normal pipeline between two processes to give a visual indication of how
|
||||||
|
quickly data is passing through, how long it has taken, how near to
|
||||||
|
completion it is, and an estimate of how long it will be until completion.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
A manual page is included in this distribution. See "`man ./doc/quickref.1`",
|
||||||
|
or "`man pv`" after installation.
|
||||||
|
|
||||||
|
Changes are listed in "[doc/NEWS.md](./doc/NEWS.md)". The to-do list is "[doc/TODO.md](./doc/TODO.md)".
|
||||||
|
|
||||||
|
|
||||||
|
Compilation
|
||||||
|
-----------
|
||||||
|
|
||||||
|
If this is not a packaged release, first run "`./generate.sh`".
|
||||||
|
|
||||||
|
To compile the package, type "`sh ./configure`", which should generate a
|
||||||
|
Makefile for your system. You may then type "`make`" to build everything.
|
||||||
|
Note that GNU _make_ is required; this may be installed as _gmake_ on some
|
||||||
|
systems, so if typing "`make`" gives an error, try "`gmake`" instead.
|
||||||
|
|
||||||
|
See the file "[doc/INSTALL](./doc/INSTALL)" for more about the _configure_ script.
|
||||||
|
|
||||||
|
Developers note that you can run "`./configure --enable-debugging`" to cause
|
||||||
|
debugging support to be built in, and the `--enable-profiling` option builds
|
||||||
|
in profiling support (see "`man gprof`"). Also note that running
|
||||||
|
"`make index`" will generate an HTML code index (using _ctags_ and
|
||||||
|
_cproto_); this index lists all files used, all functions defined, and all
|
||||||
|
TODOs marked in the code.
|
||||||
|
|
||||||
|
|
||||||
|
Author and acknowledgements
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
This package is copyright 2023 Andrew Wood, and is being distributed under
|
||||||
|
the terms of the Artistic License 2.0. For more details of this license,
|
||||||
|
see the file "[doc/COPYING](./doc/COPYING)".
|
||||||
|
|
||||||
|
Report bugs in **pv** using the contact form linked from the home page, or
|
||||||
|
though the [project issue tracker](https://github.com/a-j-wood/pv/issues).
|
||||||
|
|
||||||
|
The **pv** home page is at:
|
||||||
|
|
||||||
|
[http://www.ivarch.com/programs/pv.shtml](http://www.ivarch.com/programs/pv.shtml)
|
||||||
|
|
||||||
|
The latest version can always be found here.
|
||||||
|
|
||||||
|
**Please see "[doc/ACKNOWLEDGEMENTS.md](./doc/ACKNOWLEDGEMENTS.md)" for a list of contributors.**
|
||||||
|
|
||||||
|
---
|
||||||
@@ -156,7 +156,12 @@ dnl
|
|||||||
AC_DEFINE(HAVE_CONFIG_H)
|
AC_DEFINE(HAVE_CONFIG_H)
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
AC_HEADER_STDBOOL
|
AC_HEADER_STDBOOL
|
||||||
AC_CHECK_FUNCS(memcpy basename snprintf stat64)
|
AC_CHECK_FUNCS(memcpy basename snprintf)
|
||||||
|
dnl OSX 11 (apple silicon) lets you link stat64() but fails to compile
|
||||||
|
dnl so use a compile test for stat64() instead of a link test.
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([int main() { stat64(); }])],
|
||||||
|
[AC_DEFINE([HAVE_STAT64], [1], [Is stat64() available])],
|
||||||
|
[])
|
||||||
AC_CHECK_HEADERS(limits.h)
|
AC_CHECK_HEADERS(limits.h)
|
||||||
|
|
||||||
if test "$IPC_SUPPORT" = "yes"; then
|
if test "$IPC_SUPPORT" = "yes"; then
|
||||||
@@ -189,8 +194,7 @@ dnl Output files (and create build directory structure too).
|
|||||||
dnl
|
dnl
|
||||||
AC_OUTPUT(Makefile:$mk_segments doc/lsm:doc/lsm.in
|
AC_OUTPUT(Makefile:$mk_segments doc/lsm:doc/lsm.in
|
||||||
doc/quickref.1:doc/quickref.1.in
|
doc/quickref.1:doc/quickref.1.in
|
||||||
doc/$PACKAGE.spec:doc/spec.in
|
src/.dummy:doc/NEWS.md,
|
||||||
src/.dummy:doc/NEWS,
|
|
||||||
rm -f src/.dummy
|
rm -f src/.dummy
|
||||||
for i in $subdirs; do
|
for i in $subdirs; do
|
||||||
test -d $i || mkdir $i
|
test -d $i || mkdir $i
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ version = @VERSION@
|
|||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
|
|
||||||
distfiles = \
|
distfiles = \
|
||||||
$(srcdir)/README \
|
$(srcdir)/README.md \
|
||||||
$(srcdir)/autoconf \
|
$(srcdir)/autoconf \
|
||||||
$(srcdir)/configure \
|
$(srcdir)/configure \
|
||||||
$(srcdir)/doc \
|
$(srcdir)/doc \
|
||||||
|
|||||||
+4
-22
@@ -6,8 +6,7 @@
|
|||||||
clean depclean indentclean distclean cvsclean svnclean \
|
clean depclean indentclean distclean cvsclean svnclean \
|
||||||
index manhtml indent update-po \
|
index manhtml indent update-po \
|
||||||
doc dist release \
|
doc dist release \
|
||||||
install uninstall \
|
install uninstall
|
||||||
rpm srpm
|
|
||||||
|
|
||||||
all: $(alltarg) $(CATALOGS)
|
all: $(alltarg) $(CATALOGS)
|
||||||
|
|
||||||
@@ -35,9 +34,7 @@ help:
|
|||||||
@echo ' update-po update the .po files'
|
@echo ' update-po update the .po files'
|
||||||
@echo
|
@echo
|
||||||
@echo ' dist create a source tarball for distribution'
|
@echo ' dist create a source tarball for distribution'
|
||||||
@echo ' rpm build a binary RPM (passes $$RPMFLAGS to RPM)'
|
@echo ' release create and sign tar.gz and tar.bz2'
|
||||||
@echo ' srpm build a source RPM (passes $$RPMFLAGS to RPM)'
|
|
||||||
@echo ' release dist+rpm+srpm'
|
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
make:
|
make:
|
||||||
@@ -83,13 +80,12 @@ update-po: $(srcdir)/src/nls/$(PACKAGE).pot
|
|||||||
|
|
||||||
distclean: clean depclean
|
distclean: clean depclean
|
||||||
rm -f $(alltarg) src/include/config.h
|
rm -f $(alltarg) src/include/config.h
|
||||||
rm -rf $(package)-$(version).tar* $(package)-$(version) $(package)-$(version)-*.rpm
|
rm -rf $(package)-$(version).tar* $(package)-$(version)
|
||||||
rm -f *.html config.*
|
rm -f *.html config.*
|
||||||
rm Makefile
|
rm Makefile
|
||||||
|
|
||||||
cvsclean svnclean: distclean
|
cvsclean svnclean: distclean
|
||||||
rm -f doc/lsm
|
rm -f doc/lsm
|
||||||
rm -f doc/$(package).spec
|
|
||||||
rm -f doc/quickref.1
|
rm -f doc/quickref.1
|
||||||
rm -f configure
|
rm -f configure
|
||||||
rm -f src/nls/*.gmo src/nls/*.mo
|
rm -f src/nls/*.gmo src/nls/*.mo
|
||||||
@@ -123,7 +119,6 @@ dist: doc update-po
|
|||||||
cp -dprf Makefile $(distfiles) $(package)-$(version)
|
cp -dprf Makefile $(distfiles) $(package)-$(version)
|
||||||
cd $(package)-$(version); $(MAKE) distclean
|
cd $(package)-$(version); $(MAKE) distclean
|
||||||
cp -dpf doc/lsm $(package)-$(version)/doc/
|
cp -dpf doc/lsm $(package)-$(version)/doc/
|
||||||
cp -dpf doc/$(package).spec $(package)-$(version)/doc/
|
|
||||||
chmod 644 `find $(package)-$(version) -type f -print`
|
chmod 644 `find $(package)-$(version) -type f -print`
|
||||||
chmod 755 `find $(package)-$(version) -type d -print`
|
chmod 755 `find $(package)-$(version) -type d -print`
|
||||||
chmod 755 `find $(package)-$(version)/autoconf/scripts`
|
chmod 755 `find $(package)-$(version)/autoconf/scripts`
|
||||||
@@ -181,21 +176,8 @@ uninstall:
|
|||||||
done; \
|
done; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rpm:
|
release: dist
|
||||||
test -e $(package)-$(version).tar.gz || $(MAKE) dist
|
|
||||||
rpmbuild $(RPMFLAGS) --define="%_topdir `pwd`/rpm" -tb $(package)-$(version).tar.gz
|
|
||||||
mv rpm/RPMS/*/$(package)-*.rpm .
|
|
||||||
rm -rf rpm
|
|
||||||
|
|
||||||
srpm:
|
|
||||||
test -e $(package)-$(version).tar.gz || $(MAKE) dist
|
|
||||||
rpmbuild $(RPMFLAGS) --define="%_topdir `pwd`/rpm" -ts $(package)-$(version).tar.gz
|
|
||||||
mv rpm/SRPMS/*$(package)-*.rpm .
|
|
||||||
rm -rf rpm
|
|
||||||
|
|
||||||
release: dist rpm srpm
|
|
||||||
zcat $(package)-$(version).tar.gz | bzip2 > $(package)-$(version).tar.bz2
|
zcat $(package)-$(version).tar.gz | bzip2 > $(package)-$(version).tar.bz2
|
||||||
-grep -Fq '%_gpg_name' ~/.rpmmacros 2>/dev/null && rpm --addsign *.rpm
|
|
||||||
-gpg --list-secret-keys 2>&1 | grep -Fq 'uid' && gpg -ab *.tar.gz && rename .asc .txt *.tar.gz.asc
|
-gpg --list-secret-keys 2>&1 | grep -Fq 'uid' && gpg -ab *.tar.gz && rename .asc .txt *.tar.gz.asc
|
||||||
-gpg --list-secret-keys 2>&1 | grep -Fq 'uid' && gpg -ab *.tar.bz2 && rename .asc .txt *.tar.bz2.asc
|
-gpg --list-secret-keys 2>&1 | grep -Fq 'uid' && gpg -ab *.tar.bz2 && rename .asc .txt *.tar.bz2.asc
|
||||||
chmod 644 $(package)-$(version)*
|
chmod 644 $(package)-$(version)*
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
The following people have contributed to this project, and their assistance
|
||||||
|
is acknowledged and greatly appreciated:
|
||||||
|
|
||||||
|
* Antoine Beaupré <anarcat@debian.org> - Debian package maintainer
|
||||||
|
* Kevin Coyner <kcoyner@debian.org> - previous Debian package maintainer
|
||||||
|
* Cédric Delfosse <cedric@debian.org> - previous Debian package maintainer
|
||||||
|
* Jakub Hrozek <jhrozek@redhat.com> - Fedora package maintainer
|
||||||
|
* Eduardo Aguiar <eduardo.oliveira@sondabrasil.com.br> - provided Portuguese (Brazilian) translation
|
||||||
|
* Stéphane Lacasse <stephane@gorfou.ca> - provided French translation
|
||||||
|
* Marcos Kreinacke <public@kreinacke.com> - provided German translation
|
||||||
|
* Bartosz Feński <fenio@o2.pl> <http://skawina.eu.org/> - provided Polish translation along with Krystian Zubel
|
||||||
|
* Joshua Jensen - reported RPM installation bug
|
||||||
|
* Boris Folgmann <http://www.folgmann.com/en/> - reported cursor handling bug
|
||||||
|
* Mathias Gumz - reported NLS bug
|
||||||
|
* Daniel Roethlisberger - submitted patch to use lockfiles for "`-c`" if terminal locking fails
|
||||||
|
* Adam Buchbinder - lots of help with a Cygwin port of "`-c`"
|
||||||
|
* Mark Tomich <http://metuchen.dyndns.org> - suggested "`-B`" option
|
||||||
|
* Gert Menke - reported bug when piping to `dd` with a large input buffer size
|
||||||
|
* Ville Herva <Ville.Herva@iki.fi> - informative bug report about rate limiting performance
|
||||||
|
* Elias Pipping - patch to compile properly on Darwin 9; potential NULL deref report
|
||||||
|
* Patrick Collison - similar patch for OS X
|
||||||
|
* Boris Lohner - reported problem that "`-L`" does not complain if given non-numeric value
|
||||||
|
* Sebastian Kayser - supplied testing for *SIGPIPE*, demonstrated internationalisation problem
|
||||||
|
* Laszlo Ersek <http://phptest11.atw.hu/> - reported shared memory leak on *SIGINT* with "`-c`"
|
||||||
|
* Phil Rutschman <http://bandgap.rsnsoft.com/> - provided a patch for fully restoring terminal state on exit
|
||||||
|
* Henry Precheur <http://henry.precheur.org/> - reporting and suggestions for "`--rate-limit`" bug when rate is under 10
|
||||||
|
* E. Rosten <http://mi.eng.cam.ac.uk/~er258/> - supplied patch for block buffering in line mode
|
||||||
|
* Kjetil Torgrim Homme - reported compilation error with default *CFLAGS* on non-GCC compilers
|
||||||
|
* Alexandre de Verteuil - reported bug in OS X build and supplied test environment to fix in
|
||||||
|
* Martin Baum - supplied patch to return nonzero exit status if terminated by signal
|
||||||
|
* Sam Nelson <http://www.siliconfuture.net/> - supplied patch to fix trailing slash on *DESTDIR*
|
||||||
|
* Daniel Pape - reported Cygwin installation problem due to *DESTDIR*
|
||||||
|
* Philipp Beckers - ported to the Syabas PopcornHour A-100 series
|
||||||
|
* Henry Gebhard <hsggebhardt@googlemail.com> - supplied patches to improve SI prefixes and add "`--average-rate`"
|
||||||
|
* Vladimir Kokarev, Alexander Leo - reported that exit status did not reflect file errors
|
||||||
|
* Thomas Rachel - submitted patches for IEEE1541 (MiB suffixes), 1+e03 bug
|
||||||
|
* Guillaume Marcais - submitted speedup patch for line mode
|
||||||
|
* Moritz Barsnick - submitted patch for compile warning in size calculation
|
||||||
|
* Pawel Piatek - submitted RPM and patches for AIX
|
||||||
|
* Sami Liedes - submitted patch for "`--timer`" and "`--bytes`" with "`--numeric`"
|
||||||
|
* Steven Willis - reported problem with "`-R`" killing non-PV remote processes
|
||||||
|
* Vladimir Pal, Vladimir Ermakov - submitted patch which led to development of "`--format`" option
|
||||||
|
* Peter Samuelson <peter@p12n.org> - submitted patch to calculate size if stdout is a block device
|
||||||
|
* Miguel Diaz - much Cygwin help (and packaging), found narrow-terminal bug
|
||||||
|
* Jim Salter <http://ubuntuwiki.net> - commissioned work on the "`--skip-errors`" option
|
||||||
|
* Wouter Pronk - reported build problem on SCO
|
||||||
|
* Bryan Dongray <http://www.dongrays.com> - provided patches for test scripts failing on older Red Hats
|
||||||
|
* Zev Weiss <www.bewilderbeest.net> - provided patch to fix `splice()` not using stdin
|
||||||
|
* Zing Shishak - provided patch for "`--null`" / "`-0`" (count null terminated lines)
|
||||||
|
* Jacek Wielemborek <http://deetah.jogger.pl/kategorie/english> - implemented fdwatch in Python, suggested PV port; reported bug with "`-l`" and ETA / size; many other contributions
|
||||||
|
* Kim Krecht - suggested buffer fill status and last bytes output display options
|
||||||
|
* Cristian Ciupitu <http://ciupicri.github.io>, Josh Stone - pointed out file descriptor leak with helpful suggestions (Josh Stone initially noticed the missing close)
|
||||||
|
* Jan Seda - found issue with `splice()` and *SPLICE_F_NONBLOCK* causing slowdown
|
||||||
|
* André Stapf - pointed out formatting problem e.g. 13GB -> 13.1GB which should be shown 13.0GB -> 13.1GB; highlighted on-startup row swapping in "`-c`"
|
||||||
|
* Damon Harper <http://www.usrbin.ca/> - suggested "`-D`" / "`--delay-start`" option
|
||||||
|
* Ganaël Laplanche <http://www.martymac.org> - provided patch for `lstat64()` on systems that do not support it
|
||||||
|
* Peter Korsgaard <http://www.buildroot.net/> - provided similar patch for `lstat64()`, specifically for uClibc support; provided AIX cross-compilation patch to fix bug in "`-lc128`" check
|
||||||
|
* Ralf Ramsauer <https://blog.ramses-pyramidenbau.de/> - reported bug which dropped transfer rate on terminal resize
|
||||||
|
* Michiel Van Herwegen - reported and discussed bug with "`-l`" and ETA / size
|
||||||
|
* Erkki Seppälä <http://www.inside.org/~flux/> - provided patch implementing "`-I`"
|
||||||
|
* Eric A. Borisch - provided details of compatibility fix for "`%Lu`" in watchpid code
|
||||||
|
* Jan Venekamp - reported MacOS buffer size interactions with pipes
|
||||||
|
* Matt <https://github.com/lemonsqueeze/pv> - provided "rate-window" patches for rate calculation
|
||||||
|
* [Filippo Valsorda](https://github.com/FiloSottile) - provided patch for stat64 issue on Apple Silicon
|
||||||
|
* Matt Koscica, William Dillon - also reported stat64 issue on Apple Silicon
|
||||||
|
* [Demitri Muna](https://github.com/demitri) - assisted with stat64 patch on Apple Silicon
|
||||||
|
* Norman Rasmussen - suggested "`-c`" with "`-d PID:FD`", reject "`-N`" with "`-d PID`"
|
||||||
|
* Andriy Gapon, Jonathan Elchison - reported bug where "`pv /dev/zero >/dev/null &`" stops immediately
|
||||||
|
* Marcelo Chiesa - reported unused-result warnings when compiling PV 1.6.6
|
||||||
|
* Jered Floyd - provided patches to improve "`--rate-limit`"
|
||||||
|
* Christoph Biedl - provided ETA and dynamic interval patches
|
||||||
|
* Richard Fonfara - provided German translations for "`pv --help`"
|
||||||
|
* Johannes Gerer <http://johannesgerer.com> - suggested that "`-B`" should enable "`-C`"
|
||||||
|
* Sam James - provided fix for number.c build issue caused by missing stddef.h
|
||||||
|
* Jakub Wilk <jwilk@jwilk.net> - corrected README encoding
|
||||||
|
* Frederik Eaton - reported issue with `<()` shell constructs
|
||||||
|
* [gray](https://github.com/gray) - reported issue with "`--force`" and terminal process groups, and proposed a patch
|
||||||
|
* [Luc Gommans](https://github.com/lgommans) / https://lgms.nl/ - provided a "momentary ETA" patch
|
||||||
|
* [ikasty](https://github.com/ikasty) - added relative filename display to "`--watchfd`"
|
||||||
|
* [Michael Weiß](https://github.com/quitschbo) - corrected behaviour when not attached to a terminal
|
||||||
|
* [christoph-zededa](https://github.com/christoph-zededa) - provided OS X support for "`--watchfd`"
|
||||||
|
* [Dave Beckett](https://github.com/dajobe) - added "`@filename`" syntax to "`--size`", and corrected an autoconf problem with stat64 on OS X
|
||||||
|
* [Volodymyr Bychkovyak](https://github.com/vbychkoviak) - provided fix for rate limit behaviour with bursty traffic
|
||||||
|
* [Nick Black](https://nick-black.com) - added "`--bits`" option
|
||||||
|
|
||||||
|
---
|
||||||
@@ -1,336 +0,0 @@
|
|||||||
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 README 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 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
|
|
||||||
+338
@@ -0,0 +1,338 @@
|
|||||||
|
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://github.com/a-j-wood/pv/pull/57) supplied by [Dave Beckett](https://github.com/dajobe))
|
||||||
|
* feature: the "`--watchfd`" option is now available on OS X (pull request [#60](https://github.com/a-j-wood/pv/pull/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://github.com/a-j-wood/pv/pull/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://github.com/a-j-wood/pv/pull/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://github.com/a-j-wood/pv/pull/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 [GH#19 "No output in Arch Linux initcpio after 1.6.6"](https://github.com/a-j-wood/pv/issues/19), [GH#31 "No output written from inside zsh <() construct"](https://github.com/a-j-wood/pv/issues/31), [GH#55 "pv Stopped Working in the Background"](https://github.com/a-j-wood/pv/issues/55) (pull request [#64](https://github.com/a-j-wood/pv/pull/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://github.com/a-j-wood/pv/pull/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 [GH#33 "Fix compilation problems due to `stat64()` on Apple Silicon"](https://github.com/a-j-wood/pv/issues/33)
|
||||||
|
* fix: add burst rate limit to transfer, so rate limits are not broken by bursty traffic (pull request [#62](https://github.com/a-j-wood/pv/pull/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 [GH#23 "No output with "`-f`" when run in background after 1.6.6"](https://github.com/a-j-wood/pv/issues/23) and helps to correct [GH#31 "No output written from inside zsh <() construct"](https://github.com/a-j-wood/pv/issues/31)
|
||||||
|
* fix: corrected elapsed time display to show as D:HH:MM:SS after 1 day, like the ETA does - corrects [GH#16 "Show days in same format in ETA as in elapsed time"](https://github.com/a-j-wood/pv/issues/16)
|
||||||
|
* fix: corrected bug where percentages went down after 100% when in "`--numeric`" mode with a "`--size`" that was too small - corrects [GH#26 "Correct "`-n`" behaviour when going past 100% of "`-s`" size"](https://github.com/a-j-wood/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 README 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
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
Things still to do:
|
|
||||||
|
|
||||||
- store terminal state in shm seg (Lars Ellenberg - Feb 2018)
|
|
||||||
- (as above) fix race condition with multiple "pv -c" (Viktor Ashirov - Jan 2020, Lars Ellenberg)
|
|
||||||
- (#1287) if the first pv exits, should the second become IPC leader?
|
|
||||||
- option to show bits/sec instead of bytes (John W. O'Brien - Jan 2019)
|
|
||||||
- option for alternate units like kB (x1000) (David Henderson [cliquesoft.org] - Dec 2018)
|
|
||||||
- (same as above) option to make input suffixes decimal not binary (ie kb rather than KiB)
|
|
||||||
- allow decimal values for -s, -L, -B (suggestion - Thomas Watson)
|
|
||||||
- allow -E to take a block size argument so errors cause a skip to the
|
|
||||||
next block (Anthony DeRobertis)
|
|
||||||
- (#1559) momentary ETA option (Luc Gommans)
|
|
||||||
- (#1557) use clock_gettime() in ETA calculation (Mateju Miroslav)
|
|
||||||
- (#1561) show days in same format in ETA as in elapsed time
|
|
||||||
- (#1562) allow -r with -l and -n to output lines/sec (Roland Kletzing)
|
|
||||||
- document zsh <() incompatibility (frederik@ofb.net - Frederik Eaton)
|
|
||||||
- apply patch for MacOS 11 (Apple Silicon) stat64 issue (Filippo Valsorda)
|
|
||||||
- do not check terminal in -q/-n mode (zsh <(pv -n) fails)
|
|
||||||
- if -w/-H was specified, ignore SIGWINCH
|
|
||||||
- reset ETA on SIGUSR1 (Jacek Wielemborek - Jan 2019)
|
|
||||||
- option to enable O_DIRECT (Romain Kang, Jacek Wielemborek)
|
|
||||||
- use posix_fadvise() like cat(1) does (Jacek Wielemborek)
|
|
||||||
- before exit, flush output (e.g. writing to USB disk), update counters during flush (Kalin KOZHUHAROV - Jun 2018)
|
|
||||||
- permit -c with -d PID:FD, reject -N with -d PID (Norman Rasmussen)
|
|
||||||
- (#1508) add watchfd tests
|
|
||||||
- (#1554) allow multiple -d options (Linus Heckemann for multiple PID:FD)
|
|
||||||
- (#1553) one-shot option (Jacek Wielemborek)
|
|
||||||
- (#1505) option to switch rate to per minute if really slow
|
|
||||||
- (#1510) option "--progress-from FILE", read last number and use it as bytes read:
|
|
||||||
pv --progress-from <( while sleep 1; do du -sb somedir; done ) -s 123g
|
|
||||||
(Jacek Wielemborek)
|
|
||||||
- (#1476) (Debian #507682) adjustable averaging window for rate display
|
|
||||||
- (#1286) option for process title (Martin Sarsale) as "pv - name:FooProcess -xyz - transferred: 1.3GB - 500KB/s - running: 10:15:30s"
|
|
||||||
- (#1290) look at effect of O_SYNC or fsync on performance
|
|
||||||
- (#1281) option (-x?) to use xterm title line for status (Joachim Haga)
|
|
||||||
- (#1560) use Unicode for more granular progress bar (Alexander Petrossian)
|
|
||||||
- show fd backwards reads more neatly than negative huge numbers
|
|
||||||
- "swallow" option to discard output (André Stapf - Apr 2017)
|
|
||||||
- differentiate "eta" from "fineta" in display (André Stapf - Apr 2017)
|
|
||||||
- continue timer even if input or output is blocking (Martin Probst - Jun 2017)
|
|
||||||
- incorporate ETA patch from Christoph Biedl - Jul 2017
|
|
||||||
- incorporate dynamic interval patch from Christoph Biedl - Dec 2019
|
|
||||||
- option "--size-file" or similar to use size of a file for "-s"
|
|
||||||
- fix rate limit downgrade as per patch (Stephen Kitt - Jan 2018)
|
|
||||||
- normalise progress to 100% if overrun (Andrej Gantvorg - Mar 2018)
|
|
||||||
- incorporate average rate interval patch "rate-window"/"eta-window" (lemonsqueeze/Matt - May/Sep 2018 - https://github.com/lemonsqueeze/pv)
|
|
||||||
- incorporate rate limit patch (Jered Floyd - Dec 2018)
|
|
||||||
- option --sparse (with block size option) to write sparse output (Andriy Galetski - Apr 2019)
|
|
||||||
- correct "-n" behaviour when going past 100% of "-s" size (Marcel - Nov 2018)
|
|
||||||
- option to show speed gauge (% max speed) if progress not known (Ryan Cooley - Jun 2019)
|
|
||||||
- look at
|
|
||||||
https://www.reddit.com/r/unix/comments/6gxduc/how_is_gnu_yes_so_fast/diua761/
|
|
||||||
|
|
||||||
- add development support for http://clang-analyzer.llvm.org/
|
|
||||||
- stats for avg/min/max/stddev throughput (Venky.N.Iyer)
|
|
||||||
- pv-ify a command line (Will Entriken) - "pv FOO | BAR | BAZ"
|
|
||||||
- get more translations
|
|
||||||
|
|
||||||
Any assistance would be appreciated.
|
|
||||||
+46
@@ -0,0 +1,46 @@
|
|||||||
|
Things still to do. (GH#n) indicates the Github issue tracker number.
|
||||||
|
|
||||||
|
Bugs
|
||||||
|
----
|
||||||
|
|
||||||
|
* ([GH#5](https://github.com/a-j-wood/pv/issues/5)) Transfer IPC leadership on exit of leader
|
||||||
|
* ([GH#13](https://github.com/a-j-wood/pv/issues/13)) Use `clock_gettime()` in ETA calculation to cope with machine suspend/resume (Mateju Miroslav)
|
||||||
|
* ([GH#20](https://github.com/a-j-wood/pv/issues/20)) Terminal state is not restored correctly in all cases (VA)
|
||||||
|
* ([GH#24](https://github.com/a-j-wood/pv/issues/24)) Race condition with multiple "`pv -c`" leaves terminal state inconsistent (Lars Ellenberg, Viktor Ashirov)
|
||||||
|
* ([GH#34](https://github.com/a-j-wood/pv/issues/34)) Continue timer even if input or output is blocking (Martin Probst - Jun 2017)
|
||||||
|
|
||||||
|
Feature requests
|
||||||
|
----------------
|
||||||
|
|
||||||
|
* ([GH#3](https://github.com/a-j-wood/pv/issues/3)) Option ("`-x`"?) to use xterm title line for status (Joachim Haga)
|
||||||
|
* ([GH#4](https://github.com/a-j-wood/pv/issues/4)) Option for process title (Martin Sarsale) as "`pv - name:FooProcess -xyz - transferred: 1.3GB - 500KB/s - running: 10:15:30s`"
|
||||||
|
* ([GH#6](https://github.com/a-j-wood/pv/issues/6)) Look at effect of *O_SYNC* or `fsync` on performance; update counters during buffer flush
|
||||||
|
* ([GH#9](https://github.com/a-j-wood/pv/issues/9)) Option to switch rate to per minute if really slow
|
||||||
|
* ([GH#10](https://github.com/a-j-wood/pv/issues/10)) Add watchfd tests
|
||||||
|
* ([GH#11](https://github.com/a-j-wood/pv/issues/11)) Option "`--progress-from FILE`", read last number and use it as bytes read (Jacek Wielemborek)
|
||||||
|
* ([GH#12](https://github.com/a-j-wood/pv/issues/12)) Allow multiple "`-d`" options (Linus Heckemann for multiple PID:FD; Jacek Wielemborek)
|
||||||
|
* ([GH#15](https://github.com/a-j-wood/pv/issues/15)) Use Unicode for more granular progress bar (Alexander Petrossian)
|
||||||
|
* ([GH#17](https://github.com/a-j-wood/pv/issues/17)) Allow "`-r`" with "`-l`" and "`-n`" to output lines/sec (Roland Kletzing)
|
||||||
|
* ([GH#22](https://github.com/a-j-wood/pv/issues/22)) Options to skip input and seek on output (Jason A. Pfeil, Feb 2022)
|
||||||
|
* ([GH#25](https://github.com/a-j-wood/pv/issues/25)) Normalise progress to 100% on overrun (Andrej Gantvorg)
|
||||||
|
* ([GH#29](https://github.com/a-j-wood/pv/issues/29)) Option to enable *O_DIRECT* (Romain Kang, Jacek Wielemborek)
|
||||||
|
* ([GH#35](https://github.com/a-j-wood/pv/issues/35)) Allow decimal values for "`-s`", "`-L`", "`-B`" (Thomas Watson - Aug 2020)
|
||||||
|
* ([GH#36](https://github.com/a-j-wood/pv/issues/36)) Ignore *SIGWINCH* (window size change) if "`-w`" / "`-H`" provided
|
||||||
|
* ([GH#37](https://github.com/a-j-wood/pv/issues/37)) Allow "`-E`" to take a block size argument so errors cause a skip to the next block (Anthony DeRobertis - Oct 2016)
|
||||||
|
* ([GH#38](https://github.com/a-j-wood/pv/issues/38)) Reset ETA on *SIGUSR1* (Jacek Wielemborek - Jan 2019)
|
||||||
|
* ([GH#39](https://github.com/a-j-wood/pv/issues/39)) Use `posix_fadvise()` like `cat`(1) does (Jacek Wielemborek - Oct 2015)
|
||||||
|
* ([GH#40](https://github.com/a-j-wood/pv/issues/40)) Permit "`-c`" with "`-d PID:FD`", reject "`-N`" with "`-d PID`" (Norman Rasmussen - Nov 2020)
|
||||||
|
* ([GH#41](https://github.com/a-j-wood/pv/issues/41)) Improve how backwards-moving reads are shown in "`--watchfd`" (Ryan Cooley - Dec 2017)
|
||||||
|
* ([GH#42](https://github.com/a-j-wood/pv/issues/42)) Option to discard stdin so nothing is written to stdout (André Stapf - Apr 2017)
|
||||||
|
* ([GH#43](https://github.com/a-j-wood/pv/issues/43)) Differentiate between "`--eta`" and "`--fineta`" in display (André Stapf - Apr 2017)
|
||||||
|
* ([GH#45](https://github.com/a-j-wood/pv/issues/45)) Option "`--sparse`" (with block size option) to write sparse output (Andriy Galetski - Apr 2019)
|
||||||
|
* ([GH#46](https://github.com/a-j-wood/pv/issues/46)) Option to show speed gauge (% max speed) if progress not known (Ryan Cooley - Jun 2019)
|
||||||
|
* ([GH#47](https://github.com/a-j-wood/pv/issues/47)) Analyse splice and buffer usage to improve performance
|
||||||
|
* ([GH#48](https://github.com/a-j-wood/pv/issues/48)) Option to show multiple files with individual sizes and a cumulative total (Zach Riggle - Jul 2021)
|
||||||
|
* ([GH#49](https://github.com/a-j-wood/pv/issues/49)) Option to provide stats for avg/min/max/stddev throughput (Venky.N.Iyer)
|
||||||
|
* ([GH#50](https://github.com/a-j-wood/pv/issues/50)) Allow pv to report on a whole pipeline at once (Will Entriken - Feb 2011)
|
||||||
|
* ([GH#54](https://github.com/a-j-wood/pv/issues/54)) Run command every n percent ([haarp](https://github.com/haarp))
|
||||||
|
* ([GH#56](https://github.com/a-j-wood/pv/issues/56)) Support for backgrounding pv, and allowing it to be monitored separately ([jimbobmcgee](https://github.com/jimbobmcgee))
|
||||||
|
* ([GH#67](https://github.com/a-j-wood/pv/issues/67)) Wrap another process to monitor its stdin & stdout ([Alex Mason](https://github.com/axman6))
|
||||||
|
|
||||||
|
Any assistance would be appreciated.
|
||||||
+1
-1
@@ -1 +1 @@
|
|||||||
1.6.19
|
1.7.0
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
Begin3
|
Begin3
|
||||||
Title: @PACKAGE@
|
Title: @PACKAGE@
|
||||||
Version: @VERSION@
|
Version: @VERSION@
|
||||||
Entered-date: 05SEP21
|
Entered-date: 17JUL23
|
||||||
Description: A tool for monitoring the progress of data through a
|
Description: A tool for monitoring the progress of data through a
|
||||||
pipeline. It can be inserted into any normal pipeline
|
pipeline. It can be inserted into any normal pipeline
|
||||||
between two processes to give a visual indication of how
|
between two processes to give a visual indication of how
|
||||||
|
|||||||
+45
-6
@@ -1,4 +1,4 @@
|
|||||||
.TH @UCPACKAGE@ 1 "September 2021" Linux "User Manuals"
|
.TH @UCPACKAGE@ 1 "July 2023" Linux "User Manuals"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
@PACKAGE@ \- monitor the progress of data through a pipe
|
@PACKAGE@ \- monitor the progress of data through a pipe
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@@ -127,7 +127,7 @@ Turn the timer on. This will display the total elapsed time that
|
|||||||
has been running for.
|
has been running for.
|
||||||
.TP
|
.TP
|
||||||
.B \-e, \-\-eta
|
.B \-e, \-\-eta
|
||||||
Turn the ETA timer on. This will attempt to guess, based on previous
|
Turn the ETA timer on. This will attempt to guess, based on current
|
||||||
transfer rates and the total data size, how long it will be before
|
transfer rates and the total data size, how long it will be before
|
||||||
completion. This option will have no effect if the total data size cannot
|
completion. This option will have no effect if the total data size cannot
|
||||||
be determined.
|
be determined.
|
||||||
@@ -142,13 +142,17 @@ Turn the rate counter on. This will display the current rate of data
|
|||||||
transfer.
|
transfer.
|
||||||
.TP
|
.TP
|
||||||
.B \-a, \-\-average\-rate
|
.B \-a, \-\-average\-rate
|
||||||
Turn the average rate counter on. This will display the average rate of
|
Turn the average rate counter on. This will display the current average
|
||||||
data transfer so far.
|
rate of data transfer (default: last 30s, see --average-rate-window).
|
||||||
.TP
|
.TP
|
||||||
.B \-b, \-\-bytes
|
.B \-b, \-\-bytes
|
||||||
Turn the total byte counter on. This will display the total amount of
|
Turn the total byte counter on. This will display the total amount of
|
||||||
data transferred so far.
|
data transferred so far.
|
||||||
.TP
|
.TP
|
||||||
|
.B \-8, \-\-bits
|
||||||
|
Display the total bits instead of the total bytes. The output suffix will
|
||||||
|
be "b" instead of "B".
|
||||||
|
.TP
|
||||||
.B \-T, \-\-buffer\-percent
|
.B \-T, \-\-buffer\-percent
|
||||||
Turn on the transfer buffer percentage display. This will show the
|
Turn on the transfer buffer percentage display. This will show the
|
||||||
percentage of the transfer buffer in use - but see the caveat under
|
percentage of the transfer buffer in use - but see the caveat under
|
||||||
@@ -243,7 +247,18 @@ etc can be used as with
|
|||||||
.BR -L .
|
.BR -L .
|
||||||
.TP
|
.TP
|
||||||
.B ""
|
.B ""
|
||||||
Has no effect if used with
|
If
|
||||||
|
.B SIZE
|
||||||
|
starts with
|
||||||
|
.BR "@" ,
|
||||||
|
the size of file whose name follows the
|
||||||
|
.B @
|
||||||
|
will be used.
|
||||||
|
.TP
|
||||||
|
.B ""
|
||||||
|
Note that
|
||||||
|
.B \-\-size
|
||||||
|
has no effect if used with
|
||||||
.B -d PID
|
.B -d PID
|
||||||
to watch all file descriptors of a process, but will work with
|
to watch all file descriptors of a process, but will work with
|
||||||
.BR "-d PID:FD" .
|
.BR "-d PID:FD" .
|
||||||
@@ -265,6 +280,11 @@ Wait
|
|||||||
seconds between updates. The default is to update every second.
|
seconds between updates. The default is to update every second.
|
||||||
Note that this can be a decimal such as 0.1.
|
Note that this can be a decimal such as 0.1.
|
||||||
.TP
|
.TP
|
||||||
|
.B \-m SEC, \-\-average-rate-window SEC
|
||||||
|
Compute current average rate over a
|
||||||
|
.B SEC
|
||||||
|
seconds window for average rate and ETA calculations (default 30s).
|
||||||
|
.TP
|
||||||
.B \-w WIDTH, \-\-width WIDTH
|
.B \-w WIDTH, \-\-width WIDTH
|
||||||
Assume the terminal is
|
Assume the terminal is
|
||||||
.B WIDTH
|
.B WIDTH
|
||||||
@@ -473,6 +493,11 @@ Bytes transferred so far (or lines if
|
|||||||
.B \-l
|
.B \-l
|
||||||
was specified). Equivalent to
|
was specified). Equivalent to
|
||||||
.BR \-b .
|
.BR \-b .
|
||||||
|
If
|
||||||
|
.B \-\-bits
|
||||||
|
was specified,
|
||||||
|
.B %b
|
||||||
|
shows the bits transferred so far, not bytes.
|
||||||
.TP
|
.TP
|
||||||
.B %T
|
.B %T
|
||||||
Percentage of the transfer buffer in use. Equivalent to
|
Percentage of the transfer buffer in use. Equivalent to
|
||||||
@@ -565,7 +590,8 @@ A zero exit status indicates no problems.
|
|||||||
|
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
Written by Andrew Wood, with patches submitted by various other people.
|
Written by Andrew Wood, with patches submitted by various other people.
|
||||||
Please see the package README for a complete list of contributors.
|
Please see the package's ACKNOWLEDGEMENTS file for a complete list of
|
||||||
|
contributors.
|
||||||
|
|
||||||
|
|
||||||
.SH KNOWN PROBLEMS
|
.SH KNOWN PROBLEMS
|
||||||
@@ -573,6 +599,19 @@ The following problems are known to exist in
|
|||||||
.BR @PACKAGE@ :
|
.BR @PACKAGE@ :
|
||||||
.TP
|
.TP
|
||||||
.B *
|
.B *
|
||||||
|
In some versions of
|
||||||
|
.BR bash (1)
|
||||||
|
and
|
||||||
|
.BR zsh (1),
|
||||||
|
the construct
|
||||||
|
.B <(pv filename)
|
||||||
|
will not output any progress to the terminal when run from an interactive
|
||||||
|
shell, due to the subprocess being run in a separate process group from the
|
||||||
|
one that owns the terminal. In these cases, use
|
||||||
|
.BR \-\-force .
|
||||||
|
.P
|
||||||
|
.TP
|
||||||
|
.B *
|
||||||
The
|
The
|
||||||
.B -c
|
.B -c
|
||||||
option does not work properly on Cygwin without
|
option does not work properly on Cygwin without
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
Before releasing a new version, go through this checklist:
|
Before releasing a new version, go through this checklist:
|
||||||
|
|
||||||
- check for patches from http://packages.qa.debian.org/p/pv.html
|
- check for patches from https://tracker.debian.org/pkg/pv
|
||||||
- bump doc/VERSION
|
- bump doc/VERSION
|
||||||
- bump doc/lsm.in
|
- bump doc/lsm.in
|
||||||
- check doc/NEWS is up to date
|
- check doc/NEWS.md is up to date
|
||||||
- check doc/spec.in is up to date (changelog)
|
|
||||||
- check manual is up to date
|
- check manual is up to date
|
||||||
- make indent indentclean
|
- make indent; make indent indentclean
|
||||||
- make update-po
|
- make update-po
|
||||||
- make test
|
- make test
|
||||||
- commit to SVN
|
- commit to repository
|
||||||
- wipe build directory, re-run generate.sh and configure
|
- wipe build directory, re-run generate.sh and configure
|
||||||
- make release
|
- make release
|
||||||
- make manhtml | tidy -asxhtml | sed -e '1,/<body>/d' -e '/<\/body>/,$d'
|
- make manhtml | tidy -asxhtml | sed -e '1,/<body>/d' -e '/<\/body>/,$d'
|
||||||
|
|||||||
-263
@@ -1,263 +0,0 @@
|
|||||||
Summary: Monitor the progress of data through a pipe
|
|
||||||
Name: @PACKAGE@
|
|
||||||
Version: @VERSION@
|
|
||||||
Release: 1%{?dist}
|
|
||||||
License: Artistic 2.0
|
|
||||||
Group: Development/Tools
|
|
||||||
Source: http://www.ivarch.com/programs/sources/@PACKAGE@-@VERSION@.tar.gz
|
|
||||||
Url: http://www.ivarch.com/programs/pv.shtml
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
||||||
BuildRequires: gettext
|
|
||||||
|
|
||||||
%description
|
|
||||||
PV ("Pipe Viewer") is a tool for monitoring the progress of data through a
|
|
||||||
pipeline. It can be inserted into any normal pipeline between two processes
|
|
||||||
to give a visual indication of how quickly data is passing through, how long
|
|
||||||
it has taken, how near to completion it is, and an estimate of how long it
|
|
||||||
will be until completion.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -q
|
|
||||||
|
|
||||||
%build
|
|
||||||
%configure
|
|
||||||
make %{?_smp_mflags}
|
|
||||||
|
|
||||||
%install
|
|
||||||
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT"
|
|
||||||
mkdir -p "$RPM_BUILD_ROOT"%{_bindir}
|
|
||||||
mkdir -p "$RPM_BUILD_ROOT"%{_mandir}/man1
|
|
||||||
mkdir -p "$RPM_BUILD_ROOT"/usr/share/locale
|
|
||||||
|
|
||||||
make DESTDIR="$RPM_BUILD_ROOT" install
|
|
||||||
%find_lang %{name}
|
|
||||||
|
|
||||||
%check
|
|
||||||
make test
|
|
||||||
|
|
||||||
%clean
|
|
||||||
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf "$RPM_BUILD_ROOT"
|
|
||||||
|
|
||||||
%files -f %{name}.lang
|
|
||||||
%defattr(-, root, root)
|
|
||||||
%{_bindir}/%{name}
|
|
||||||
%{_mandir}/man1/%{name}.1.gz
|
|
||||||
|
|
||||||
%doc README doc/NEWS doc/TODO doc/COPYING
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Sun Sep 5 2021 Andrew Wood <andrew.wood@ivarch.com> 1.6.19-1
|
|
||||||
- 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
|
|
||||||
|
|
||||||
* Fri Jun 30 2017 Andrew Wood <andrew.wood@ivarch.com> 1.6.6-1
|
|
||||||
- (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)
|
|
||||||
|
|
||||||
* Sun Mar 15 2015 Andrew Wood <andrew.wood@ivarch.com> 1.6.0-1
|
|
||||||
- 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
|
|
||||||
|
|
||||||
* Tue Aug 26 2014 Andrew Wood <andrew.wood@ivarch.com> 1.5.7-1
|
|
||||||
- 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
|
|
||||||
|
|
||||||
* Sun May 4 2014 Andrew Wood <andrew.wood@ivarch.com> 1.5.3-1
|
|
||||||
- remove SPLICE_F_NONBLOCK to fix problem with slow splice() (Jan Seda)
|
|
||||||
|
|
||||||
* Mon Feb 10 2014 Andrew Wood <andrew.wood@ivarch.com> 1.5.2-1
|
|
||||||
- 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 README and always will be)
|
|
||||||
|
|
||||||
* Thu Jan 23 2014 Andrew Wood <andrew.wood@ivarch.com> 1.5.1-1
|
|
||||||
- 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, Josh Stone)
|
|
||||||
|
|
||||||
* Mon Aug 5 2013 Andrew Wood <andrew.wood@ivarch.com> 1.4.12-1
|
|
||||||
- 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
|
|
||||||
|
|
||||||
* Tue Jan 22 2013 Andrew Wood <andrew.wood@ivarch.com> 1.4.6-1
|
|
||||||
- added patch from Pawel Piatek to omit O_NOFOLLOW in AIX
|
|
||||||
|
|
||||||
* Thu Jan 10 2013 Andrew Wood <andrew.wood@ivarch.com> 1.4.5-1
|
|
||||||
- updated manual page to show known problem with "-R" on Cygwin
|
|
||||||
|
|
||||||
* Tue Dec 11 2012 Andrew Wood <andrew.wood@ivarch.com> 1.4.4-1
|
|
||||||
- added debugging, see `pv -h' when configure 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
|
|
||||||
|
|
||||||
* Thu Dec 6 2012 Andrew Wood <andrew.wood@ivarch.com> 1.4.0-1
|
|
||||||
- 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
|
|
||||||
|
|
||||||
* Mon Nov 5 2012 Andrew Wood <andrew.wood@ivarch.com> 1.3.9-1
|
|
||||||
- allow "--format" parameters to be sent with "--remote"
|
|
||||||
- configure option "--disable-ipc"
|
|
||||||
- added tests for --numeric with --timer and --bytes
|
|
||||||
- added tests for --remote
|
|
||||||
|
|
||||||
* Mon Oct 29 2012 Andrew Wood <andrew.wood@ivarch.com> 1.3.8-1
|
|
||||||
- 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)
|
|
||||||
|
|
||||||
* Wed Jun 27 2012 Andrew Wood <andrew.wood@ivarch.com> 1.3.4-1
|
|
||||||
- new "--disable-splice" configure script option
|
|
||||||
- fixed line mode size count with multiple files (Moritz Barsnick)
|
|
||||||
- fixes for AIX core dumps (Pawel Piatek)
|
|
||||||
|
|
||||||
* Sat Jun 9 2012 Andrew Wood <andrew.wood@ivarch.com> 1.3.1-1
|
|
||||||
- do not use splice() if the write buffer is not empty (Thomas Rachel)
|
|
||||||
- added test 15 (pipe transfers), and new test script
|
|
||||||
|
|
||||||
* Tue Jun 5 2012 Andrew Wood <andrew.wood@ivarch.com> 1.3.0-1
|
|
||||||
- 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).
|
|
||||||
|
|
||||||
* Tue Dec 14 2010 Andrew Wood <andrew.wood@ivarch.com> 1.2.0-1
|
|
||||||
- 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).
|
|
||||||
|
|
||||||
* Thu Mar 6 2008 Andrew Wood <andrew.wood@ivarch.com> 1.1.4-1
|
|
||||||
- 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).
|
|
||||||
- Compilation fixes for Darwin 9 and OS X.
|
|
||||||
|
|
||||||
* Thu Aug 30 2007 Andrew Wood <andrew.wood@ivarch.com> 1.1.0-1
|
|
||||||
- New option "-R" to remotely control another @PACKAGE@ process.
|
|
||||||
- New option "-l" to count lines instead of bytes.
|
|
||||||
- Performance improvement for "-L" (rate) option.
|
|
||||||
- Some Mac OS X fixes, and packaging cleanups.
|
|
||||||
|
|
||||||
* Sat Aug 4 2007 Andrew Wood <andrew.wood@ivarch.com> 1.0.1-1
|
|
||||||
- Changed license from Artistic to Artistic 2.0.
|
|
||||||
- Removed "--license" option.
|
|
||||||
|
|
||||||
* Thu Aug 2 2007 Andrew Wood <andrew.wood@ivarch.com> 1.0.0-1
|
|
||||||
- We now act more like "cat" - just skip unreadable files, don't abort.
|
|
||||||
- Various code cleanups were done.
|
|
||||||
|
|
||||||
* Mon Feb 5 2007 Andrew Wood <andrew.wood@ivarch.com> 0.9.9-1
|
|
||||||
- New option "-B" to set the buffer size, and a workaround for problems
|
|
||||||
- piping to dd(1).
|
|
||||||
|
|
||||||
* Mon Feb 27 2006 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Minor bugfixes, and on the final update, blank out the now-zero ETA.
|
|
||||||
|
|
||||||
* Thu Sep 1 2005 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Terminal locking now uses lockfiles if the terminal itself cannot be locked.
|
|
||||||
|
|
||||||
* Thu Jun 16 2005 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- A minor problem with the spec file was fixed.
|
|
||||||
|
|
||||||
* Mon Nov 15 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- A minor bug in the NLS code was fixed.
|
|
||||||
|
|
||||||
* Sat Nov 6 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Code cleanups and minor usability fixes.
|
|
||||||
|
|
||||||
* Tue Jun 29 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- A port of the terminal locking code to FreeBSD.
|
|
||||||
|
|
||||||
* Sun May 2 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Major reliability improvements to the cursor positioning.
|
|
||||||
|
|
||||||
* Sat Apr 24 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Rate and size parameters can now take suffixes such as "k", "m" etc.
|
|
||||||
|
|
||||||
* Mon Apr 19 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- A bug in the cursor positioning was fixed.
|
|
||||||
|
|
||||||
* Thu Feb 12 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Code cleanups and portability fixes.
|
|
||||||
|
|
||||||
* Sun Feb 8 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- The display buffer is now dynamically allocated, fixing an overflow bug.
|
|
||||||
|
|
||||||
* Wed Jan 14 2004 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- A minor bug triggered when installing the RPM was fixed.
|
|
||||||
|
|
||||||
* Mon Dec 22 2003 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Fixed a minor bug that occasionally reported "resource unavailable".
|
|
||||||
|
|
||||||
* Wed Aug 6 2003 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Block devices now have their size read correctly, so pv /dev/hda1 works
|
|
||||||
- Minor code cleanups (mainly removal of CVS "Id" tags)
|
|
||||||
|
|
||||||
* Sun Aug 3 2003 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- Doing ^Z then "bg" then "fg" now continues displaying
|
|
||||||
|
|
||||||
* Tue Jul 16 2002 Andrew Wood <andrew.wood@ivarch.com>
|
|
||||||
- First draft of spec file created.
|
|
||||||
@@ -22,6 +22,7 @@ struct opts_s { /* structure describing run-time options */
|
|||||||
bool rate; /* rate counter flag */
|
bool rate; /* rate counter flag */
|
||||||
bool average_rate; /* average rate counter flag */
|
bool average_rate; /* average rate counter flag */
|
||||||
bool bytes; /* bytes transferred flag */
|
bool bytes; /* bytes transferred flag */
|
||||||
|
bool bits; /* report transfer size in bits */
|
||||||
bool bufpercent; /* transfer buffer percentage flag */
|
bool bufpercent; /* transfer buffer percentage flag */
|
||||||
unsigned int lastwritten; /* show N bytes last written */
|
unsigned int lastwritten; /* show N bytes last written */
|
||||||
bool force; /* force-if-not-terminal flag */
|
bool force; /* force-if-not-terminal flag */
|
||||||
@@ -42,6 +43,7 @@ struct opts_s { /* structure describing run-time options */
|
|||||||
double delay_start; /* delay before first display */
|
double delay_start; /* delay before first display */
|
||||||
unsigned int watch_pid; /* process to watch fds of */
|
unsigned int watch_pid; /* process to watch fds of */
|
||||||
int watch_fd; /* fd to watch */
|
int watch_fd; /* fd to watch */
|
||||||
|
unsigned int average_rate_window; /* time window in seconds for average rate calculations */
|
||||||
unsigned int width; /* screen width */
|
unsigned int width; /* screen width */
|
||||||
unsigned int height; /* screen height */
|
unsigned int height; /* screen height */
|
||||||
char *name; /* process name, if any */
|
char *name; /* process name, if any */
|
||||||
|
|||||||
@@ -18,6 +18,16 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Since macOS 10.6, stat64 variants are equivalent to plain stat, and the
|
||||||
|
* suffixed versions have been removed in macOS 11. See stat(2).
|
||||||
|
*/
|
||||||
|
#if defined(__APPLE__) || defined(APPLE)
|
||||||
|
#define stat64 stat
|
||||||
|
#define fstat64 fstat
|
||||||
|
#define lstat64 lstat
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -34,6 +44,7 @@ extern "C" {
|
|||||||
#define PV_DISPLAY_FINETA 512
|
#define PV_DISPLAY_FINETA 512
|
||||||
|
|
||||||
#define RATE_GRANULARITY 100000 /* usec between -L rate chunks */
|
#define RATE_GRANULARITY 100000 /* usec between -L rate chunks */
|
||||||
|
#define RATE_BURST_WINDOW 5 /* rate burst window (multiples of rate) */
|
||||||
#define REMOTE_INTERVAL 100000 /* usec between checks for -R */
|
#define REMOTE_INTERVAL 100000 /* usec between checks for -R */
|
||||||
#define BUFFER_SIZE 409600 /* default transfer buffer size */
|
#define BUFFER_SIZE 409600 /* default transfer buffer size */
|
||||||
#define BUFFER_SIZE_MAX 524288 /* max auto transfer buffer size */
|
#define BUFFER_SIZE_MAX 524288 /* max auto transfer buffer size */
|
||||||
@@ -45,6 +56,12 @@ extern "C" {
|
|||||||
#define MAXIMISE_BUFFER_FILL 1
|
#define MAXIMISE_BUFFER_FILL 1
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct pvhistory {
|
||||||
|
long long total_bytes;
|
||||||
|
long double elapsed_sec;
|
||||||
|
} pvhistory_t;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Structure for holding PV internal state. Opaque outside the PV library.
|
* Structure for holding PV internal state. Opaque outside the PV library.
|
||||||
*/
|
*/
|
||||||
@@ -63,6 +80,7 @@ struct pvstate_s {
|
|||||||
bool numeric; /* numeric output only */
|
bool numeric; /* numeric output only */
|
||||||
bool wait; /* wait for data before display */
|
bool wait; /* wait for data before display */
|
||||||
bool linemode; /* count lines instead of bytes */
|
bool linemode; /* count lines instead of bytes */
|
||||||
|
bool bits; /* report bits instead of bytes */
|
||||||
bool null; /* lines are null-terminated */
|
bool null; /* lines are null-terminated */
|
||||||
bool no_op; /* do nothing other than pipe data */
|
bool no_op; /* do nothing other than pipe data */
|
||||||
unsigned int skip_errors; /* skip read errors counter */
|
unsigned int skip_errors; /* skip read errors counter */
|
||||||
@@ -85,6 +103,7 @@ struct pvstate_s {
|
|||||||
* Program status *
|
* Program status *
|
||||||
******************/
|
******************/
|
||||||
const char *program_name; /* program name for error reporting */
|
const char *program_name; /* program name for error reporting */
|
||||||
|
char cwd[4096]; /* current working directory for relative path */
|
||||||
const char *current_file; /* current file being read */
|
const char *current_file; /* current file being read */
|
||||||
int exit_status; /* exit status to give (0=OK) */
|
int exit_status; /* exit status to give (0=OK) */
|
||||||
|
|
||||||
@@ -113,6 +132,15 @@ struct pvstate_s {
|
|||||||
long double prev_elapsed_sec;
|
long double prev_elapsed_sec;
|
||||||
long double prev_rate;
|
long double prev_rate;
|
||||||
long double prev_trans;
|
long double prev_trans;
|
||||||
|
|
||||||
|
/* Keep track of progress over last intervals to compute current average rate. */
|
||||||
|
pvhistory_t *history; /* state at previous intervals (circular buffer) */
|
||||||
|
int history_len; /* total size */
|
||||||
|
int history_interval; /* seconds between each history entry */
|
||||||
|
int history_first;
|
||||||
|
int history_last;
|
||||||
|
long double current_avg_rate; /* current average rate over last history intervals */
|
||||||
|
|
||||||
unsigned long long initial_offset;
|
unsigned long long initial_offset;
|
||||||
char *display_buffer;
|
char *display_buffer;
|
||||||
long display_buffer_size;
|
long display_buffer_size;
|
||||||
@@ -212,8 +240,11 @@ struct pvstate_s {
|
|||||||
struct pvwatchfd_s {
|
struct pvwatchfd_s {
|
||||||
unsigned int watch_pid; /* PID to watch */
|
unsigned int watch_pid; /* PID to watch */
|
||||||
int watch_fd; /* fd to watch, -1 = not displayed */
|
int watch_fd; /* fd to watch, -1 = not displayed */
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#else
|
||||||
char file_fdinfo[4096]; /* path to /proc fdinfo file */
|
char file_fdinfo[4096]; /* path to /proc fdinfo file */
|
||||||
char file_fd[4096]; /* path to /proc fd symlink */
|
char file_fd[4096]; /* path to /proc fd symlink */
|
||||||
|
#endif
|
||||||
char file_fdpath[4096]; /* path to file that was opened */
|
char file_fdpath[4096]; /* path to file that was opened */
|
||||||
char display_name[512]; /* name to show on progress bar */
|
char display_name[512]; /* name to show on progress bar */
|
||||||
struct stat64 sb_fd; /* stat of fd symlink */
|
struct stat64 sb_fd; /* stat of fd symlink */
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ extern void pv_state_numeric_set(pvstate_t, bool);
|
|||||||
extern void pv_state_wait_set(pvstate_t, bool);
|
extern void pv_state_wait_set(pvstate_t, bool);
|
||||||
extern void pv_state_delay_start_set(pvstate_t, double);
|
extern void pv_state_delay_start_set(pvstate_t, double);
|
||||||
extern void pv_state_linemode_set(pvstate_t, bool);
|
extern void pv_state_linemode_set(pvstate_t, bool);
|
||||||
|
extern void pv_state_bits_set(pvstate_t, bool);
|
||||||
extern void pv_state_null_set(pvstate_t, bool);
|
extern void pv_state_null_set(pvstate_t, bool);
|
||||||
extern void pv_state_no_op_set(pvstate_t, bool);
|
extern void pv_state_no_op_set(pvstate_t, bool);
|
||||||
extern void pv_state_skip_errors_set(pvstate_t, unsigned int);
|
extern void pv_state_skip_errors_set(pvstate_t, unsigned int);
|
||||||
@@ -93,6 +94,7 @@ extern void pv_state_name_set(pvstate_t, const char *);
|
|||||||
extern void pv_state_format_string_set(pvstate_t, const char *);
|
extern void pv_state_format_string_set(pvstate_t, const char *);
|
||||||
extern void pv_state_watch_pid_set(pvstate_t, unsigned int);
|
extern void pv_state_watch_pid_set(pvstate_t, unsigned int);
|
||||||
extern void pv_state_watch_fd_set(pvstate_t, int);
|
extern void pv_state_watch_fd_set(pvstate_t, int);
|
||||||
|
extern void pv_state_average_rate_window_set(pvstate_t, int);
|
||||||
|
|
||||||
extern void pv_state_inputfiles(pvstate_t, int, const char **);
|
extern void pv_state_inputfiles(pvstate_t, int, const char **);
|
||||||
|
|
||||||
|
|||||||
@@ -40,8 +40,13 @@ void display_help(void)
|
|||||||
N_("show data transfer rate counter")},
|
N_("show data transfer rate counter")},
|
||||||
{"-a", "--average-rate", 0,
|
{"-a", "--average-rate", 0,
|
||||||
N_("show data transfer average rate counter")},
|
N_("show data transfer average rate counter")},
|
||||||
|
{"-m", "--average-rate-window", N_("SEC"),
|
||||||
|
N_
|
||||||
|
("compute average rate over past SEC seconds (default 30s)")},
|
||||||
{"-b", "--bytes", 0,
|
{"-b", "--bytes", 0,
|
||||||
N_("show number of bytes transferred")},
|
N_("show number of bytes transferred")},
|
||||||
|
{"-8", "--bits", 0,
|
||||||
|
N_("show number of bits transferred")},
|
||||||
{"-T", "--buffer-percent", 0,
|
{"-T", "--buffer-percent", 0,
|
||||||
N_("show percentage of transfer buffer in use")},
|
N_("show percentage of transfer buffer in use")},
|
||||||
{"-A", "--last-written", _("NUM"),
|
{"-A", "--last-written", _("NUM"),
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ int main(int argc, char **argv)
|
|||||||
pv_state_wait_set(state, opts->wait);
|
pv_state_wait_set(state, opts->wait);
|
||||||
pv_state_delay_start_set(state, opts->delay_start);
|
pv_state_delay_start_set(state, opts->delay_start);
|
||||||
pv_state_linemode_set(state, opts->linemode);
|
pv_state_linemode_set(state, opts->linemode);
|
||||||
|
pv_state_bits_set(state, opts->bits);
|
||||||
pv_state_null_set(state, opts->null);
|
pv_state_null_set(state, opts->null);
|
||||||
pv_state_skip_errors_set(state, opts->skip_errors);
|
pv_state_skip_errors_set(state, opts->skip_errors);
|
||||||
pv_state_stop_at_size_set(state, opts->stop_at_size);
|
pv_state_stop_at_size_set(state, opts->stop_at_size);
|
||||||
@@ -206,6 +207,7 @@ int main(int argc, char **argv)
|
|||||||
pv_state_format_string_set(state, opts->format);
|
pv_state_format_string_set(state, opts->format);
|
||||||
pv_state_watch_pid_set(state, opts->watch_pid);
|
pv_state_watch_pid_set(state, opts->watch_pid);
|
||||||
pv_state_watch_fd_set(state, opts->watch_fd);
|
pv_state_watch_fd_set(state, opts->watch_fd);
|
||||||
|
pv_state_average_rate_window_set(state, opts->average_rate_window);
|
||||||
|
|
||||||
pv_state_set_format(state, opts->progress, opts->timer, opts->eta,
|
pv_state_set_format(state, opts->progress, opts->timer, opts->eta,
|
||||||
opts->fineta, opts->rate, opts->average_rate,
|
opts->fineta, opts->rate, opts->average_rate,
|
||||||
|
|||||||
+43
-3
@@ -8,11 +8,13 @@
|
|||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "library/getopt.h"
|
#include "library/getopt.h"
|
||||||
#include "pv.h"
|
#include "pv.h"
|
||||||
|
#include "pv-internal.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
|
||||||
@@ -56,6 +58,7 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
{"rate", 0, NULL, (int) 'r'},
|
{"rate", 0, NULL, (int) 'r'},
|
||||||
{"average-rate", 0, NULL, (int) 'a'},
|
{"average-rate", 0, NULL, (int) 'a'},
|
||||||
{"bytes", 0, NULL, (int) 'b'},
|
{"bytes", 0, NULL, (int) 'b'},
|
||||||
|
{"bits", 0, NULL, (int) '8'},
|
||||||
{"buffer-percent", 0, NULL, (int) 'T'},
|
{"buffer-percent", 0, NULL, (int) 'T'},
|
||||||
{"last-written", 1, NULL, (int) 'A'},
|
{"last-written", 1, NULL, (int) 'A'},
|
||||||
{"force", 0, NULL, (int) 'f'},
|
{"force", 0, NULL, (int) 'f'},
|
||||||
@@ -80,12 +83,13 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
{"remote", 1, NULL, (int) 'R'},
|
{"remote", 1, NULL, (int) 'R'},
|
||||||
{"pidfile", 1, NULL, (int) 'P'},
|
{"pidfile", 1, NULL, (int) 'P'},
|
||||||
{"watchfd", 1, NULL, (int) 'd'},
|
{"watchfd", 1, NULL, (int) 'd'},
|
||||||
|
{"average-rate-window", 1, NULL, (int) 'm'},
|
||||||
{NULL, 0, NULL, 0}
|
{NULL, 0, NULL, 0}
|
||||||
};
|
};
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
#endif
|
#endif
|
||||||
char *short_options =
|
char *short_options =
|
||||||
"hVpteIrabTA:fnqcWD:s:l0i:w:H:N:F:L:B:CESR:P:d:";
|
"hVpteIrab8TA:fnqcWD:s:l0i:w:H:N:F:L:B:CESR:P:d:m:";
|
||||||
int c, numopts;
|
int c, numopts;
|
||||||
unsigned int check_pid;
|
unsigned int check_pid;
|
||||||
int check_fd;
|
int check_fd;
|
||||||
@@ -121,6 +125,7 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
opts->delay_start = 0;
|
opts->delay_start = 0;
|
||||||
opts->watch_pid = 0;
|
opts->watch_pid = 0;
|
||||||
opts->watch_fd = -1;
|
opts->watch_fd = -1;
|
||||||
|
opts->average_rate_window = 30;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
@@ -138,12 +143,16 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
*/
|
*/
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 's':
|
case 's':
|
||||||
|
/* "-s @" is valid, so allow it. */
|
||||||
|
if ('@' == *optarg)
|
||||||
|
break;
|
||||||
case 'A':
|
case 'A':
|
||||||
case 'w':
|
case 'w':
|
||||||
case 'H':
|
case 'H':
|
||||||
case 'L':
|
case 'L':
|
||||||
case 'B':
|
case 'B':
|
||||||
case 'R':
|
case 'R':
|
||||||
|
case 'm':
|
||||||
if (pv_getnum_check(optarg, PV_NUMTYPE_INTEGER) !=
|
if (pv_getnum_check(optarg, PV_NUMTYPE_INTEGER) !=
|
||||||
0) {
|
0) {
|
||||||
fprintf(stderr, "%s: -%c: %s\n",
|
fprintf(stderr, "%s: -%c: %s\n",
|
||||||
@@ -226,6 +235,11 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
opts->bytes = true;
|
opts->bytes = true;
|
||||||
numopts++;
|
numopts++;
|
||||||
break;
|
break;
|
||||||
|
case '8':
|
||||||
|
opts->bytes = true;
|
||||||
|
opts->bits = true;
|
||||||
|
numopts++;
|
||||||
|
break;
|
||||||
case 'T':
|
case 'T':
|
||||||
opts->bufpercent = true;
|
opts->bufpercent = true;
|
||||||
numopts++;
|
numopts++;
|
||||||
@@ -257,7 +271,29 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
opts->delay_start = pv_getnum_d(optarg);
|
opts->delay_start = pv_getnum_d(optarg);
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
opts->size = pv_getnum_ull(optarg);
|
/* Permit "@<filename>" as well as just a number. */
|
||||||
|
if ('@' == *optarg) {
|
||||||
|
const char *size_file = 1 + optarg;
|
||||||
|
struct stat64 sb;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
rc = 0;
|
||||||
|
memset(&sb, 0, sizeof(sb));
|
||||||
|
rc = stat64(size_file, &sb);
|
||||||
|
if (0 == rc) {
|
||||||
|
opts->size = sb.st_size;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "%s: %s %s: %s\n",
|
||||||
|
opts->program_name,
|
||||||
|
_("failed to stat file"),
|
||||||
|
size_file,
|
||||||
|
strerror(errno));
|
||||||
|
opts_free(opts);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
opts->size = pv_getnum_ull(optarg);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
opts->linemode = true;
|
opts->linemode = true;
|
||||||
@@ -310,6 +346,9 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
(void) sscanf(optarg, "%u:%d", &(opts->watch_pid),
|
(void) sscanf(optarg, "%u:%d", &(opts->watch_pid),
|
||||||
&(opts->watch_fd));
|
&(opts->watch_fd));
|
||||||
break;
|
break;
|
||||||
|
case 'm':
|
||||||
|
opts->average_rate_window = pv_getnum_ui(optarg);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
#ifdef HAVE_GETOPT_LONG
|
#ifdef HAVE_GETOPT_LONG
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@@ -361,7 +400,7 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
opts_free(opts);
|
opts_free(opts);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
#ifndef __APPLE__
|
||||||
if (0 != access("/proc/self/fdinfo", X_OK)) {
|
if (0 != access("/proc/self/fdinfo", X_OK)) {
|
||||||
fprintf(stderr, "%s: -d: %s\n", opts->program_name,
|
fprintf(stderr, "%s: -d: %s\n", opts->program_name,
|
||||||
_
|
_
|
||||||
@@ -369,6 +408,7 @@ opts_t opts_parse(int argc, char **argv)
|
|||||||
opts_free(opts);
|
opts_free(opts);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
+194
-171
@@ -1,7 +1,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-09-05 19:25+0100\n"
|
"POT-Creation-Date: 2023-07-17 21:52+0100\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Date: 1999-06-01 15:18:29+0100\n"
|
"Date: 1999-06-01 15:18:29+0100\n"
|
||||||
"From: Andrew Wood <ivarch@ubik>\n"
|
"From: Andrew Wood <ivarch@ubik>\n"
|
||||||
@@ -35,34 +35,6 @@ msgstr "Sperrversuch fehlgeschlagen"
|
|||||||
msgid "failed to open terminal"
|
msgid "failed to open terminal"
|
||||||
msgstr "Terminal konnte nicht geöffnet werden"
|
msgstr "Terminal konnte nicht geöffnet werden"
|
||||||
|
|
||||||
#: src/pv/display.c:138
|
|
||||||
msgid "yzafpnum kMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:143
|
|
||||||
msgid "yzafpnum KMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:558 src/pv/transfer.c:679
|
|
||||||
msgid "buffer allocation failed"
|
|
||||||
msgstr "Puffer konnte nicht allokiert werden"
|
|
||||||
|
|
||||||
#: src/pv/display.c:618 src/pv/transfer.c:458
|
|
||||||
msgid "B"
|
|
||||||
msgstr "B"
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "/s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "B/s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:697 src/pv/display.c:702 src/pv/display.c:764
|
|
||||||
msgid "ETA"
|
|
||||||
msgstr "ETA"
|
|
||||||
|
|
||||||
#: src/pv/file.c:119
|
#: src/pv/file.c:119
|
||||||
msgid "failed to seek to start of output"
|
msgid "failed to seek to start of output"
|
||||||
msgstr "Konnte nicht versuchen, die Ausgabe zu starten"
|
msgstr "Konnte nicht versuchen, die Ausgabe zu starten"
|
||||||
@@ -75,7 +47,7 @@ msgstr "Datei konnte nicht geschlossen werden"
|
|||||||
msgid "failed to read file"
|
msgid "failed to read file"
|
||||||
msgstr "Datei konnte nicht gelesen werden"
|
msgstr "Datei konnte nicht gelesen werden"
|
||||||
|
|
||||||
#: src/pv/file.c:248
|
#: src/pv/file.c:248 src/main/options.c:288
|
||||||
msgid "failed to stat file"
|
msgid "failed to stat file"
|
||||||
msgstr "Dateiinformationen konnten nicht gelesen werden"
|
msgstr "Dateiinformationen konnten nicht gelesen werden"
|
||||||
|
|
||||||
@@ -87,15 +59,14 @@ msgstr "Dateiinformationen für Ausgabe-Datei konnten nicht gelesen werden"
|
|||||||
msgid "input file is output file"
|
msgid "input file is output file"
|
||||||
msgstr "Eingabe-Datei ist Ausgabe-Datei"
|
msgstr "Eingabe-Datei ist Ausgabe-Datei"
|
||||||
|
|
||||||
#: src/pv/loop.c:520 src/pv/loop.c:590 src/pv/loop.c:642 src/pv/watchpid.c:51
|
#: src/pv/loop.c:527 src/pv/loop.c:597 src/pv/loop.c:649 src/pv/watchpid.c:68
|
||||||
#: src/pv/watchpid.c:74 src/pv/watchpid.c:84 src/pv/watchpid.c:115
|
#: src/pv/watchpid.c:79 src/pv/watchpid.c:93 src/pv/watchpid.c:104
|
||||||
|
#: src/pv/watchpid.c:145 src/pv/watchpid.c:168 src/pv/watchpid.c:178
|
||||||
|
#: src/pv/watchpid.c:192 src/pv/watchpid.c:285 src/pv/watchpid.c:294
|
||||||
|
#: src/pv/watchpid.c:332 src/pv/watchpid.c:349
|
||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:33
|
|
||||||
msgid "none"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/transfer.c:341
|
#: src/pv/transfer.c:341
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
msgstr "read-Aufruf fehlgeschlagen"
|
msgstr "read-Aufruf fehlgeschlagen"
|
||||||
@@ -116,19 +87,64 @@ msgstr "konnte den Fehler nicht überwinden"
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr "über den Lesefehler hinaus verschoben"
|
msgstr "über den Lesefehler hinaus verschoben"
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:458 src/pv/display.c:687
|
||||||
|
msgid "B"
|
||||||
|
msgstr "B"
|
||||||
|
|
||||||
#: src/pv/transfer.c:631
|
#: src/pv/transfer.c:631
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "write-Aufruf fehlgeschlagen"
|
msgstr "write-Aufruf fehlgeschlagen"
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:679 src/pv/display.c:618
|
||||||
|
msgid "buffer allocation failed"
|
||||||
|
msgstr "Puffer konnte nicht allokiert werden"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:770
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "select-Aufruf fehlgeschlagen"
|
msgstr "select-Aufruf fehlgeschlagen"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:76 src/pv/watchpid.c:86 src/pv/watchpid.c:117
|
#: src/pv/state.c:25
|
||||||
|
msgid "history structure allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/state.c:55
|
||||||
|
msgid "none"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:151
|
||||||
|
msgid "yzafpnum kMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:156
|
||||||
|
msgid "yzafpnum KMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:683
|
||||||
|
msgid "b"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:738 src/pv/display.c:752
|
||||||
|
msgid "b/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:757
|
||||||
|
msgid "/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:758
|
||||||
|
msgid "B/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:793 src/pv/display.c:798 src/pv/display.c:860
|
||||||
|
msgid "ETA"
|
||||||
|
msgstr "ETA"
|
||||||
|
|
||||||
|
#: src/pv/watchpid.c:81 src/pv/watchpid.c:95 src/pv/watchpid.c:106
|
||||||
|
#: src/pv/watchpid.c:170 src/pv/watchpid.c:180 src/pv/watchpid.c:194
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/watchpid.c:120
|
#: src/pv/watchpid.c:109 src/pv/watchpid.c:197
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "keine normale Datei oder Blockgerät"
|
msgstr "keine normale Datei oder Blockgerät"
|
||||||
|
|
||||||
@@ -185,169 +201,177 @@ msgstr "zeige die Datentransferrate an"
|
|||||||
msgid "show data transfer average rate counter"
|
msgid "show data transfer average rate counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:44
|
#: src/main/help.c:43 src/main/help.c:63 src/main/help.c:71
|
||||||
msgid "show number of bytes transferred"
|
|
||||||
msgstr "zeige die Anzahl von Bytes, die transferiert worden sind"
|
|
||||||
|
|
||||||
#: src/main/help.c:46
|
|
||||||
msgid "show percentage of transfer buffer in use"
|
|
||||||
msgstr "zeige, wie viel Prozent des Übertragungsbuffers in Benutzung sind"
|
|
||||||
|
|
||||||
#: src/main/help.c:47
|
|
||||||
msgid "NUM"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:48
|
|
||||||
msgid "show NUM bytes last written"
|
|
||||||
msgstr "NUM zeige die zuletzt geschriebenen NUM Bytes"
|
|
||||||
|
|
||||||
#: src/main/help.c:49
|
|
||||||
msgid "FORMAT"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:50
|
|
||||||
msgid "set output format to FORMAT"
|
|
||||||
msgstr "setze das Ausgabeformat auf FORMAT"
|
|
||||||
|
|
||||||
#: src/main/help.c:52
|
|
||||||
msgid "output percentages, not visual information"
|
|
||||||
msgstr "Ausgabe von Prozent-Angaben statt visueller Darstellung"
|
|
||||||
|
|
||||||
#: src/main/help.c:54
|
|
||||||
msgid "do not output any transfer information at all"
|
|
||||||
msgstr "sämtliche Transferinformationen unterdrücken"
|
|
||||||
|
|
||||||
#: src/main/help.c:57
|
|
||||||
msgid "display nothing until first byte transferred"
|
|
||||||
msgstr "keine Ausgabe bevor das erste Byte übertragen wurde"
|
|
||||||
|
|
||||||
#: src/main/help.c:58 src/main/help.c:66
|
|
||||||
msgid "SEC"
|
msgid "SEC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:45
|
||||||
|
msgid "compute average rate over past SEC seconds (default 30s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:47
|
||||||
|
msgid "show number of bytes transferred"
|
||||||
|
msgstr "zeige die Anzahl von Bytes, die transferiert worden sind"
|
||||||
|
|
||||||
|
#: src/main/help.c:49
|
||||||
|
msgid "show number of bits transferred"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:51
|
||||||
|
msgid "show percentage of transfer buffer in use"
|
||||||
|
msgstr "zeige, wie viel Prozent des Übertragungsbuffers in Benutzung sind"
|
||||||
|
|
||||||
|
#: src/main/help.c:52
|
||||||
|
msgid "NUM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:53
|
||||||
|
msgid "show NUM bytes last written"
|
||||||
|
msgstr "NUM zeige die zuletzt geschriebenen NUM Bytes"
|
||||||
|
|
||||||
|
#: src/main/help.c:54
|
||||||
|
msgid "FORMAT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:55
|
||||||
|
msgid "set output format to FORMAT"
|
||||||
|
msgstr "setze das Ausgabeformat auf FORMAT"
|
||||||
|
|
||||||
|
#: src/main/help.c:57
|
||||||
|
msgid "output percentages, not visual information"
|
||||||
|
msgstr "Ausgabe von Prozent-Angaben statt visueller Darstellung"
|
||||||
|
|
||||||
#: src/main/help.c:59
|
#: src/main/help.c:59
|
||||||
|
msgid "do not output any transfer information at all"
|
||||||
|
msgstr "sämtliche Transferinformationen unterdrücken"
|
||||||
|
|
||||||
|
#: src/main/help.c:62
|
||||||
|
msgid "display nothing until first byte transferred"
|
||||||
|
msgstr "keine Ausgabe bevor das erste Byte übertragen wurde"
|
||||||
|
|
||||||
|
#: src/main/help.c:64
|
||||||
msgid "display nothing until SEC seconds have passed"
|
msgid "display nothing until SEC seconds have passed"
|
||||||
msgstr "SEC nichts anzeigen, bis SEC Sekunden vergangen sind"
|
msgstr "SEC nichts anzeigen, bis SEC Sekunden vergangen sind"
|
||||||
|
|
||||||
#: src/main/help.c:60
|
#: src/main/help.c:65
|
||||||
msgid "SIZE"
|
msgid "SIZE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:61
|
#: src/main/help.c:66
|
||||||
msgid "set estimated data size to SIZE bytes"
|
msgid "set estimated data size to SIZE bytes"
|
||||||
msgstr "setze erwartete Datenlänge auf SIZE Byte"
|
msgstr "setze erwartete Datenlänge auf SIZE Byte"
|
||||||
|
|
||||||
#: src/main/help.c:63
|
#: src/main/help.c:68
|
||||||
msgid "count lines instead of bytes"
|
msgid "count lines instead of bytes"
|
||||||
msgstr "zähle Zeilen anstelle von Bytes"
|
msgstr "zähle Zeilen anstelle von Bytes"
|
||||||
|
|
||||||
#: src/main/help.c:65
|
#: src/main/help.c:70
|
||||||
msgid "lines are null-terminated"
|
msgid "lines are null-terminated"
|
||||||
msgstr "Zeilen sind nullterminiert"
|
msgstr "Zeilen sind nullterminiert"
|
||||||
|
|
||||||
#: src/main/help.c:67
|
#: src/main/help.c:72
|
||||||
msgid "update every SEC seconds"
|
msgid "update every SEC seconds"
|
||||||
msgstr "aktualisiere Ausgabe nach SEC Sekunden Intervall"
|
msgstr "aktualisiere Ausgabe nach SEC Sekunden Intervall"
|
||||||
|
|
||||||
#: src/main/help.c:68
|
#: src/main/help.c:73
|
||||||
msgid "WIDTH"
|
msgid "WIDTH"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:69
|
#: src/main/help.c:74
|
||||||
msgid "assume terminal is WIDTH characters wide"
|
msgid "assume terminal is WIDTH characters wide"
|
||||||
msgstr "setze Terminal-Breite auf WIDTH Zeichen"
|
msgstr "setze Terminal-Breite auf WIDTH Zeichen"
|
||||||
|
|
||||||
#: src/main/help.c:70
|
#: src/main/help.c:75
|
||||||
msgid "HEIGHT"
|
msgid "HEIGHT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:71
|
#: src/main/help.c:76
|
||||||
msgid "assume terminal is HEIGHT rows high"
|
msgid "assume terminal is HEIGHT rows high"
|
||||||
msgstr "setze Terminal-Höhe auf HEIGHT Zeichen"
|
msgstr "setze Terminal-Höhe auf HEIGHT Zeichen"
|
||||||
|
|
||||||
#: src/main/help.c:72
|
#: src/main/help.c:77
|
||||||
msgid "NAME"
|
msgid "NAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:73
|
#: src/main/help.c:78
|
||||||
msgid "prefix visual information with NAME"
|
msgid "prefix visual information with NAME"
|
||||||
msgstr "setze den NAMEn für visuelle Darstellung"
|
msgstr "setze den NAMEn für visuelle Darstellung"
|
||||||
|
|
||||||
#: src/main/help.c:75
|
#: src/main/help.c:80
|
||||||
msgid "output even if standard error is not a terminal"
|
msgid "output even if standard error is not a terminal"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ausgabe auch dann erzwingen, wenn der Fehlerausgabe-Kanal kein Terminal ist"
|
"Ausgabe auch dann erzwingen, wenn der Fehlerausgabe-Kanal kein Terminal ist"
|
||||||
|
|
||||||
#: src/main/help.c:77
|
#: src/main/help.c:82
|
||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr "benutze Escape-Sequenzen zur Cursor-Positionierung"
|
msgstr "benutze Escape-Sequenzen zur Cursor-Positionierung"
|
||||||
|
|
||||||
#: src/main/help.c:79
|
#: src/main/help.c:84
|
||||||
msgid "RATE"
|
msgid "RATE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:80
|
#: src/main/help.c:85
|
||||||
msgid "limit transfer to RATE bytes per second"
|
msgid "limit transfer to RATE bytes per second"
|
||||||
msgstr "beschränke die Transferrate auf RATE Byte pro Sekunde"
|
msgstr "beschränke die Transferrate auf RATE Byte pro Sekunde"
|
||||||
|
|
||||||
#: src/main/help.c:81
|
#: src/main/help.c:86
|
||||||
msgid "BYTES"
|
msgid "BYTES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:82
|
#: src/main/help.c:87
|
||||||
msgid "use a buffer size of BYTES"
|
msgid "use a buffer size of BYTES"
|
||||||
msgstr "BYTES benutze einen Puffer in der Größe von BYTES"
|
msgstr "BYTES benutze einen Puffer in der Größe von BYTES"
|
||||||
|
|
||||||
#: src/main/help.c:84
|
#: src/main/help.c:89
|
||||||
msgid "never use splice(), always use read/write"
|
msgid "never use splice(), always use read/write"
|
||||||
msgstr "anstelle von splice() immer read/write benutzen"
|
msgstr "anstelle von splice() immer read/write benutzen"
|
||||||
|
|
||||||
#: src/main/help.c:86
|
#: src/main/help.c:91
|
||||||
msgid "skip read errors in input"
|
msgid "skip read errors in input"
|
||||||
msgstr "Lesefehler in der Eingabe nicht beachten"
|
msgstr "Lesefehler in der Eingabe nicht beachten"
|
||||||
|
|
||||||
#: src/main/help.c:88
|
#: src/main/help.c:93
|
||||||
msgid "stop after --size bytes have been transferred"
|
msgid "stop after --size bytes have been transferred"
|
||||||
msgstr "anhalten, nachdem --size Bytes übertragen wurden"
|
msgstr "anhalten, nachdem --size Bytes übertragen wurden"
|
||||||
|
|
||||||
#: src/main/help.c:90
|
#: src/main/help.c:95
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:91
|
#: src/main/help.c:96
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr "Einstellungen der Prozess-PID updaten"
|
msgstr "Einstellungen der Prozess-PID updaten"
|
||||||
|
|
||||||
#: src/main/help.c:94
|
#: src/main/help.c:99
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:95
|
#: src/main/help.c:100
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "Prozess-ID in FILE speichern"
|
msgstr "Prozess-ID in FILE speichern"
|
||||||
|
|
||||||
#: src/main/help.c:97
|
#: src/main/help.c:102
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:98
|
#: src/main/help.c:103
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "die vom Prozess PID geöffnete Datei FD beobachten"
|
msgstr "die vom Prozess PID geöffnete Datei FD beobachten"
|
||||||
|
|
||||||
#: src/main/help.c:101
|
#: src/main/help.c:106
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr "zeige diese Hilfe und beende"
|
msgstr "zeige diese Hilfe und beende"
|
||||||
|
|
||||||
#: src/main/help.c:103
|
#: src/main/help.c:108
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr "zeige Versionsinformationen und beende"
|
msgstr "zeige Versionsinformationen und beende"
|
||||||
|
|
||||||
#: src/main/help.c:109
|
#: src/main/help.c:114
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Syntax: %s [OPTION] [DATEI]..."
|
msgstr "Syntax: %s [OPTION] [DATEI]..."
|
||||||
|
|
||||||
#: src/main/help.c:112
|
#: src/main/help.c:117
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output,\n"
|
"Concatenate FILE(s), or standard input, to standard output,\n"
|
||||||
"with monitoring."
|
"with monitoring."
|
||||||
@@ -355,7 +379,7 @@ msgstr ""
|
|||||||
"Verbindet DATEI(en) oder den Standard-Eingabe-Kanal mit dem\n"
|
"Verbindet DATEI(en) oder den Standard-Eingabe-Kanal mit dem\n"
|
||||||
"Standard-Ausgabe-Kanal und misst den Datenstrom."
|
"Standard-Ausgabe-Kanal und misst den Datenstrom."
|
||||||
|
|
||||||
#: src/main/help.c:207
|
#: src/main/help.c:212
|
||||||
msgid ""
|
msgid ""
|
||||||
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
||||||
"output filename.\n"
|
"output filename.\n"
|
||||||
@@ -363,7 +387,7 @@ msgstr ""
|
|||||||
"Das Debuggen ist aktiviert. Exportieren Sie die Umgebungsvariable DEBUG,\n"
|
"Das Debuggen ist aktiviert. Exportieren Sie die Umgebungsvariable DEBUG,\n"
|
||||||
"um den Ausgabedateinamen zu definieren.\n"
|
"um den Ausgabedateinamen zu definieren.\n"
|
||||||
|
|
||||||
#: src/main/help.c:211
|
#: src/main/help.c:216
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to %s."
|
msgid "Please report any bugs to %s."
|
||||||
msgstr "Bitte senden Sie Fehlerberichte an %s."
|
msgstr "Bitte senden Sie Fehlerberichte an %s."
|
||||||
@@ -372,72 +396,9 @@ msgstr "Bitte senden Sie Fehlerberichte an %s."
|
|||||||
msgid "state allocation failed"
|
msgid "state allocation failed"
|
||||||
msgstr "Zustandszuweisung fehlgeschlagen"
|
msgstr "Zustandszuweisung fehlgeschlagen"
|
||||||
|
|
||||||
#: src/main/main.c:246
|
#: src/main/main.c:248
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to read terminal attributes"
|
msgid "failed to read terminal attributes"
|
||||||
msgstr "Terminalname konnte nicht gelesen werden"
|
|
||||||
|
|
||||||
#: src/main/options.c:98
|
|
||||||
msgid "option structure allocation failed"
|
|
||||||
msgstr "`option' konnte nicht allokiert werden"
|
|
||||||
|
|
||||||
#: src/main/options.c:112
|
|
||||||
msgid "option structure argv allocation failed"
|
|
||||||
msgstr "`option' (argv) konnte nicht allokiert werden"
|
|
||||||
|
|
||||||
#: src/main/options.c:151
|
|
||||||
msgid "integer argument expected"
|
|
||||||
msgstr "Ganzzahliges Argument erwartet"
|
|
||||||
|
|
||||||
#: src/main/options.c:162
|
|
||||||
msgid "numeric argument expected"
|
|
||||||
msgstr "numerisches Argument erwartet"
|
|
||||||
|
|
||||||
#: src/main/options.c:173
|
|
||||||
msgid "process ID or pid:fd pair expected"
|
|
||||||
msgstr "Prozess-ID oder PID:FD-Paar erwartet"
|
|
||||||
|
|
||||||
#: src/main/options.c:180
|
|
||||||
msgid "invalid process ID"
|
|
||||||
msgstr "ungültige Prozess-ID"
|
|
||||||
|
|
||||||
#: src/main/options.c:316
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information."
|
|
||||||
msgstr "`%s --help' zeigt weitere Informationen an."
|
|
||||||
|
|
||||||
#: src/main/options.c:320
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s -h' for more information."
|
|
||||||
msgstr "`%s -h' zeigt weitere Informationen an."
|
|
||||||
|
|
||||||
#: src/main/options.c:336
|
|
||||||
msgid ""
|
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
|
||||||
"descriptors"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Beim Anzeigen von Dateideskriptoren können keine Optionen für den "
|
|
||||||
"Zeilenmodus oder den Übertragungsmodifikator verwendet werden"
|
|
||||||
|
|
||||||
#: src/main/options.c:344
|
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
"Beim Anzeigen von Dateideskriptoren können keine Zeilenmodus- oder "
|
|
||||||
"Übertragungsmodifikatoroptionen verwendet werden."
|
|
||||||
|
|
||||||
#: src/main/options.c:352
|
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
"kann keine Fernbedienung verwenden, wenn Dateideskriptoren angezeigt werden"
|
|
||||||
|
|
||||||
#: src/main/options.c:360
|
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
"Dateien können beim Betrachten von Dateideskriptoren nicht übertragen werden"
|
|
||||||
|
|
||||||
#: src/main/options.c:368
|
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
|
||||||
msgstr "Nicht verfügbar auf Systemen ohne /proc/self/fdinfo"
|
|
||||||
|
|
||||||
#: src/main/remote.c:221
|
#: src/main/remote.c:221
|
||||||
msgid "message not received"
|
msgid "message not received"
|
||||||
@@ -446,3 +407,65 @@ msgstr "Nachricht nicht empfangen"
|
|||||||
#: src/main/remote.c:328
|
#: src/main/remote.c:328
|
||||||
msgid "IPC not supported on this system"
|
msgid "IPC not supported on this system"
|
||||||
msgstr "IPC wird auf diesem System nicht unterstützt"
|
msgstr "IPC wird auf diesem System nicht unterstützt"
|
||||||
|
|
||||||
|
#: src/main/options.c:102
|
||||||
|
msgid "option structure allocation failed"
|
||||||
|
msgstr "`option' konnte nicht allokiert werden"
|
||||||
|
|
||||||
|
#: src/main/options.c:116
|
||||||
|
msgid "option structure argv allocation failed"
|
||||||
|
msgstr "`option' (argv) konnte nicht allokiert werden"
|
||||||
|
|
||||||
|
#: src/main/options.c:160
|
||||||
|
msgid "integer argument expected"
|
||||||
|
msgstr "Ganzzahliges Argument erwartet"
|
||||||
|
|
||||||
|
#: src/main/options.c:171
|
||||||
|
msgid "numeric argument expected"
|
||||||
|
msgstr "numerisches Argument erwartet"
|
||||||
|
|
||||||
|
#: src/main/options.c:182
|
||||||
|
msgid "process ID or pid:fd pair expected"
|
||||||
|
msgstr "Prozess-ID oder PID:FD-Paar erwartet"
|
||||||
|
|
||||||
|
#: src/main/options.c:189
|
||||||
|
msgid "invalid process ID"
|
||||||
|
msgstr "ungültige Prozess-ID"
|
||||||
|
|
||||||
|
#: src/main/options.c:355
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s --help' for more information."
|
||||||
|
msgstr "`%s --help' zeigt weitere Informationen an."
|
||||||
|
|
||||||
|
#: src/main/options.c:359
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s -h' for more information."
|
||||||
|
msgstr "`%s -h' zeigt weitere Informationen an."
|
||||||
|
|
||||||
|
#: src/main/options.c:375
|
||||||
|
msgid ""
|
||||||
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
|
"descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"Beim Anzeigen von Dateideskriptoren können keine Optionen für den "
|
||||||
|
"Zeilenmodus oder den Übertragungsmodifikator verwendet werden"
|
||||||
|
|
||||||
|
#: src/main/options.c:383
|
||||||
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"Beim Anzeigen von Dateideskriptoren können keine Zeilenmodus- oder "
|
||||||
|
"Übertragungsmodifikatoroptionen verwendet werden."
|
||||||
|
|
||||||
|
#: src/main/options.c:391
|
||||||
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"kann keine Fernbedienung verwenden, wenn Dateideskriptoren angezeigt werden"
|
||||||
|
|
||||||
|
#: src/main/options.c:399
|
||||||
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"Dateien können beim Betrachten von Dateideskriptoren nicht übertragen werden"
|
||||||
|
|
||||||
|
#: src/main/options.c:407
|
||||||
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
|
msgstr "Nicht verfügbar auf Systemen ohne /proc/self/fdinfo"
|
||||||
|
|||||||
+196
-173
@@ -1,7 +1,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-09-05 19:25+0100\n"
|
"POT-Creation-Date: 2023-07-17 21:52+0100\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Date: 1999-06-01 15:18:29+0100\n"
|
"Date: 1999-06-01 15:18:29+0100\n"
|
||||||
"From: Andrew Wood <ivarch@ubik>\n"
|
"From: Andrew Wood <ivarch@ubik>\n"
|
||||||
@@ -35,34 +35,6 @@ msgstr "tentative de verrouillage échoué"
|
|||||||
msgid "failed to open terminal"
|
msgid "failed to open terminal"
|
||||||
msgstr "l'ouverture du terminal a échoué"
|
msgstr "l'ouverture du terminal a échoué"
|
||||||
|
|
||||||
#: src/pv/display.c:138
|
|
||||||
msgid "yzafpnum kMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:143
|
|
||||||
msgid "yzafpnum KMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:558 src/pv/transfer.c:679
|
|
||||||
msgid "buffer allocation failed"
|
|
||||||
msgstr "l'allocation de mémoire tampon a échoué"
|
|
||||||
|
|
||||||
#: src/pv/display.c:618 src/pv/transfer.c:458
|
|
||||||
msgid "B"
|
|
||||||
msgstr "O"
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "/s"
|
|
||||||
msgstr "/s"
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "B/s"
|
|
||||||
msgstr "O/s"
|
|
||||||
|
|
||||||
#: src/pv/display.c:697 src/pv/display.c:702 src/pv/display.c:764
|
|
||||||
msgid "ETA"
|
|
||||||
msgstr "ETA"
|
|
||||||
|
|
||||||
#: src/pv/file.c:119
|
#: src/pv/file.c:119
|
||||||
msgid "failed to seek to start of output"
|
msgid "failed to seek to start of output"
|
||||||
msgstr "ne peut pas passer au début de la sortie"
|
msgstr "ne peut pas passer au début de la sortie"
|
||||||
@@ -75,7 +47,7 @@ msgstr "la fermeture du fichier a échoué"
|
|||||||
msgid "failed to read file"
|
msgid "failed to read file"
|
||||||
msgstr "la lecture du fichier a échoué"
|
msgstr "la lecture du fichier a échoué"
|
||||||
|
|
||||||
#: src/pv/file.c:248
|
#: src/pv/file.c:248 src/main/options.c:288
|
||||||
msgid "failed to stat file"
|
msgid "failed to stat file"
|
||||||
msgstr "échec à statuer sur le fichier"
|
msgstr "échec à statuer sur le fichier"
|
||||||
|
|
||||||
@@ -87,15 +59,14 @@ msgstr "échec à statuer sur le fichier de sortie"
|
|||||||
msgid "input file is output file"
|
msgid "input file is output file"
|
||||||
msgstr "fichiers d'entré et de sortie sont les mêmes"
|
msgstr "fichiers d'entré et de sortie sont les mêmes"
|
||||||
|
|
||||||
#: src/pv/loop.c:520 src/pv/loop.c:590 src/pv/loop.c:642 src/pv/watchpid.c:51
|
#: src/pv/loop.c:527 src/pv/loop.c:597 src/pv/loop.c:649 src/pv/watchpid.c:68
|
||||||
#: src/pv/watchpid.c:74 src/pv/watchpid.c:84 src/pv/watchpid.c:115
|
#: src/pv/watchpid.c:79 src/pv/watchpid.c:93 src/pv/watchpid.c:104
|
||||||
|
#: src/pv/watchpid.c:145 src/pv/watchpid.c:168 src/pv/watchpid.c:178
|
||||||
|
#: src/pv/watchpid.c:192 src/pv/watchpid.c:285 src/pv/watchpid.c:294
|
||||||
|
#: src/pv/watchpid.c:332 src/pv/watchpid.c:349
|
||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:33
|
|
||||||
msgid "none"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/transfer.c:341
|
#: src/pv/transfer.c:341
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
msgstr "la lecture a échoué"
|
msgstr "la lecture a échoué"
|
||||||
@@ -116,19 +87,64 @@ msgstr "n'a pas réussi à dépasser l'erreur"
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr "erreur de lecture dépassée"
|
msgstr "erreur de lecture dépassée"
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:458 src/pv/display.c:687
|
||||||
|
msgid "B"
|
||||||
|
msgstr "O"
|
||||||
|
|
||||||
#: src/pv/transfer.c:631
|
#: src/pv/transfer.c:631
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "l'écriture a échoué"
|
msgstr "l'écriture a échoué"
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:679 src/pv/display.c:618
|
||||||
|
msgid "buffer allocation failed"
|
||||||
|
msgstr "l'allocation de mémoire tampon a échoué"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:770
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "appel de sélection a échoué"
|
msgstr "appel de sélection a échoué"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:76 src/pv/watchpid.c:86 src/pv/watchpid.c:117
|
#: src/pv/state.c:25
|
||||||
|
msgid "history structure allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/state.c:55
|
||||||
|
msgid "none"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:151
|
||||||
|
msgid "yzafpnum kMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:156
|
||||||
|
msgid "yzafpnum KMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:683
|
||||||
|
msgid "b"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:738 src/pv/display.c:752
|
||||||
|
msgid "b/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:757
|
||||||
|
msgid "/s"
|
||||||
|
msgstr "/s"
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:758
|
||||||
|
msgid "B/s"
|
||||||
|
msgstr "O/s"
|
||||||
|
|
||||||
|
#: src/pv/display.c:793 src/pv/display.c:798 src/pv/display.c:860
|
||||||
|
msgid "ETA"
|
||||||
|
msgstr "ETA"
|
||||||
|
|
||||||
|
#: src/pv/watchpid.c:81 src/pv/watchpid.c:95 src/pv/watchpid.c:106
|
||||||
|
#: src/pv/watchpid.c:170 src/pv/watchpid.c:180 src/pv/watchpid.c:194
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/watchpid.c:120
|
#: src/pv/watchpid.c:109 src/pv/watchpid.c:197
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "pas un fichier ordinaire ou un périphérique de bloc"
|
msgstr "pas un fichier ordinaire ou un périphérique de bloc"
|
||||||
|
|
||||||
@@ -185,168 +201,176 @@ msgstr "affiche le taux de tranfert des données"
|
|||||||
msgid "show data transfer average rate counter"
|
msgid "show data transfer average rate counter"
|
||||||
msgstr "afficher le compteur de taux moyen de transfert de données"
|
msgstr "afficher le compteur de taux moyen de transfert de données"
|
||||||
|
|
||||||
#: src/main/help.c:44
|
#: src/main/help.c:43 src/main/help.c:63 src/main/help.c:71
|
||||||
msgid "show number of bytes transferred"
|
|
||||||
msgstr "affiche le nombre d'octets transférés"
|
|
||||||
|
|
||||||
#: src/main/help.c:46
|
|
||||||
msgid "show percentage of transfer buffer in use"
|
|
||||||
msgstr "afficher le pourcentage de tampon de transfert utilisé"
|
|
||||||
|
|
||||||
#: src/main/help.c:47
|
|
||||||
msgid "NUM"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:48
|
|
||||||
msgid "show NUM bytes last written"
|
|
||||||
msgstr "affiche NUM octets pour la dernière fois écrits"
|
|
||||||
|
|
||||||
#: src/main/help.c:49
|
|
||||||
msgid "FORMAT"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:50
|
|
||||||
msgid "set output format to FORMAT"
|
|
||||||
msgstr "définir le format de sortie sur FORMAT"
|
|
||||||
|
|
||||||
#: src/main/help.c:52
|
|
||||||
msgid "output percentages, not visual information"
|
|
||||||
msgstr "imprime en pourcentage, pas les informations visuelles"
|
|
||||||
|
|
||||||
#: src/main/help.c:54
|
|
||||||
msgid "do not output any transfer information at all"
|
|
||||||
msgstr "n'afficher aucune information de transfert"
|
|
||||||
|
|
||||||
#: src/main/help.c:57
|
|
||||||
msgid "display nothing until first byte transferred"
|
|
||||||
msgstr "ne rien afficher avant qu'au moins un octet soit tranféré"
|
|
||||||
|
|
||||||
#: src/main/help.c:58 src/main/help.c:66
|
|
||||||
msgid "SEC"
|
msgid "SEC"
|
||||||
msgstr "SEC"
|
msgstr "SEC"
|
||||||
|
|
||||||
|
#: src/main/help.c:45
|
||||||
|
msgid "compute average rate over past SEC seconds (default 30s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:47
|
||||||
|
msgid "show number of bytes transferred"
|
||||||
|
msgstr "affiche le nombre d'octets transférés"
|
||||||
|
|
||||||
|
#: src/main/help.c:49
|
||||||
|
msgid "show number of bits transferred"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:51
|
||||||
|
msgid "show percentage of transfer buffer in use"
|
||||||
|
msgstr "afficher le pourcentage de tampon de transfert utilisé"
|
||||||
|
|
||||||
|
#: src/main/help.c:52
|
||||||
|
msgid "NUM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:53
|
||||||
|
msgid "show NUM bytes last written"
|
||||||
|
msgstr "affiche NUM octets pour la dernière fois écrits"
|
||||||
|
|
||||||
|
#: src/main/help.c:54
|
||||||
|
msgid "FORMAT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:55
|
||||||
|
msgid "set output format to FORMAT"
|
||||||
|
msgstr "définir le format de sortie sur FORMAT"
|
||||||
|
|
||||||
|
#: src/main/help.c:57
|
||||||
|
msgid "output percentages, not visual information"
|
||||||
|
msgstr "imprime en pourcentage, pas les informations visuelles"
|
||||||
|
|
||||||
#: src/main/help.c:59
|
#: src/main/help.c:59
|
||||||
|
msgid "do not output any transfer information at all"
|
||||||
|
msgstr "n'afficher aucune information de transfert"
|
||||||
|
|
||||||
|
#: src/main/help.c:62
|
||||||
|
msgid "display nothing until first byte transferred"
|
||||||
|
msgstr "ne rien afficher avant qu'au moins un octet soit tranféré"
|
||||||
|
|
||||||
|
#: src/main/help.c:64
|
||||||
msgid "display nothing until SEC seconds have passed"
|
msgid "display nothing until SEC seconds have passed"
|
||||||
msgstr "n'afficher rien jusqu'à ce que SEC secondes se soient écoulées"
|
msgstr "n'afficher rien jusqu'à ce que SEC secondes se soient écoulées"
|
||||||
|
|
||||||
#: src/main/help.c:60
|
#: src/main/help.c:65
|
||||||
msgid "SIZE"
|
msgid "SIZE"
|
||||||
msgstr "TAILLE"
|
msgstr "TAILLE"
|
||||||
|
|
||||||
#: src/main/help.c:61
|
#: src/main/help.c:66
|
||||||
msgid "set estimated data size to SIZE bytes"
|
msgid "set estimated data size to SIZE bytes"
|
||||||
msgstr "ajuste la taille estimée des données à TAILLE octets"
|
msgstr "ajuste la taille estimée des données à TAILLE octets"
|
||||||
|
|
||||||
#: src/main/help.c:63
|
#: src/main/help.c:68
|
||||||
msgid "count lines instead of bytes"
|
msgid "count lines instead of bytes"
|
||||||
msgstr "compte les lignes au lieu des octets"
|
msgstr "compte les lignes au lieu des octets"
|
||||||
|
|
||||||
#: src/main/help.c:65
|
#: src/main/help.c:70
|
||||||
msgid "lines are null-terminated"
|
msgid "lines are null-terminated"
|
||||||
msgstr "les lignes sont terminées par un nul"
|
msgstr "les lignes sont terminées par un nul"
|
||||||
|
|
||||||
#: src/main/help.c:67
|
#: src/main/help.c:72
|
||||||
msgid "update every SEC seconds"
|
msgid "update every SEC seconds"
|
||||||
msgstr "mise-à-jour toute les SEC secondes"
|
msgstr "mise-à-jour toute les SEC secondes"
|
||||||
|
|
||||||
#: src/main/help.c:68
|
#: src/main/help.c:73
|
||||||
msgid "WIDTH"
|
msgid "WIDTH"
|
||||||
msgstr "LARGEUR"
|
msgstr "LARGEUR"
|
||||||
|
|
||||||
#: src/main/help.c:69
|
#: src/main/help.c:74
|
||||||
msgid "assume terminal is WIDTH characters wide"
|
msgid "assume terminal is WIDTH characters wide"
|
||||||
msgstr "présumer la largeur du terminal à LARGEUR caractères"
|
msgstr "présumer la largeur du terminal à LARGEUR caractères"
|
||||||
|
|
||||||
#: src/main/help.c:70
|
#: src/main/help.c:75
|
||||||
msgid "HEIGHT"
|
msgid "HEIGHT"
|
||||||
msgstr "HAUTEUR"
|
msgstr "HAUTEUR"
|
||||||
|
|
||||||
#: src/main/help.c:71
|
#: src/main/help.c:76
|
||||||
msgid "assume terminal is HEIGHT rows high"
|
msgid "assume terminal is HEIGHT rows high"
|
||||||
msgstr "présumer la hauteur du terminal à HAUTEUR lignes"
|
msgstr "présumer la hauteur du terminal à HAUTEUR lignes"
|
||||||
|
|
||||||
#: src/main/help.c:72
|
#: src/main/help.c:77
|
||||||
msgid "NAME"
|
msgid "NAME"
|
||||||
msgstr "NOM"
|
msgstr "NOM"
|
||||||
|
|
||||||
#: src/main/help.c:73
|
#: src/main/help.c:78
|
||||||
msgid "prefix visual information with NAME"
|
msgid "prefix visual information with NAME"
|
||||||
msgstr "préfixer les informations visuelles avec NOM"
|
msgstr "préfixer les informations visuelles avec NOM"
|
||||||
|
|
||||||
#: src/main/help.c:75
|
#: src/main/help.c:80
|
||||||
msgid "output even if standard error is not a terminal"
|
msgid "output even if standard error is not a terminal"
|
||||||
msgstr "imprime vers la sortie d'erreur même si ce n'est pas un terminal"
|
msgstr "imprime vers la sortie d'erreur même si ce n'est pas un terminal"
|
||||||
|
|
||||||
#: src/main/help.c:77
|
#: src/main/help.c:82
|
||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr "utiliser les séquences d'échappements de positionnement de curseur"
|
msgstr "utiliser les séquences d'échappements de positionnement de curseur"
|
||||||
|
|
||||||
#: src/main/help.c:79
|
#: src/main/help.c:84
|
||||||
msgid "RATE"
|
msgid "RATE"
|
||||||
msgstr "TAUX"
|
msgstr "TAUX"
|
||||||
|
|
||||||
#: src/main/help.c:80
|
#: src/main/help.c:85
|
||||||
msgid "limit transfer to RATE bytes per second"
|
msgid "limit transfer to RATE bytes per second"
|
||||||
msgstr "limite le taux de transfer à TAUX octets par seconde"
|
msgstr "limite le taux de transfer à TAUX octets par seconde"
|
||||||
|
|
||||||
#: src/main/help.c:81
|
#: src/main/help.c:86
|
||||||
msgid "BYTES"
|
msgid "BYTES"
|
||||||
msgstr "OCTETS"
|
msgstr "OCTETS"
|
||||||
|
|
||||||
#: src/main/help.c:82
|
#: src/main/help.c:87
|
||||||
msgid "use a buffer size of BYTES"
|
msgid "use a buffer size of BYTES"
|
||||||
msgstr "Utiliser une mémoire tampon de OCTETS octets"
|
msgstr "Utiliser une mémoire tampon de OCTETS octets"
|
||||||
|
|
||||||
#: src/main/help.c:84
|
#: src/main/help.c:89
|
||||||
msgid "never use splice(), always use read/write"
|
msgid "never use splice(), always use read/write"
|
||||||
msgstr "n'utilisez jamais splice(), utilisez toujours read/write"
|
msgstr "n'utilisez jamais splice(), utilisez toujours read/write"
|
||||||
|
|
||||||
#: src/main/help.c:86
|
#: src/main/help.c:91
|
||||||
msgid "skip read errors in input"
|
msgid "skip read errors in input"
|
||||||
msgstr "ignorer les erreurs de lecture dans l'entrée"
|
msgstr "ignorer les erreurs de lecture dans l'entrée"
|
||||||
|
|
||||||
#: src/main/help.c:88
|
#: src/main/help.c:93
|
||||||
msgid "stop after --size bytes have been transferred"
|
msgid "stop after --size bytes have been transferred"
|
||||||
msgstr "arrêter après le transfert de --size octets"
|
msgstr "arrêter après le transfert de --size octets"
|
||||||
|
|
||||||
#: src/main/help.c:90
|
#: src/main/help.c:95
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr "PID"
|
msgstr "PID"
|
||||||
|
|
||||||
#: src/main/help.c:91
|
#: src/main/help.c:96
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr "mettre-à-jour la configuration du processus PID"
|
msgstr "mettre-à-jour la configuration du processus PID"
|
||||||
|
|
||||||
#: src/main/help.c:94
|
#: src/main/help.c:99
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:95
|
#: src/main/help.c:100
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "enregistrer l'ID de processus dans FILE"
|
msgstr "enregistrer l'ID de processus dans FILE"
|
||||||
|
|
||||||
#: src/main/help.c:97
|
#: src/main/help.c:102
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:98
|
#: src/main/help.c:103
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "regarder le fichier FD ouvert par le processus PID"
|
msgstr "regarder le fichier FD ouvert par le processus PID"
|
||||||
|
|
||||||
#: src/main/help.c:101
|
#: src/main/help.c:106
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr "afficher cette aide puis quitter"
|
msgstr "afficher cette aide puis quitter"
|
||||||
|
|
||||||
#: src/main/help.c:103
|
#: src/main/help.c:108
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr "afficher la version puis quitter"
|
msgstr "afficher la version puis quitter"
|
||||||
|
|
||||||
#: src/main/help.c:109
|
#: src/main/help.c:114
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Utilisation : %s [OPTIONS] [FICHIER]..."
|
msgstr "Utilisation : %s [OPTIONS] [FICHIER]..."
|
||||||
|
|
||||||
#: src/main/help.c:112
|
#: src/main/help.c:117
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output,\n"
|
"Concatenate FILE(s), or standard input, to standard output,\n"
|
||||||
"with monitoring."
|
"with monitoring."
|
||||||
@@ -354,7 +378,7 @@ msgstr ""
|
|||||||
"Concatène FICHIER(s), ou l'entrée standard, sur la sortie standard\n"
|
"Concatène FICHIER(s), ou l'entrée standard, sur la sortie standard\n"
|
||||||
"avec monitorage."
|
"avec monitorage."
|
||||||
|
|
||||||
#: src/main/help.c:207
|
#: src/main/help.c:212
|
||||||
msgid ""
|
msgid ""
|
||||||
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
||||||
"output filename.\n"
|
"output filename.\n"
|
||||||
@@ -362,7 +386,7 @@ msgstr ""
|
|||||||
"Le débogage est activé; exportez la variable d'environnement DEBUG pour\n"
|
"Le débogage est activé; exportez la variable d'environnement DEBUG pour\n"
|
||||||
"définir le nom du fichier de sortie.\n"
|
"définir le nom du fichier de sortie.\n"
|
||||||
|
|
||||||
#: src/main/help.c:211
|
#: src/main/help.c:216
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to %s."
|
msgid "Please report any bugs to %s."
|
||||||
msgstr "SVP rapporter touts bogues à %s."
|
msgstr "SVP rapporter touts bogues à %s."
|
||||||
@@ -371,74 +395,9 @@ msgstr "SVP rapporter touts bogues à %s."
|
|||||||
msgid "state allocation failed"
|
msgid "state allocation failed"
|
||||||
msgstr "échec de l'allocation de mémoire de condition"
|
msgstr "échec de l'allocation de mémoire de condition"
|
||||||
|
|
||||||
#: src/main/main.c:246
|
#: src/main/main.c:248
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to read terminal attributes"
|
msgid "failed to read terminal attributes"
|
||||||
msgstr "échec de lecture du nom du terminal"
|
|
||||||
|
|
||||||
#: src/main/options.c:98
|
|
||||||
msgid "option structure allocation failed"
|
|
||||||
msgstr "l'allocation pour la structure d'une option a echoué"
|
|
||||||
|
|
||||||
#: src/main/options.c:112
|
|
||||||
msgid "option structure argv allocation failed"
|
|
||||||
msgstr "l'allocation pour la structure de l'option argv a echoué"
|
|
||||||
|
|
||||||
#: src/main/options.c:151
|
|
||||||
msgid "integer argument expected"
|
|
||||||
msgstr "Valeur entière attendue"
|
|
||||||
|
|
||||||
#: src/main/options.c:162
|
|
||||||
msgid "numeric argument expected"
|
|
||||||
msgstr "Valeur numérique attendue"
|
|
||||||
|
|
||||||
#: src/main/options.c:173
|
|
||||||
msgid "process ID or pid:fd pair expected"
|
|
||||||
msgstr "ID de processus ou paire pid:fd attendue"
|
|
||||||
|
|
||||||
#: src/main/options.c:180
|
|
||||||
msgid "invalid process ID"
|
|
||||||
msgstr "ID de processus non valide"
|
|
||||||
|
|
||||||
#: src/main/options.c:316
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information."
|
|
||||||
msgstr "Essayez `%s --help' pour plus d'information."
|
|
||||||
|
|
||||||
#: src/main/options.c:320
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s -h' for more information."
|
|
||||||
msgstr "Essayez `%s -h' pour plus d'information."
|
|
||||||
|
|
||||||
#: src/main/options.c:336
|
|
||||||
msgid ""
|
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
|
||||||
"descriptors"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"impossible d'utiliser le mode ligne ou les options de modificateur de "
|
|
||||||
"transfert lors de la visualisation des descripteurs de fichiers"
|
|
||||||
|
|
||||||
#: src/main/options.c:344
|
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
"impossible d'utiliser le positionnement du curseur lors de la visualisation "
|
|
||||||
"des descripteurs de fichier"
|
|
||||||
|
|
||||||
#: src/main/options.c:352
|
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
"impossible d'utiliser la télécommande lors de la visualisation des "
|
|
||||||
"descripteurs de fichiers"
|
|
||||||
|
|
||||||
#: src/main/options.c:360
|
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
"impossible de transférer des fichiers lorsque vous regardez des descripteurs "
|
|
||||||
"de fichiers"
|
|
||||||
|
|
||||||
#: src/main/options.c:368
|
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
|
||||||
msgstr "non disponible sur les systèmes sans /proc/self/fdinfo"
|
|
||||||
|
|
||||||
#: src/main/remote.c:221
|
#: src/main/remote.c:221
|
||||||
msgid "message not received"
|
msgid "message not received"
|
||||||
@@ -447,3 +406,67 @@ msgstr "message non reçu"
|
|||||||
#: src/main/remote.c:328
|
#: src/main/remote.c:328
|
||||||
msgid "IPC not supported on this system"
|
msgid "IPC not supported on this system"
|
||||||
msgstr "IPC non pris en charge sur ce système"
|
msgstr "IPC non pris en charge sur ce système"
|
||||||
|
|
||||||
|
#: src/main/options.c:102
|
||||||
|
msgid "option structure allocation failed"
|
||||||
|
msgstr "l'allocation pour la structure d'une option a echoué"
|
||||||
|
|
||||||
|
#: src/main/options.c:116
|
||||||
|
msgid "option structure argv allocation failed"
|
||||||
|
msgstr "l'allocation pour la structure de l'option argv a echoué"
|
||||||
|
|
||||||
|
#: src/main/options.c:160
|
||||||
|
msgid "integer argument expected"
|
||||||
|
msgstr "Valeur entière attendue"
|
||||||
|
|
||||||
|
#: src/main/options.c:171
|
||||||
|
msgid "numeric argument expected"
|
||||||
|
msgstr "Valeur numérique attendue"
|
||||||
|
|
||||||
|
#: src/main/options.c:182
|
||||||
|
msgid "process ID or pid:fd pair expected"
|
||||||
|
msgstr "ID de processus ou paire pid:fd attendue"
|
||||||
|
|
||||||
|
#: src/main/options.c:189
|
||||||
|
msgid "invalid process ID"
|
||||||
|
msgstr "ID de processus non valide"
|
||||||
|
|
||||||
|
#: src/main/options.c:355
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s --help' for more information."
|
||||||
|
msgstr "Essayez `%s --help' pour plus d'information."
|
||||||
|
|
||||||
|
#: src/main/options.c:359
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s -h' for more information."
|
||||||
|
msgstr "Essayez `%s -h' pour plus d'information."
|
||||||
|
|
||||||
|
#: src/main/options.c:375
|
||||||
|
msgid ""
|
||||||
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
|
"descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"impossible d'utiliser le mode ligne ou les options de modificateur de "
|
||||||
|
"transfert lors de la visualisation des descripteurs de fichiers"
|
||||||
|
|
||||||
|
#: src/main/options.c:383
|
||||||
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"impossible d'utiliser le positionnement du curseur lors de la visualisation "
|
||||||
|
"des descripteurs de fichier"
|
||||||
|
|
||||||
|
#: src/main/options.c:391
|
||||||
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"impossible d'utiliser la télécommande lors de la visualisation des "
|
||||||
|
"descripteurs de fichiers"
|
||||||
|
|
||||||
|
#: src/main/options.c:399
|
||||||
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"impossible de transférer des fichiers lorsque vous regardez des descripteurs "
|
||||||
|
"de fichiers"
|
||||||
|
|
||||||
|
#: src/main/options.c:407
|
||||||
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
|
msgstr "non disponible sur les systèmes sans /proc/self/fdinfo"
|
||||||
|
|||||||
+228
-213
@@ -6,24 +6,22 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-09-05 19:25+0100\n"
|
"POT-Creation-Date: 2023-07-17 21:52+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=ISO-8859-2\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: src/pv/cursor.c:80
|
#: src/pv/cursor.c:80
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to get terminal name"
|
msgid "failed to get terminal name"
|
||||||
msgstr "nie uda³o siê otworzyæ terminala"
|
msgstr ""
|
||||||
|
|
||||||
# "Przewidywany czas ukoñczenia" for ETA is too long
|
# "Przewidywany czas ukończenia" for ETA is too long
|
||||||
#: src/pv/cursor.c:125
|
#: src/pv/cursor.c:125
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to open lock file"
|
msgid "failed to open lock file"
|
||||||
msgstr "nie uda³o siê zamkn±æ pliku"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/cursor.c:159
|
#: src/pv/cursor.c:159
|
||||||
msgid "lock attempt failed"
|
msgid "lock attempt failed"
|
||||||
@@ -31,74 +29,44 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/pv/cursor.c:409
|
#: src/pv/cursor.c:409
|
||||||
msgid "failed to open terminal"
|
msgid "failed to open terminal"
|
||||||
msgstr "nie uda³o siê otworzyæ terminala"
|
msgstr "nie udało się otworzyć terminala"
|
||||||
|
|
||||||
#: src/pv/display.c:138
|
|
||||||
msgid "yzafpnum kMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:143
|
|
||||||
msgid "yzafpnum KMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:558 src/pv/transfer.c:679
|
|
||||||
msgid "buffer allocation failed"
|
|
||||||
msgstr "nie uda³o siê zaalokowaæ bufora"
|
|
||||||
|
|
||||||
#: src/pv/display.c:618 src/pv/transfer.c:458
|
|
||||||
msgid "B"
|
|
||||||
msgstr "B"
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "/s"
|
|
||||||
msgstr "/s"
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "B/s"
|
|
||||||
msgstr "B/s"
|
|
||||||
|
|
||||||
#: src/pv/display.c:697 src/pv/display.c:702 src/pv/display.c:764
|
|
||||||
msgid "ETA"
|
|
||||||
msgstr "ETA"
|
|
||||||
|
|
||||||
#: src/pv/file.c:119
|
#: src/pv/file.c:119
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to seek to start of output"
|
msgid "failed to seek to start of output"
|
||||||
msgstr "nie uda³o siê wykonaæ operacji stat na pliku wyj¶ciowym"
|
msgstr ""
|
||||||
|
|
||||||
# "Przewidywany czas ukoñczenia" for ETA is too long
|
# "Przewidywany czas ukończenia" for ETA is too long
|
||||||
#: src/pv/file.c:215
|
#: src/pv/file.c:215
|
||||||
msgid "failed to close file"
|
msgid "failed to close file"
|
||||||
msgstr "nie uda³o siê zamkn±æ pliku"
|
msgstr "nie udało się zamknąć pliku"
|
||||||
|
|
||||||
#: src/pv/file.c:238
|
#: src/pv/file.c:238
|
||||||
msgid "failed to read file"
|
msgid "failed to read file"
|
||||||
msgstr "nie uda³o siê odczytaæ pliku"
|
msgstr "nie udało się odczytać pliku"
|
||||||
|
|
||||||
#: src/pv/file.c:248
|
#: src/pv/file.c:248 src/main/options.c:288
|
||||||
msgid "failed to stat file"
|
msgid "failed to stat file"
|
||||||
msgstr "nie uda³o siê wykonaæ operacji stat na pliku"
|
msgstr "nie udało się wykonać operacji stat na pliku"
|
||||||
|
|
||||||
#: src/pv/file.c:257
|
#: src/pv/file.c:257
|
||||||
msgid "failed to stat output file"
|
msgid "failed to stat output file"
|
||||||
msgstr "nie uda³o siê wykonaæ operacji stat na pliku wyj¶ciowym"
|
msgstr "nie udało się wykonać operacji stat na pliku wyjściowym"
|
||||||
|
|
||||||
#: src/pv/file.c:280
|
#: src/pv/file.c:280
|
||||||
msgid "input file is output file"
|
msgid "input file is output file"
|
||||||
msgstr "plik wej¶ciowy jest zarazem plikiem wyj¶ciowym"
|
msgstr "plik wejściowy jest zarazem plikiem wyjściowym"
|
||||||
|
|
||||||
#: src/pv/loop.c:520 src/pv/loop.c:590 src/pv/loop.c:642 src/pv/watchpid.c:51
|
#: src/pv/loop.c:527 src/pv/loop.c:597 src/pv/loop.c:649 src/pv/watchpid.c:68
|
||||||
#: src/pv/watchpid.c:74 src/pv/watchpid.c:84 src/pv/watchpid.c:115
|
#: src/pv/watchpid.c:79 src/pv/watchpid.c:93 src/pv/watchpid.c:104
|
||||||
|
#: src/pv/watchpid.c:145 src/pv/watchpid.c:168 src/pv/watchpid.c:178
|
||||||
|
#: src/pv/watchpid.c:192 src/pv/watchpid.c:285 src/pv/watchpid.c:294
|
||||||
|
#: src/pv/watchpid.c:332 src/pv/watchpid.c:349
|
||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:33
|
|
||||||
msgid "none"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/transfer.c:341
|
#: src/pv/transfer.c:341
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
msgstr "b³±d odczytu"
|
msgstr "błąd odczytu"
|
||||||
|
|
||||||
#: src/pv/transfer.c:359
|
#: src/pv/transfer.c:359
|
||||||
msgid "warning: read errors detected"
|
msgid "warning: read errors detected"
|
||||||
@@ -109,34 +77,78 @@ msgid "file is not seekable"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:437
|
#: src/pv/transfer.c:437
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to seek past error"
|
msgid "failed to seek past error"
|
||||||
msgstr "nie uda³o siê wykonaæ operacji stat na pliku"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:456
|
#: src/pv/transfer.c:456
|
||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:458 src/pv/display.c:687
|
||||||
|
msgid "B"
|
||||||
|
msgstr "B"
|
||||||
|
|
||||||
#: src/pv/transfer.c:631
|
#: src/pv/transfer.c:631
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "b³±d zapisu"
|
msgstr "błąd zapisu"
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:679 src/pv/display.c:618
|
||||||
|
msgid "buffer allocation failed"
|
||||||
|
msgstr "nie udało się zaalokować bufora"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:770
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "nie uda³o siê wywo³aæ funkcji select"
|
msgstr "nie udało się wywołać funkcji select"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:76 src/pv/watchpid.c:86 src/pv/watchpid.c:117
|
#: src/pv/state.c:25
|
||||||
|
msgid "history structure allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/state.c:55
|
||||||
|
msgid "none"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:151
|
||||||
|
msgid "yzafpnum kMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:156
|
||||||
|
msgid "yzafpnum KMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:683
|
||||||
|
msgid "b"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:738 src/pv/display.c:752
|
||||||
|
msgid "b/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:757
|
||||||
|
msgid "/s"
|
||||||
|
msgstr "/s"
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:758
|
||||||
|
msgid "B/s"
|
||||||
|
msgstr "B/s"
|
||||||
|
|
||||||
|
#: src/pv/display.c:793 src/pv/display.c:798 src/pv/display.c:860
|
||||||
|
msgid "ETA"
|
||||||
|
msgstr "ETA"
|
||||||
|
|
||||||
|
#: src/pv/watchpid.c:81 src/pv/watchpid.c:95 src/pv/watchpid.c:106
|
||||||
|
#: src/pv/watchpid.c:170 src/pv/watchpid.c:180 src/pv/watchpid.c:194
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/watchpid.c:120
|
#: src/pv/watchpid.c:109 src/pv/watchpid.c:197
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/version.c:17
|
#: src/main/version.c:17
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "%s %s - Copyright %s %s"
|
msgid "%s %s - Copyright %s %s"
|
||||||
msgstr "%s %s - Prawa autorskie (C) %s %s"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/version.c:20
|
#: src/main/version.c:20
|
||||||
#, c-format
|
#, c-format
|
||||||
@@ -158,275 +170,222 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/main/help.c:31
|
#: src/main/help.c:31
|
||||||
msgid "show progress bar"
|
msgid "show progress bar"
|
||||||
msgstr "poka¿ pasek postêpu"
|
msgstr "pokaż pasek postępu"
|
||||||
|
|
||||||
#: src/main/help.c:33
|
#: src/main/help.c:33
|
||||||
msgid "show elapsed time"
|
msgid "show elapsed time"
|
||||||
msgstr "poka¿ up³ywaj±cy czas"
|
msgstr "pokaż upływający czas"
|
||||||
|
|
||||||
#: src/main/help.c:35
|
#: src/main/help.c:35
|
||||||
msgid "show estimated time of arrival (completion)"
|
msgid "show estimated time of arrival (completion)"
|
||||||
msgstr "poka¿ szacowany czas ukoñczenia"
|
msgstr "pokaż szacowany czas ukończenia"
|
||||||
|
|
||||||
#: src/main/help.c:38
|
#: src/main/help.c:38
|
||||||
#, fuzzy
|
|
||||||
msgid "show absolute estimated time of arrival (completion)"
|
msgid "show absolute estimated time of arrival (completion)"
|
||||||
msgstr "poka¿ szacowany czas ukoñczenia"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:40
|
#: src/main/help.c:40
|
||||||
msgid "show data transfer rate counter"
|
msgid "show data transfer rate counter"
|
||||||
msgstr "poka¿ licznik prêdko¶ci przesy³ania"
|
msgstr "pokaż licznik prędkości przesyłania"
|
||||||
|
|
||||||
#: src/main/help.c:42
|
#: src/main/help.c:42
|
||||||
msgid "show data transfer average rate counter"
|
msgid "show data transfer average rate counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:44
|
#: src/main/help.c:43 src/main/help.c:63 src/main/help.c:71
|
||||||
msgid "show number of bytes transferred"
|
msgid "SEC"
|
||||||
msgstr "poka¿ ilo¶æ przes³anych bajtów"
|
msgstr "WARTOŚĆ"
|
||||||
|
|
||||||
#: src/main/help.c:46
|
#: src/main/help.c:45
|
||||||
msgid "show percentage of transfer buffer in use"
|
msgid "compute average rate over past SEC seconds (default 30s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:47
|
#: src/main/help.c:47
|
||||||
msgid "NUM"
|
msgid "show number of bytes transferred"
|
||||||
msgstr ""
|
msgstr "pokaż ilość przesłanych bajtów"
|
||||||
|
|
||||||
#: src/main/help.c:48
|
|
||||||
msgid "show NUM bytes last written"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:49
|
#: src/main/help.c:49
|
||||||
msgid "FORMAT"
|
msgid "show number of bits transferred"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:50
|
#: src/main/help.c:51
|
||||||
msgid "set output format to FORMAT"
|
msgid "show percentage of transfer buffer in use"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:52
|
#: src/main/help.c:52
|
||||||
msgid "output percentages, not visual information"
|
msgid "NUM"
|
||||||
msgstr "w¶wietl wyj¶cie procentowo, bez graficznej prezentacji"
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:53
|
||||||
|
msgid "show NUM bytes last written"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:54
|
#: src/main/help.c:54
|
||||||
msgid "do not output any transfer information at all"
|
msgid "FORMAT"
|
||||||
msgstr "nie wy¶wietlaj ¿adnych informacji o przesy³aniu"
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:55
|
||||||
|
msgid "set output format to FORMAT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:57
|
#: src/main/help.c:57
|
||||||
msgid "display nothing until first byte transferred"
|
msgid "output percentages, not visual information"
|
||||||
msgstr "nie wy¶wietlaj nic a¿ do pierwszego przes³anego bajtu"
|
msgstr "wświetl wyjście procentowo, bez graficznej prezentacji"
|
||||||
|
|
||||||
#: src/main/help.c:58 src/main/help.c:66
|
|
||||||
msgid "SEC"
|
|
||||||
msgstr "WARTO¦Æ"
|
|
||||||
|
|
||||||
#: src/main/help.c:59
|
#: src/main/help.c:59
|
||||||
#, fuzzy
|
msgid "do not output any transfer information at all"
|
||||||
|
msgstr "nie wyświetlaj żadnych informacji o przesyłaniu"
|
||||||
|
|
||||||
|
#: src/main/help.c:62
|
||||||
|
msgid "display nothing until first byte transferred"
|
||||||
|
msgstr "nie wyświetlaj nic aż do pierwszego przesłanego bajtu"
|
||||||
|
|
||||||
|
#: src/main/help.c:64
|
||||||
msgid "display nothing until SEC seconds have passed"
|
msgid "display nothing until SEC seconds have passed"
|
||||||
msgstr "nie wy¶wietlaj nic a¿ do pierwszego przes³anego bajtu"
|
|
||||||
|
|
||||||
#: src/main/help.c:60
|
|
||||||
msgid "SIZE"
|
|
||||||
msgstr "WARTO¦Æ"
|
|
||||||
|
|
||||||
#: src/main/help.c:61
|
|
||||||
msgid "set estimated data size to SIZE bytes"
|
|
||||||
msgstr "ustaw oczekiwany rozmiar danych na WARTO¦Æ bajtów"
|
|
||||||
|
|
||||||
#: src/main/help.c:63
|
|
||||||
msgid "count lines instead of bytes"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:65
|
#: src/main/help.c:65
|
||||||
|
msgid "SIZE"
|
||||||
|
msgstr "WARTOŚĆ"
|
||||||
|
|
||||||
|
#: src/main/help.c:66
|
||||||
|
msgid "set estimated data size to SIZE bytes"
|
||||||
|
msgstr "ustaw oczekiwany rozmiar danych na WARTOŚĆ bajtów"
|
||||||
|
|
||||||
|
#: src/main/help.c:68
|
||||||
|
msgid "count lines instead of bytes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:70
|
||||||
msgid "lines are null-terminated"
|
msgid "lines are null-terminated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:67
|
#: src/main/help.c:72
|
||||||
msgid "update every SEC seconds"
|
msgid "update every SEC seconds"
|
||||||
msgstr "aktualizuj co ka¿de WARTO¦Æ sekund"
|
msgstr "aktualizuj co każde WARTOŚĆ sekund"
|
||||||
|
|
||||||
#: src/main/help.c:68
|
#: src/main/help.c:73
|
||||||
msgid "WIDTH"
|
msgid "WIDTH"
|
||||||
msgstr "WARTO¦Æ"
|
msgstr "WARTOŚĆ"
|
||||||
|
|
||||||
#: src/main/help.c:69
|
#: src/main/help.c:74
|
||||||
msgid "assume terminal is WIDTH characters wide"
|
msgid "assume terminal is WIDTH characters wide"
|
||||||
msgstr "przyjmij, ¿e terminal ma szeroko¶æ WARTO¦Æ znaków"
|
msgstr "przyjmij, że terminal ma szerokość WARTOŚĆ znaków"
|
||||||
|
|
||||||
#: src/main/help.c:70
|
#: src/main/help.c:75
|
||||||
msgid "HEIGHT"
|
msgid "HEIGHT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:71
|
#: src/main/help.c:76
|
||||||
msgid "assume terminal is HEIGHT rows high"
|
msgid "assume terminal is HEIGHT rows high"
|
||||||
msgstr "przyjmij, ¿e terminal ma szeroko¶æ WARTO¦Æ znaków"
|
msgstr "przyjmij, że terminal ma szerokość WARTOŚĆ znaków"
|
||||||
|
|
||||||
#: src/main/help.c:72
|
#: src/main/help.c:77
|
||||||
msgid "NAME"
|
msgid "NAME"
|
||||||
msgstr "NAZWA"
|
msgstr "NAZWA"
|
||||||
|
|
||||||
#: src/main/help.c:73
|
#: src/main/help.c:78
|
||||||
msgid "prefix visual information with NAME"
|
msgid "prefix visual information with NAME"
|
||||||
msgstr "poprzed¼ informacje prefiksem NAZWA"
|
msgstr "poprzedź informacje prefiksem NAZWA"
|
||||||
|
|
||||||
#: src/main/help.c:75
|
#: src/main/help.c:80
|
||||||
msgid "output even if standard error is not a terminal"
|
msgid "output even if standard error is not a terminal"
|
||||||
msgstr "poka¿ wyj¶cie nawet gdy b³êdy nie s± typu terminal"
|
msgstr "pokaż wyjście nawet gdy błędy nie są typu terminal"
|
||||||
|
|
||||||
#: src/main/help.c:77
|
#: src/main/help.c:82
|
||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr "u¿ywaj sekwencji escape do pozycjonowania"
|
msgstr "używaj sekwencji escape do pozycjonowania"
|
||||||
|
|
||||||
#: src/main/help.c:79
|
#: src/main/help.c:84
|
||||||
msgid "RATE"
|
msgid "RATE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:80
|
#: src/main/help.c:85
|
||||||
msgid "limit transfer to RATE bytes per second"
|
msgid "limit transfer to RATE bytes per second"
|
||||||
msgstr "ogranicz przesy³ane dane do RATE bajtów na sekundê"
|
msgstr "ogranicz przesyłane dane do RATE bajtów na sekundę"
|
||||||
|
|
||||||
#: src/main/help.c:81
|
#: src/main/help.c:86
|
||||||
msgid "BYTES"
|
msgid "BYTES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:82
|
#: src/main/help.c:87
|
||||||
msgid "use a buffer size of BYTES"
|
msgid "use a buffer size of BYTES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:84
|
#: src/main/help.c:89
|
||||||
msgid "never use splice(), always use read/write"
|
msgid "never use splice(), always use read/write"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:86
|
#: src/main/help.c:91
|
||||||
msgid "skip read errors in input"
|
msgid "skip read errors in input"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:88
|
#: src/main/help.c:93
|
||||||
#, fuzzy
|
|
||||||
msgid "stop after --size bytes have been transferred"
|
msgid "stop after --size bytes have been transferred"
|
||||||
msgstr "poka¿ ilo¶æ przes³anych bajtów"
|
|
||||||
|
|
||||||
#: src/main/help.c:90
|
|
||||||
msgid "PID"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:91
|
|
||||||
msgid "update settings of process PID"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:94
|
|
||||||
msgid "FILE"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:95
|
#: src/main/help.c:95
|
||||||
|
msgid "PID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:96
|
||||||
|
msgid "update settings of process PID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:99
|
||||||
|
msgid "FILE"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:100
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:97
|
#: src/main/help.c:102
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:98
|
#: src/main/help.c:103
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:101
|
#: src/main/help.c:106
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr "wy¶wietl te informacje z pomoc± i wyjd¼"
|
msgstr "wyświetl te informacje z pomocą i wyjdź"
|
||||||
|
|
||||||
#: src/main/help.c:103
|
#: src/main/help.c:108
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr "wy¶wietl informacje o wersji i wyjd¼"
|
msgstr "wyświetl informacje o wersji i wyjdź"
|
||||||
|
|
||||||
#: src/main/help.c:109
|
#: src/main/help.c:114
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Sposób u¿ycia: %s [OPCJA] [PLIK]..."
|
msgstr "Sposób użycia: %s [OPCJA] [PLIK]..."
|
||||||
|
|
||||||
#: src/main/help.c:112
|
#: src/main/help.c:117
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output,\n"
|
"Concatenate FILE(s), or standard input, to standard output,\n"
|
||||||
"with monitoring."
|
"with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"£±czenie PLIK(ów) lub wej¶cia standardowego, do wyj¶cia standardowego\n"
|
"Łączenie PLIK(ów) lub wejścia standardowego, do wyjścia standardowego\n"
|
||||||
"z monitoringiem."
|
"z monitoringiem."
|
||||||
|
|
||||||
#: src/main/help.c:207
|
#: src/main/help.c:212
|
||||||
msgid ""
|
msgid ""
|
||||||
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
||||||
"output filename.\n"
|
"output filename.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:211
|
#: src/main/help.c:216
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to %s."
|
msgid "Please report any bugs to %s."
|
||||||
msgstr "Proszê przesy³aæ zg³oszenia b³êdów do %s."
|
msgstr "Proszę przesyłać zgłoszenia błędów do %s."
|
||||||
|
|
||||||
#: src/main/main.c:74
|
#: src/main/main.c:74
|
||||||
#, fuzzy
|
|
||||||
msgid "state allocation failed"
|
msgid "state allocation failed"
|
||||||
msgstr "nie uda³o siê zaalokowaæ bufora"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/main.c:246
|
#: src/main/main.c:248
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to read terminal attributes"
|
msgid "failed to read terminal attributes"
|
||||||
msgstr "nie uda³o siê otworzyæ terminala"
|
|
||||||
|
|
||||||
#: src/main/options.c:98
|
|
||||||
msgid "option structure allocation failed"
|
|
||||||
msgstr "nie uda³o siê zaalokowaæ struktur opcji"
|
|
||||||
|
|
||||||
#: src/main/options.c:112
|
|
||||||
msgid "option structure argv allocation failed"
|
|
||||||
msgstr "nie uda³o siê zaalokowaæ struktur opcji argv"
|
|
||||||
|
|
||||||
#: src/main/options.c:151
|
|
||||||
msgid "integer argument expected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:162
|
|
||||||
msgid "numeric argument expected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:173
|
|
||||||
msgid "process ID or pid:fd pair expected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:180
|
|
||||||
msgid "invalid process ID"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:316
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information."
|
|
||||||
msgstr "Spróbuj `%s --help' by uzyskaæ wiêcej informacji"
|
|
||||||
|
|
||||||
#: src/main/options.c:320
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Try `%s -h' for more information."
|
|
||||||
msgstr "Spróbuj `%s -h' by uzyskaæ wiêcej informacji"
|
|
||||||
|
|
||||||
#: src/main/options.c:336
|
|
||||||
msgid ""
|
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
|
||||||
"descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:344
|
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:352
|
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:360
|
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:368
|
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/remote.c:221
|
#: src/main/remote.c:221
|
||||||
@@ -436,3 +395,59 @@ msgstr ""
|
|||||||
#: src/main/remote.c:328
|
#: src/main/remote.c:328
|
||||||
msgid "IPC not supported on this system"
|
msgid "IPC not supported on this system"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:102
|
||||||
|
msgid "option structure allocation failed"
|
||||||
|
msgstr "nie udało się zaalokować struktur opcji"
|
||||||
|
|
||||||
|
#: src/main/options.c:116
|
||||||
|
msgid "option structure argv allocation failed"
|
||||||
|
msgstr "nie udało się zaalokować struktur opcji argv"
|
||||||
|
|
||||||
|
#: src/main/options.c:160
|
||||||
|
msgid "integer argument expected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:171
|
||||||
|
msgid "numeric argument expected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:182
|
||||||
|
msgid "process ID or pid:fd pair expected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:189
|
||||||
|
msgid "invalid process ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:355
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s --help' for more information."
|
||||||
|
msgstr "Spróbuj `%s --help' by uzyskać więcej informacji"
|
||||||
|
|
||||||
|
#: src/main/options.c:359
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s -h' for more information."
|
||||||
|
msgstr "Spróbuj `%s -h' by uzyskać więcej informacji"
|
||||||
|
|
||||||
|
#: src/main/options.c:375
|
||||||
|
msgid ""
|
||||||
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
|
"descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:383
|
||||||
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:391
|
||||||
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:399
|
||||||
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:407
|
||||||
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
|
msgstr ""
|
||||||
|
|||||||
+192
-169
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-09-05 19:25+0100\n"
|
"POT-Creation-Date: 2023-07-17 21:52+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -30,34 +30,6 @@ msgstr "tentativa de bloqueio falhou"
|
|||||||
msgid "failed to open terminal"
|
msgid "failed to open terminal"
|
||||||
msgstr "erro abrindo o terminal"
|
msgstr "erro abrindo o terminal"
|
||||||
|
|
||||||
#: src/pv/display.c:138
|
|
||||||
msgid "yzafpnum kMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:143
|
|
||||||
msgid "yzafpnum KMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:558 src/pv/transfer.c:679
|
|
||||||
msgid "buffer allocation failed"
|
|
||||||
msgstr "erro alocando o buffer"
|
|
||||||
|
|
||||||
#: src/pv/display.c:618 src/pv/transfer.c:458
|
|
||||||
msgid "B"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "/s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "B/s"
|
|
||||||
msgstr "B/s"
|
|
||||||
|
|
||||||
#: src/pv/display.c:697 src/pv/display.c:702 src/pv/display.c:764
|
|
||||||
msgid "ETA"
|
|
||||||
msgstr "ETA"
|
|
||||||
|
|
||||||
#: src/pv/file.c:119
|
#: src/pv/file.c:119
|
||||||
msgid "failed to seek to start of output"
|
msgid "failed to seek to start of output"
|
||||||
msgstr "não pode mover para o início da produção"
|
msgstr "não pode mover para o início da produção"
|
||||||
@@ -70,7 +42,7 @@ msgstr "erro fechando o arquivo"
|
|||||||
msgid "failed to read file"
|
msgid "failed to read file"
|
||||||
msgstr "erro lendo o arquivo"
|
msgstr "erro lendo o arquivo"
|
||||||
|
|
||||||
#: src/pv/file.c:248
|
#: src/pv/file.c:248 src/main/options.c:288
|
||||||
msgid "failed to stat file"
|
msgid "failed to stat file"
|
||||||
msgstr "erro obtendo informações do arquivo"
|
msgstr "erro obtendo informações do arquivo"
|
||||||
|
|
||||||
@@ -82,15 +54,14 @@ msgstr "erro obtendo informações do arquivo de saída"
|
|||||||
msgid "input file is output file"
|
msgid "input file is output file"
|
||||||
msgstr "os arquivos de entrada e saída são o mesmo"
|
msgstr "os arquivos de entrada e saída são o mesmo"
|
||||||
|
|
||||||
#: src/pv/loop.c:520 src/pv/loop.c:590 src/pv/loop.c:642 src/pv/watchpid.c:51
|
#: src/pv/loop.c:527 src/pv/loop.c:597 src/pv/loop.c:649 src/pv/watchpid.c:68
|
||||||
#: src/pv/watchpid.c:74 src/pv/watchpid.c:84 src/pv/watchpid.c:115
|
#: src/pv/watchpid.c:79 src/pv/watchpid.c:93 src/pv/watchpid.c:104
|
||||||
|
#: src/pv/watchpid.c:145 src/pv/watchpid.c:168 src/pv/watchpid.c:178
|
||||||
|
#: src/pv/watchpid.c:192 src/pv/watchpid.c:285 src/pv/watchpid.c:294
|
||||||
|
#: src/pv/watchpid.c:332 src/pv/watchpid.c:349
|
||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:33
|
|
||||||
msgid "none"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/transfer.c:341
|
#: src/pv/transfer.c:341
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
msgstr "erro de leitura"
|
msgstr "erro de leitura"
|
||||||
@@ -111,19 +82,64 @@ msgstr "não pode ir além do erro"
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr "ignorado erro de leitura"
|
msgstr "ignorado erro de leitura"
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:458 src/pv/display.c:687
|
||||||
|
msgid "B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:631
|
#: src/pv/transfer.c:631
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "erro de gravação"
|
msgstr "erro de gravação"
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:679 src/pv/display.c:618
|
||||||
|
msgid "buffer allocation failed"
|
||||||
|
msgstr "erro alocando o buffer"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:770
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "erro na chamada da função select"
|
msgstr "erro na chamada da função select"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:76 src/pv/watchpid.c:86 src/pv/watchpid.c:117
|
#: src/pv/state.c:25
|
||||||
|
msgid "history structure allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/state.c:55
|
||||||
|
msgid "none"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:151
|
||||||
|
msgid "yzafpnum kMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:156
|
||||||
|
msgid "yzafpnum KMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:683
|
||||||
|
msgid "b"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:738 src/pv/display.c:752
|
||||||
|
msgid "b/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:757
|
||||||
|
msgid "/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:758
|
||||||
|
msgid "B/s"
|
||||||
|
msgstr "B/s"
|
||||||
|
|
||||||
|
#: src/pv/display.c:793 src/pv/display.c:798 src/pv/display.c:860
|
||||||
|
msgid "ETA"
|
||||||
|
msgstr "ETA"
|
||||||
|
|
||||||
|
#: src/pv/watchpid.c:81 src/pv/watchpid.c:95 src/pv/watchpid.c:106
|
||||||
|
#: src/pv/watchpid.c:170 src/pv/watchpid.c:180 src/pv/watchpid.c:194
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/watchpid.c:120
|
#: src/pv/watchpid.c:109 src/pv/watchpid.c:197
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "não é um arquivo regular ou dispositivo de bloqueio"
|
msgstr "não é um arquivo regular ou dispositivo de bloqueio"
|
||||||
|
|
||||||
@@ -179,168 +195,176 @@ msgstr "exibe a taxa de transferência"
|
|||||||
msgid "show data transfer average rate counter"
|
msgid "show data transfer average rate counter"
|
||||||
msgstr "exibe o contador da taxa média de transferência de dados"
|
msgstr "exibe o contador da taxa média de transferência de dados"
|
||||||
|
|
||||||
#: src/main/help.c:44
|
#: src/main/help.c:43 src/main/help.c:63 src/main/help.c:71
|
||||||
msgid "show number of bytes transferred"
|
|
||||||
msgstr "exibe a quantidade de bytes transferidos"
|
|
||||||
|
|
||||||
#: src/main/help.c:46
|
|
||||||
msgid "show percentage of transfer buffer in use"
|
|
||||||
msgstr "exibe a porcentagem de buffer de transferência em uso"
|
|
||||||
|
|
||||||
#: src/main/help.c:47
|
|
||||||
msgid "NUM"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:48
|
|
||||||
msgid "show NUM bytes last written"
|
|
||||||
msgstr "exibe NUM bytes gravados pela última vez"
|
|
||||||
|
|
||||||
#: src/main/help.c:49
|
|
||||||
msgid "FORMAT"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:50
|
|
||||||
msgid "set output format to FORMAT"
|
|
||||||
msgstr "definir o formato de saída para FORMAT"
|
|
||||||
|
|
||||||
#: src/main/help.c:52
|
|
||||||
msgid "output percentages, not visual information"
|
|
||||||
msgstr "exibe apenas as porcentagens, sem informações visuais"
|
|
||||||
|
|
||||||
#: src/main/help.c:54
|
|
||||||
msgid "do not output any transfer information at all"
|
|
||||||
msgstr "executa programa sem exibir quaisquer informações"
|
|
||||||
|
|
||||||
#: src/main/help.c:57
|
|
||||||
msgid "display nothing until first byte transferred"
|
|
||||||
msgstr "não exibe nada até iniciar o processamento"
|
|
||||||
|
|
||||||
#: src/main/help.c:58 src/main/help.c:66
|
|
||||||
msgid "SEC"
|
msgid "SEC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:45
|
||||||
|
msgid "compute average rate over past SEC seconds (default 30s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:47
|
||||||
|
msgid "show number of bytes transferred"
|
||||||
|
msgstr "exibe a quantidade de bytes transferidos"
|
||||||
|
|
||||||
|
#: src/main/help.c:49
|
||||||
|
msgid "show number of bits transferred"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:51
|
||||||
|
msgid "show percentage of transfer buffer in use"
|
||||||
|
msgstr "exibe a porcentagem de buffer de transferência em uso"
|
||||||
|
|
||||||
|
#: src/main/help.c:52
|
||||||
|
msgid "NUM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:53
|
||||||
|
msgid "show NUM bytes last written"
|
||||||
|
msgstr "exibe NUM bytes gravados pela última vez"
|
||||||
|
|
||||||
|
#: src/main/help.c:54
|
||||||
|
msgid "FORMAT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:55
|
||||||
|
msgid "set output format to FORMAT"
|
||||||
|
msgstr "definir o formato de saída para FORMAT"
|
||||||
|
|
||||||
|
#: src/main/help.c:57
|
||||||
|
msgid "output percentages, not visual information"
|
||||||
|
msgstr "exibe apenas as porcentagens, sem informações visuais"
|
||||||
|
|
||||||
#: src/main/help.c:59
|
#: src/main/help.c:59
|
||||||
|
msgid "do not output any transfer information at all"
|
||||||
|
msgstr "executa programa sem exibir quaisquer informações"
|
||||||
|
|
||||||
|
#: src/main/help.c:62
|
||||||
|
msgid "display nothing until first byte transferred"
|
||||||
|
msgstr "não exibe nada até iniciar o processamento"
|
||||||
|
|
||||||
|
#: src/main/help.c:64
|
||||||
msgid "display nothing until SEC seconds have passed"
|
msgid "display nothing until SEC seconds have passed"
|
||||||
msgstr "não exibir nada até que os segundos SEC tenham passado"
|
msgstr "não exibir nada até que os segundos SEC tenham passado"
|
||||||
|
|
||||||
#: src/main/help.c:60
|
#: src/main/help.c:65
|
||||||
msgid "SIZE"
|
msgid "SIZE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:61
|
#: src/main/help.c:66
|
||||||
msgid "set estimated data size to SIZE bytes"
|
msgid "set estimated data size to SIZE bytes"
|
||||||
msgstr "seta a quantidade estimada de dados em SIZE bytes"
|
msgstr "seta a quantidade estimada de dados em SIZE bytes"
|
||||||
|
|
||||||
#: src/main/help.c:63
|
#: src/main/help.c:68
|
||||||
msgid "count lines instead of bytes"
|
msgid "count lines instead of bytes"
|
||||||
msgstr "contar linhas em vez de bytes"
|
msgstr "contar linhas em vez de bytes"
|
||||||
|
|
||||||
#: src/main/help.c:65
|
#: src/main/help.c:70
|
||||||
msgid "lines are null-terminated"
|
msgid "lines are null-terminated"
|
||||||
msgstr "linhas são terminadas em nulo"
|
msgstr "linhas são terminadas em nulo"
|
||||||
|
|
||||||
#: src/main/help.c:67
|
#: src/main/help.c:72
|
||||||
msgid "update every SEC seconds"
|
msgid "update every SEC seconds"
|
||||||
msgstr "atualiza informações a cada SEC segundos"
|
msgstr "atualiza informações a cada SEC segundos"
|
||||||
|
|
||||||
#: src/main/help.c:68
|
#: src/main/help.c:73
|
||||||
msgid "WIDTH"
|
msgid "WIDTH"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:69
|
#: src/main/help.c:74
|
||||||
msgid "assume terminal is WIDTH characters wide"
|
msgid "assume terminal is WIDTH characters wide"
|
||||||
msgstr "presuma que o terminal tem WIDTH caracteres de largura"
|
msgstr "presuma que o terminal tem WIDTH caracteres de largura"
|
||||||
|
|
||||||
#: src/main/help.c:70
|
#: src/main/help.c:75
|
||||||
msgid "HEIGHT"
|
msgid "HEIGHT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:71
|
#: src/main/help.c:76
|
||||||
msgid "assume terminal is HEIGHT rows high"
|
msgid "assume terminal is HEIGHT rows high"
|
||||||
msgstr "presuma que o terminal tem HEIGHT caracteres de altura"
|
msgstr "presuma que o terminal tem HEIGHT caracteres de altura"
|
||||||
|
|
||||||
#: src/main/help.c:72
|
#: src/main/help.c:77
|
||||||
msgid "NAME"
|
msgid "NAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:73
|
#: src/main/help.c:78
|
||||||
msgid "prefix visual information with NAME"
|
msgid "prefix visual information with NAME"
|
||||||
msgstr "exibe NAME antes das demais informações"
|
msgstr "exibe NAME antes das demais informações"
|
||||||
|
|
||||||
#: src/main/help.c:75
|
#: src/main/help.c:80
|
||||||
msgid "output even if standard error is not a terminal"
|
msgid "output even if standard error is not a terminal"
|
||||||
msgstr "gera dados mesmo que a saída de erro seja redirecionada"
|
msgstr "gera dados mesmo que a saída de erro seja redirecionada"
|
||||||
|
|
||||||
#: src/main/help.c:77
|
#: src/main/help.c:82
|
||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr "utiliza caracteres de escape para posicionar o cursor"
|
msgstr "utiliza caracteres de escape para posicionar o cursor"
|
||||||
|
|
||||||
#: src/main/help.c:79
|
#: src/main/help.c:84
|
||||||
msgid "RATE"
|
msgid "RATE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:80
|
#: src/main/help.c:85
|
||||||
msgid "limit transfer to RATE bytes per second"
|
msgid "limit transfer to RATE bytes per second"
|
||||||
msgstr "limita a transferência a RATE bytes por segundo"
|
msgstr "limita a transferência a RATE bytes por segundo"
|
||||||
|
|
||||||
#: src/main/help.c:81
|
#: src/main/help.c:86
|
||||||
msgid "BYTES"
|
msgid "BYTES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:82
|
#: src/main/help.c:87
|
||||||
msgid "use a buffer size of BYTES"
|
msgid "use a buffer size of BYTES"
|
||||||
msgstr "use um tamanho de buffer de BYTES"
|
msgstr "use um tamanho de buffer de BYTES"
|
||||||
|
|
||||||
#: src/main/help.c:84
|
#: src/main/help.c:89
|
||||||
msgid "never use splice(), always use read/write"
|
msgid "never use splice(), always use read/write"
|
||||||
msgstr "nunca use splice(), sempre use read/write"
|
msgstr "nunca use splice(), sempre use read/write"
|
||||||
|
|
||||||
#: src/main/help.c:86
|
#: src/main/help.c:91
|
||||||
msgid "skip read errors in input"
|
msgid "skip read errors in input"
|
||||||
msgstr "ignorar erros de leitura em entrada"
|
msgstr "ignorar erros de leitura em entrada"
|
||||||
|
|
||||||
#: src/main/help.c:88
|
#: src/main/help.c:93
|
||||||
msgid "stop after --size bytes have been transferred"
|
msgid "stop after --size bytes have been transferred"
|
||||||
msgstr "parar após --size bytes terem sido transferidos"
|
msgstr "parar após --size bytes terem sido transferidos"
|
||||||
|
|
||||||
#: src/main/help.c:90
|
#: src/main/help.c:95
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:91
|
#: src/main/help.c:96
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr "atualizar as configurações do processo PID"
|
msgstr "atualizar as configurações do processo PID"
|
||||||
|
|
||||||
#: src/main/help.c:94
|
#: src/main/help.c:99
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:95
|
#: src/main/help.c:100
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "salvar ID do processo em FILE"
|
msgstr "salvar ID do processo em FILE"
|
||||||
|
|
||||||
#: src/main/help.c:97
|
#: src/main/help.c:102
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:98
|
#: src/main/help.c:103
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "assistir arquivo FD aberto pelo processo PID"
|
msgstr "assistir arquivo FD aberto pelo processo PID"
|
||||||
|
|
||||||
#: src/main/help.c:101
|
#: src/main/help.c:106
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr "exibe esta tela de ajuda e termina"
|
msgstr "exibe esta tela de ajuda e termina"
|
||||||
|
|
||||||
#: src/main/help.c:103
|
#: src/main/help.c:108
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr "exibe a versão e termina"
|
msgstr "exibe a versão e termina"
|
||||||
|
|
||||||
#: src/main/help.c:109
|
#: src/main/help.c:114
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Uso: %s [OPÇÕES] [ARQUIVOS]..."
|
msgstr "Uso: %s [OPÇÕES] [ARQUIVOS]..."
|
||||||
|
|
||||||
#: src/main/help.c:112
|
#: src/main/help.c:117
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output,\n"
|
"Concatenate FILE(s), or standard input, to standard output,\n"
|
||||||
"with monitoring."
|
"with monitoring."
|
||||||
@@ -348,7 +372,7 @@ msgstr ""
|
|||||||
"Concatena ARQUIVO(s) ou a entrada padrão e grava na saída padrão,\n"
|
"Concatena ARQUIVO(s) ou a entrada padrão e grava na saída padrão,\n"
|
||||||
"com monitoramento."
|
"com monitoramento."
|
||||||
|
|
||||||
#: src/main/help.c:207
|
#: src/main/help.c:212
|
||||||
msgid ""
|
msgid ""
|
||||||
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
||||||
"output filename.\n"
|
"output filename.\n"
|
||||||
@@ -356,7 +380,7 @@ msgstr ""
|
|||||||
"A depuração está habilitada; exporte a variável de ambiente DEBUG para\n"
|
"A depuração está habilitada; exporte a variável de ambiente DEBUG para\n"
|
||||||
"definir o nome do arquivo de saída.\n"
|
"definir o nome do arquivo de saída.\n"
|
||||||
|
|
||||||
#: src/main/help.c:211
|
#: src/main/help.c:216
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to %s."
|
msgid "Please report any bugs to %s."
|
||||||
msgstr "Por favor, reporte quaisquer defeitos para %s."
|
msgstr "Por favor, reporte quaisquer defeitos para %s."
|
||||||
@@ -365,70 +389,9 @@ msgstr "Por favor, reporte quaisquer defeitos para %s."
|
|||||||
msgid "state allocation failed"
|
msgid "state allocation failed"
|
||||||
msgstr "alocação de memória de status falhou"
|
msgstr "alocação de memória de status falhou"
|
||||||
|
|
||||||
#: src/main/main.c:246
|
#: src/main/main.c:248
|
||||||
#, fuzzy
|
|
||||||
msgid "failed to read terminal attributes"
|
msgid "failed to read terminal attributes"
|
||||||
msgstr "erro ao ler o nome do terminal"
|
|
||||||
|
|
||||||
#: src/main/options.c:98
|
|
||||||
msgid "option structure allocation failed"
|
|
||||||
msgstr "erro na alocação da estrutura de opções"
|
|
||||||
|
|
||||||
#: src/main/options.c:112
|
|
||||||
msgid "option structure argv allocation failed"
|
|
||||||
msgstr "erro na alocação da estrutura de opções argv"
|
|
||||||
|
|
||||||
#: src/main/options.c:151
|
|
||||||
msgid "integer argument expected"
|
|
||||||
msgstr "argumento inteiro esperado"
|
|
||||||
|
|
||||||
#: src/main/options.c:162
|
|
||||||
msgid "numeric argument expected"
|
|
||||||
msgstr "argumento numérico esperado"
|
|
||||||
|
|
||||||
#: src/main/options.c:173
|
|
||||||
msgid "process ID or pid:fd pair expected"
|
|
||||||
msgstr "ID do processo ou par pid:fd esperado"
|
|
||||||
|
|
||||||
#: src/main/options.c:180
|
|
||||||
msgid "invalid process ID"
|
|
||||||
msgstr "ID de processo inválido"
|
|
||||||
|
|
||||||
#: src/main/options.c:316
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information."
|
|
||||||
msgstr "Tente `%s --help' para maiores informações."
|
|
||||||
|
|
||||||
#: src/main/options.c:320
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s -h' for more information."
|
|
||||||
msgstr "Tente `%s -h' para maiores informações."
|
|
||||||
|
|
||||||
#: src/main/options.c:336
|
|
||||||
msgid ""
|
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
|
||||||
"descriptors"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"não pode usar o modo de linha ou opções de modificador de transferência ao "
|
|
||||||
"assistir os descritores de arquivo"
|
|
||||||
|
|
||||||
#: src/main/options.c:344
|
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
"não pode usar o posicionamento do cursor ao observar os descritores de "
|
|
||||||
"arquivo"
|
|
||||||
|
|
||||||
#: src/main/options.c:352
|
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
|
||||||
msgstr "não pode usar o controle remoto ao assistir os descritores de arquivo"
|
|
||||||
|
|
||||||
#: src/main/options.c:360
|
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
|
||||||
msgstr "não pode transferir arquivos ao assistir descritores de arquivo"
|
|
||||||
|
|
||||||
#: src/main/options.c:368
|
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
|
||||||
msgstr "não disponível em sistemas sem /proc/self/fdinfo"
|
|
||||||
|
|
||||||
#: src/main/remote.c:221
|
#: src/main/remote.c:221
|
||||||
msgid "message not received"
|
msgid "message not received"
|
||||||
@@ -437,3 +400,63 @@ msgstr "mensagem não recebida"
|
|||||||
#: src/main/remote.c:328
|
#: src/main/remote.c:328
|
||||||
msgid "IPC not supported on this system"
|
msgid "IPC not supported on this system"
|
||||||
msgstr "IPC não suportado neste sistema"
|
msgstr "IPC não suportado neste sistema"
|
||||||
|
|
||||||
|
#: src/main/options.c:102
|
||||||
|
msgid "option structure allocation failed"
|
||||||
|
msgstr "erro na alocação da estrutura de opções"
|
||||||
|
|
||||||
|
#: src/main/options.c:116
|
||||||
|
msgid "option structure argv allocation failed"
|
||||||
|
msgstr "erro na alocação da estrutura de opções argv"
|
||||||
|
|
||||||
|
#: src/main/options.c:160
|
||||||
|
msgid "integer argument expected"
|
||||||
|
msgstr "argumento inteiro esperado"
|
||||||
|
|
||||||
|
#: src/main/options.c:171
|
||||||
|
msgid "numeric argument expected"
|
||||||
|
msgstr "argumento numérico esperado"
|
||||||
|
|
||||||
|
#: src/main/options.c:182
|
||||||
|
msgid "process ID or pid:fd pair expected"
|
||||||
|
msgstr "ID do processo ou par pid:fd esperado"
|
||||||
|
|
||||||
|
#: src/main/options.c:189
|
||||||
|
msgid "invalid process ID"
|
||||||
|
msgstr "ID de processo inválido"
|
||||||
|
|
||||||
|
#: src/main/options.c:355
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s --help' for more information."
|
||||||
|
msgstr "Tente `%s --help' para maiores informações."
|
||||||
|
|
||||||
|
#: src/main/options.c:359
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s -h' for more information."
|
||||||
|
msgstr "Tente `%s -h' para maiores informações."
|
||||||
|
|
||||||
|
#: src/main/options.c:375
|
||||||
|
msgid ""
|
||||||
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
|
"descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"não pode usar o modo de linha ou opções de modificador de transferência ao "
|
||||||
|
"assistir os descritores de arquivo"
|
||||||
|
|
||||||
|
#: src/main/options.c:383
|
||||||
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
"não pode usar o posicionamento do cursor ao observar os descritores de "
|
||||||
|
"arquivo"
|
||||||
|
|
||||||
|
#: src/main/options.c:391
|
||||||
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
|
msgstr "não pode usar o controle remoto ao assistir os descritores de arquivo"
|
||||||
|
|
||||||
|
#: src/main/options.c:399
|
||||||
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
|
msgstr "não pode transferir arquivos ao assistir descritores de arquivo"
|
||||||
|
|
||||||
|
#: src/main/options.c:407
|
||||||
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
|
msgstr "não disponível em sistemas sem /proc/self/fdinfo"
|
||||||
|
|||||||
+188
-164
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-09-05 19:25+0100\n"
|
"POT-Creation-Date: 2023-07-17 21:52+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -32,34 +32,6 @@ msgstr ""
|
|||||||
msgid "failed to open terminal"
|
msgid "failed to open terminal"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/display.c:138
|
|
||||||
msgid "yzafpnum kMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:143
|
|
||||||
msgid "yzafpnum KMGTPEZY"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:558 src/pv/transfer.c:679
|
|
||||||
msgid "buffer allocation failed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:618 src/pv/transfer.c:458
|
|
||||||
msgid "B"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "/s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:654 src/pv/display.c:662
|
|
||||||
msgid "B/s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/display.c:697 src/pv/display.c:702 src/pv/display.c:764
|
|
||||||
msgid "ETA"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/file.c:119
|
#: src/pv/file.c:119
|
||||||
msgid "failed to seek to start of output"
|
msgid "failed to seek to start of output"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -72,7 +44,7 @@ msgstr ""
|
|||||||
msgid "failed to read file"
|
msgid "failed to read file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/file.c:248
|
#: src/pv/file.c:248 src/main/options.c:288
|
||||||
msgid "failed to stat file"
|
msgid "failed to stat file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -84,15 +56,14 @@ msgstr ""
|
|||||||
msgid "input file is output file"
|
msgid "input file is output file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/loop.c:520 src/pv/loop.c:590 src/pv/loop.c:642 src/pv/watchpid.c:51
|
#: src/pv/loop.c:527 src/pv/loop.c:597 src/pv/loop.c:649 src/pv/watchpid.c:68
|
||||||
#: src/pv/watchpid.c:74 src/pv/watchpid.c:84 src/pv/watchpid.c:115
|
#: src/pv/watchpid.c:79 src/pv/watchpid.c:93 src/pv/watchpid.c:104
|
||||||
|
#: src/pv/watchpid.c:145 src/pv/watchpid.c:168 src/pv/watchpid.c:178
|
||||||
|
#: src/pv/watchpid.c:192 src/pv/watchpid.c:285 src/pv/watchpid.c:294
|
||||||
|
#: src/pv/watchpid.c:332 src/pv/watchpid.c:349
|
||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:33
|
|
||||||
msgid "none"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/pv/transfer.c:341
|
#: src/pv/transfer.c:341
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -113,19 +84,64 @@ msgstr ""
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:458 src/pv/display.c:687
|
||||||
|
msgid "B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:631
|
#: src/pv/transfer.c:631
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/transfer.c:679 src/pv/display.c:618
|
||||||
|
msgid "buffer allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:770
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/watchpid.c:76 src/pv/watchpid.c:86 src/pv/watchpid.c:117
|
#: src/pv/state.c:25
|
||||||
|
msgid "history structure allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/state.c:55
|
||||||
|
msgid "none"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:151
|
||||||
|
msgid "yzafpnum kMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:156
|
||||||
|
msgid "yzafpnum KMGTPEZY"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:683
|
||||||
|
msgid "b"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:738 src/pv/display.c:752
|
||||||
|
msgid "b/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:757
|
||||||
|
msgid "/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:742 src/pv/display.c:758
|
||||||
|
msgid "B/s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/display.c:793 src/pv/display.c:798 src/pv/display.c:860
|
||||||
|
msgid "ETA"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pv/watchpid.c:81 src/pv/watchpid.c:95 src/pv/watchpid.c:106
|
||||||
|
#: src/pv/watchpid.c:170 src/pv/watchpid.c:180 src/pv/watchpid.c:194
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/watchpid.c:120
|
#: src/pv/watchpid.c:109 src/pv/watchpid.c:197
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -176,180 +192,188 @@ msgstr ""
|
|||||||
msgid "show data transfer average rate counter"
|
msgid "show data transfer average rate counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:44
|
#: src/main/help.c:43 src/main/help.c:63 src/main/help.c:71
|
||||||
msgid "show number of bytes transferred"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:46
|
|
||||||
msgid "show percentage of transfer buffer in use"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:47
|
|
||||||
msgid "NUM"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:48
|
|
||||||
msgid "show NUM bytes last written"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:49
|
|
||||||
msgid "FORMAT"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:50
|
|
||||||
msgid "set output format to FORMAT"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:52
|
|
||||||
msgid "output percentages, not visual information"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:54
|
|
||||||
msgid "do not output any transfer information at all"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:57
|
|
||||||
msgid "display nothing until first byte transferred"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:58 src/main/help.c:66
|
|
||||||
msgid "SEC"
|
msgid "SEC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:45
|
||||||
|
msgid "compute average rate over past SEC seconds (default 30s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:47
|
||||||
|
msgid "show number of bytes transferred"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:49
|
||||||
|
msgid "show number of bits transferred"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:51
|
||||||
|
msgid "show percentage of transfer buffer in use"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:52
|
||||||
|
msgid "NUM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:53
|
||||||
|
msgid "show NUM bytes last written"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:54
|
||||||
|
msgid "FORMAT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:55
|
||||||
|
msgid "set output format to FORMAT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:57
|
||||||
|
msgid "output percentages, not visual information"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:59
|
#: src/main/help.c:59
|
||||||
|
msgid "do not output any transfer information at all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:62
|
||||||
|
msgid "display nothing until first byte transferred"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:64
|
||||||
msgid "display nothing until SEC seconds have passed"
|
msgid "display nothing until SEC seconds have passed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:60
|
#: src/main/help.c:65
|
||||||
msgid "SIZE"
|
msgid "SIZE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:61
|
#: src/main/help.c:66
|
||||||
msgid "set estimated data size to SIZE bytes"
|
msgid "set estimated data size to SIZE bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:63
|
#: src/main/help.c:68
|
||||||
msgid "count lines instead of bytes"
|
msgid "count lines instead of bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:65
|
#: src/main/help.c:70
|
||||||
msgid "lines are null-terminated"
|
msgid "lines are null-terminated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:67
|
#: src/main/help.c:72
|
||||||
msgid "update every SEC seconds"
|
msgid "update every SEC seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:68
|
#: src/main/help.c:73
|
||||||
msgid "WIDTH"
|
msgid "WIDTH"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:69
|
#: src/main/help.c:74
|
||||||
msgid "assume terminal is WIDTH characters wide"
|
msgid "assume terminal is WIDTH characters wide"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:70
|
#: src/main/help.c:75
|
||||||
msgid "HEIGHT"
|
msgid "HEIGHT"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:71
|
#: src/main/help.c:76
|
||||||
msgid "assume terminal is HEIGHT rows high"
|
msgid "assume terminal is HEIGHT rows high"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:72
|
#: src/main/help.c:77
|
||||||
msgid "NAME"
|
msgid "NAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:73
|
#: src/main/help.c:78
|
||||||
msgid "prefix visual information with NAME"
|
msgid "prefix visual information with NAME"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:75
|
#: src/main/help.c:80
|
||||||
msgid "output even if standard error is not a terminal"
|
msgid "output even if standard error is not a terminal"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:77
|
#: src/main/help.c:82
|
||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:79
|
#: src/main/help.c:84
|
||||||
msgid "RATE"
|
msgid "RATE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:80
|
#: src/main/help.c:85
|
||||||
msgid "limit transfer to RATE bytes per second"
|
msgid "limit transfer to RATE bytes per second"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:81
|
#: src/main/help.c:86
|
||||||
msgid "BYTES"
|
msgid "BYTES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:82
|
#: src/main/help.c:87
|
||||||
msgid "use a buffer size of BYTES"
|
msgid "use a buffer size of BYTES"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:84
|
#: src/main/help.c:89
|
||||||
msgid "never use splice(), always use read/write"
|
msgid "never use splice(), always use read/write"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:86
|
#: src/main/help.c:91
|
||||||
msgid "skip read errors in input"
|
msgid "skip read errors in input"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:88
|
#: src/main/help.c:93
|
||||||
msgid "stop after --size bytes have been transferred"
|
msgid "stop after --size bytes have been transferred"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:90
|
#: src/main/help.c:95
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:91
|
#: src/main/help.c:96
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:94
|
#: src/main/help.c:99
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:95
|
#: src/main/help.c:100
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:97
|
#: src/main/help.c:102
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:98
|
#: src/main/help.c:103
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:101
|
#: src/main/help.c:106
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:103
|
#: src/main/help.c:108
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:109
|
#: src/main/help.c:114
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:112
|
#: src/main/help.c:117
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output,\n"
|
"Concatenate FILE(s), or standard input, to standard output,\n"
|
||||||
"with monitoring."
|
"with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:207
|
#: src/main/help.c:212
|
||||||
msgid ""
|
msgid ""
|
||||||
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
"Debugging is enabled; export the DEBUG environment variable to define the\n"
|
||||||
"output filename.\n"
|
"output filename.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:211
|
#: src/main/help.c:216
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to %s."
|
msgid "Please report any bugs to %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -358,66 +382,10 @@ msgstr ""
|
|||||||
msgid "state allocation failed"
|
msgid "state allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/main.c:246
|
#: src/main/main.c:248
|
||||||
msgid "failed to read terminal attributes"
|
msgid "failed to read terminal attributes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:98
|
|
||||||
msgid "option structure allocation failed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:112
|
|
||||||
msgid "option structure argv allocation failed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:151
|
|
||||||
msgid "integer argument expected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:162
|
|
||||||
msgid "numeric argument expected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:173
|
|
||||||
msgid "process ID or pid:fd pair expected"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:180
|
|
||||||
msgid "invalid process ID"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:316
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s --help' for more information."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:320
|
|
||||||
#, c-format
|
|
||||||
msgid "Try `%s -h' for more information."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:336
|
|
||||||
msgid ""
|
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
|
||||||
"descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:344
|
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:352
|
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:360
|
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/options.c:368
|
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/remote.c:221
|
#: src/main/remote.c:221
|
||||||
msgid "message not received"
|
msgid "message not received"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -425,3 +393,59 @@ msgstr ""
|
|||||||
#: src/main/remote.c:328
|
#: src/main/remote.c:328
|
||||||
msgid "IPC not supported on this system"
|
msgid "IPC not supported on this system"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:102
|
||||||
|
msgid "option structure allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:116
|
||||||
|
msgid "option structure argv allocation failed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:160
|
||||||
|
msgid "integer argument expected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:171
|
||||||
|
msgid "numeric argument expected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:182
|
||||||
|
msgid "process ID or pid:fd pair expected"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:189
|
||||||
|
msgid "invalid process ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:355
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s --help' for more information."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:359
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s -h' for more information."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:375
|
||||||
|
msgid ""
|
||||||
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
|
"descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:383
|
||||||
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:391
|
||||||
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:399
|
||||||
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/options.c:407
|
||||||
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
|
msgstr ""
|
||||||
|
|||||||
+138
-42
@@ -43,13 +43,28 @@ bool pv_in_foreground(void)
|
|||||||
pid_t our_process_group;
|
pid_t our_process_group;
|
||||||
pid_t tty_process_group;
|
pid_t tty_process_group;
|
||||||
|
|
||||||
if (0 == isatty(STDERR_FILENO))
|
if (0 == isatty(STDERR_FILENO)) {
|
||||||
|
debug("%s: true: %s", "pv_in_foreground", "not a tty");
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
our_process_group = getpgrp();
|
our_process_group = getpgrp();
|
||||||
tty_process_group = tcgetpgrp(STDERR_FILENO);
|
tty_process_group = tcgetpgrp(STDERR_FILENO);
|
||||||
if (our_process_group == tty_process_group)
|
|
||||||
|
if (tty_process_group == -1 && errno == ENOTTY) {
|
||||||
|
debug("%s: true: %s", "pv_in_foreground",
|
||||||
|
"tty_process_group is -1, errno is ENOTTY");
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (our_process_group == tty_process_group) {
|
||||||
|
debug("%s: true: %s", "pv_in_foreground",
|
||||||
|
"our_process_group == tty_process_group");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("%s: false: our_process_group=%d, tty_process_group=%d",
|
||||||
|
"pv_in_foreground", our_process_group, tty_process_group);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -95,16 +110,14 @@ static long pv__calc_percentage(long long so_far, const long long total)
|
|||||||
* number of seconds until completion.
|
* number of seconds until completion.
|
||||||
*/
|
*/
|
||||||
static long pv__calc_eta(const long long so_far, const long long total,
|
static long pv__calc_eta(const long long so_far, const long long total,
|
||||||
const long elapsed)
|
const long rate)
|
||||||
{
|
{
|
||||||
long long amount_left;
|
long long amount_left;
|
||||||
|
|
||||||
if (so_far < 1)
|
if ((so_far < 1) || (0 == rate))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
amount_left = total - so_far;
|
amount_left = (total - so_far) / rate;
|
||||||
amount_left *= (long long) elapsed;
|
|
||||||
amount_left /= so_far;
|
|
||||||
|
|
||||||
return (long) amount_left;
|
return (long) amount_left;
|
||||||
}
|
}
|
||||||
@@ -269,8 +282,8 @@ static void pv__format_init(pvstate_t state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
formatstr =
|
formatstr =
|
||||||
state->format_string ? state->format_string : state->
|
state->format_string ? state->
|
||||||
default_format;
|
format_string : state->default_format;
|
||||||
|
|
||||||
state->components_used = 0;
|
state->components_used = 0;
|
||||||
|
|
||||||
@@ -430,6 +443,52 @@ static long bound_long(long x, long min, long max)
|
|||||||
return x < min ? min : x > max ? max : x;
|
return x < min ? min : x > max ? max : x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Update history and current average rate */
|
||||||
|
static void update_history_avg_rate(pvstate_t state, long long total_bytes,
|
||||||
|
long double elapsed_sec,
|
||||||
|
long double rate)
|
||||||
|
{
|
||||||
|
int first = state->history_first;
|
||||||
|
int last = state->history_last;
|
||||||
|
long double last_elapsed;
|
||||||
|
|
||||||
|
if (NULL == state->history)
|
||||||
|
return;
|
||||||
|
|
||||||
|
last_elapsed = state->history[last].elapsed_sec;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do nothing if this is not the first call but not enough time has
|
||||||
|
* elapsed since the previous call yet.
|
||||||
|
*/
|
||||||
|
if ((last_elapsed > 0.0)
|
||||||
|
&& (elapsed_sec < (last_elapsed + state->history_interval)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is not the first call, so add a new entry to the circular
|
||||||
|
* buffer.
|
||||||
|
*/
|
||||||
|
if (last_elapsed > 0.0) {
|
||||||
|
int len = state->history_len;
|
||||||
|
state->history_last = last = (last + 1) % len;
|
||||||
|
if (last == first)
|
||||||
|
state->history_first = first = (first + 1) % len;
|
||||||
|
}
|
||||||
|
|
||||||
|
state->history[last].elapsed_sec = elapsed_sec;
|
||||||
|
state->history[last].total_bytes = total_bytes;
|
||||||
|
|
||||||
|
if (first == last) {
|
||||||
|
state->current_avg_rate = rate;
|
||||||
|
} else {
|
||||||
|
long long bytes = (state->history[last].total_bytes -
|
||||||
|
state->history[first].total_bytes);
|
||||||
|
long double sec = (state->history[last].elapsed_sec -
|
||||||
|
state->history[first].elapsed_sec);
|
||||||
|
state->current_avg_rate = bytes / sec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return a pointer to a string (which must not be freed), containing status
|
* Return a pointer to a string (which must not be freed), containing status
|
||||||
@@ -490,14 +549,16 @@ static char *pv__format(pvstate_t state,
|
|||||||
}
|
}
|
||||||
state->prev_rate = rate;
|
state->prev_rate = rate;
|
||||||
|
|
||||||
|
/* Update history and current average rate for ETA. */
|
||||||
|
update_history_avg_rate(state, total_bytes, elapsed_sec, rate);
|
||||||
|
average_rate = state->current_avg_rate;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We only calculate the overall average rate if this is the last
|
* If this is the final update at the end of the transfer, we
|
||||||
* update or if the average rate display is enabled. Otherwise it's
|
* recalculate the rate - and the average rate - across the whole
|
||||||
* not worth the extra CPU cycles.
|
* period of the transfer.
|
||||||
*/
|
*/
|
||||||
average_rate = 0;
|
if (bytes_since_last < 0) {
|
||||||
if ((bytes_since_last < 0)
|
|
||||||
|| ((state->components_used & PV_DISPLAY_AVERAGERATE) != 0)) {
|
|
||||||
/* Sanity check to avoid division by zero */
|
/* Sanity check to avoid division by zero */
|
||||||
if (elapsed_sec < 0.000001)
|
if (elapsed_sec < 0.000001)
|
||||||
elapsed_sec = 0.000001;
|
elapsed_sec = 0.000001;
|
||||||
@@ -505,8 +566,7 @@ static char *pv__format(pvstate_t state,
|
|||||||
(((long double) total_bytes) -
|
(((long double) total_bytes) -
|
||||||
((long double) state->initial_offset)) /
|
((long double) state->initial_offset)) /
|
||||||
(long double) elapsed_sec;
|
(long double) elapsed_sec;
|
||||||
if (bytes_since_last < 0)
|
rate = average_rate;
|
||||||
rate = average_rate;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state->size <= 0) {
|
if (state->size <= 0) {
|
||||||
@@ -580,12 +640,15 @@ static char *pv__format(pvstate_t state,
|
|||||||
sprintf(numericprefix, "%.4Lf ", elapsed_sec);
|
sprintf(numericprefix, "%.4Lf ", elapsed_sec);
|
||||||
|
|
||||||
if ((state->components_used & PV_DISPLAY_BYTES) != 0) {
|
if ((state->components_used & PV_DISPLAY_BYTES) != 0) {
|
||||||
sprintf(state->display_buffer, "%.99s%lld\n",
|
if (state->bits) {
|
||||||
numericprefix, total_bytes);
|
sprintf(state->display_buffer,
|
||||||
} else if (state->percentage > 100) {
|
"%.99s%lld\n", numericprefix,
|
||||||
/* As mentioned above, we go 0-100, then 100-0. */
|
8 * total_bytes);
|
||||||
sprintf(state->display_buffer, "%.99s%ld\n",
|
} else {
|
||||||
numericprefix, 200 - state->percentage);
|
sprintf(state->display_buffer,
|
||||||
|
"%.99s%lld\n", numericprefix,
|
||||||
|
total_bytes);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
sprintf(state->display_buffer, "%.99s%ld\n",
|
sprintf(state->display_buffer, "%.99s%ld\n",
|
||||||
numericprefix, state->percentage);
|
numericprefix, state->percentage);
|
||||||
@@ -613,10 +676,17 @@ static char *pv__format(pvstate_t state,
|
|||||||
|
|
||||||
/* If we're showing bytes transferred, set up the display string. */
|
/* If we're showing bytes transferred, set up the display string. */
|
||||||
if ((state->components_used & PV_DISPLAY_BYTES) != 0) {
|
if ((state->components_used & PV_DISPLAY_BYTES) != 0) {
|
||||||
pv__sizestr(state->str_transferred,
|
if (state->bits && !state->linemode) {
|
||||||
sizeof(state->str_transferred), "%s",
|
pv__sizestr(state->str_transferred,
|
||||||
(long double) total_bytes, "", _("B"),
|
sizeof(state->str_transferred), "%s",
|
||||||
state->linemode ? 0 : 1);
|
(long double) total_bytes * 8, "",
|
||||||
|
_("b"), 1);
|
||||||
|
} else {
|
||||||
|
pv__sizestr(state->str_transferred,
|
||||||
|
sizeof(state->str_transferred), "%s",
|
||||||
|
(long double) total_bytes, "", _("B"),
|
||||||
|
state->linemode ? 0 : 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Transfer buffer percentage - set up the display string. */
|
/* Transfer buffer percentage - set up the display string. */
|
||||||
@@ -642,25 +712,51 @@ static char *pv__format(pvstate_t state,
|
|||||||
if (elapsed_sec > (long double) 360000000.0L)
|
if (elapsed_sec > (long double) 360000000.0L)
|
||||||
elapsed_sec = (long double) 360000000.0L;
|
elapsed_sec = (long double) 360000000.0L;
|
||||||
|
|
||||||
sprintf(state->str_timer, "%ld:%02ld:%02ld",
|
/*
|
||||||
((long) elapsed_sec) / 3600,
|
* If the elapsed time is more than a day, include a day count as
|
||||||
(((long) elapsed_sec) / 60) % 60,
|
* well as hours, minutes, and seconds.
|
||||||
((long) elapsed_sec) % 60);
|
*/
|
||||||
|
if (elapsed_sec > (long double) 86400.0L) {
|
||||||
|
sprintf(state->str_timer, "%ld:%02ld:%02ld:%02ld",
|
||||||
|
((long) elapsed_sec) / 86400,
|
||||||
|
(((long) elapsed_sec) / 3600) % 24,
|
||||||
|
(((long) elapsed_sec) / 60) % 60,
|
||||||
|
((long) elapsed_sec) % 60);
|
||||||
|
} else {
|
||||||
|
sprintf(state->str_timer, "%ld:%02ld:%02ld",
|
||||||
|
((long) elapsed_sec) / 3600,
|
||||||
|
(((long) elapsed_sec) / 60) % 60,
|
||||||
|
((long) elapsed_sec) % 60);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Rate - set up the display string. */
|
/* Rate - set up the display string. */
|
||||||
if ((state->components_used & PV_DISPLAY_RATE) != 0) {
|
if ((state->components_used & PV_DISPLAY_RATE) != 0) {
|
||||||
pv__sizestr(state->str_rate, sizeof(state->str_rate),
|
if (state->bits && !state->linemode) {
|
||||||
"[%s]", rate, _("/s"), _("B/s"),
|
pv__sizestr(state->str_rate,
|
||||||
state->linemode ? 0 : 1);
|
sizeof(state->str_rate), "[%s]",
|
||||||
|
8 * rate, "", _("b/s"), 1);
|
||||||
|
} else {
|
||||||
|
pv__sizestr(state->str_rate,
|
||||||
|
sizeof(state->str_rate), "[%s]", rate,
|
||||||
|
_("/s"), _("B/s"),
|
||||||
|
state->linemode ? 0 : 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Average rate - set up the display string. */
|
/* Average rate - set up the display string. */
|
||||||
if ((state->components_used & PV_DISPLAY_AVERAGERATE) != 0) {
|
if ((state->components_used & PV_DISPLAY_AVERAGERATE) != 0) {
|
||||||
pv__sizestr(state->str_average_rate,
|
if (state->bits && !state->linemode) {
|
||||||
sizeof(state->str_average_rate), "[%s]",
|
pv__sizestr(state->str_average_rate,
|
||||||
average_rate, _("/s"), _("B/s"),
|
sizeof(state->str_average_rate),
|
||||||
state->linemode ? 0 : 1);
|
"[%s]", 8 * average_rate, "", _("b/s"),
|
||||||
|
1);
|
||||||
|
} else {
|
||||||
|
pv__sizestr(state->str_average_rate,
|
||||||
|
sizeof(state->str_average_rate),
|
||||||
|
"[%s]", average_rate, _("/s"),
|
||||||
|
_("B/s"), state->linemode ? 0 : 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Last output bytes - set up the display string. */
|
/* Last output bytes - set up the display string. */
|
||||||
@@ -680,7 +776,7 @@ static char *pv__format(pvstate_t state,
|
|||||||
eta =
|
eta =
|
||||||
pv__calc_eta(total_bytes - state->initial_offset,
|
pv__calc_eta(total_bytes - state->initial_offset,
|
||||||
state->size - state->initial_offset,
|
state->size - state->initial_offset,
|
||||||
elapsed_sec);
|
state->current_avg_rate);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bounds check, so we don't overrun the suffix buffer. This
|
* Bounds check, so we don't overrun the suffix buffer. This
|
||||||
@@ -732,7 +828,7 @@ static char *pv__format(pvstate_t state,
|
|||||||
eta =
|
eta =
|
||||||
pv__calc_eta(total_bytes - state->initial_offset,
|
pv__calc_eta(total_bytes - state->initial_offset,
|
||||||
state->size - state->initial_offset,
|
state->size - state->initial_offset,
|
||||||
elapsed_sec);
|
state->current_avg_rate);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bounds check, so we don't overrun the suffix buffer. This
|
* Bounds check, so we don't overrun the suffix buffer. This
|
||||||
@@ -981,12 +1077,12 @@ void pv_display(pvstate_t state, long double esec, long long sl,
|
|||||||
if (state->numeric) {
|
if (state->numeric) {
|
||||||
write(STDERR_FILENO, display, strlen(display));
|
write(STDERR_FILENO, display, strlen(display));
|
||||||
} else if (state->cursor) {
|
} else if (state->cursor) {
|
||||||
if (pv_in_foreground()) {
|
if (state->force || pv_in_foreground()) {
|
||||||
pv_crs_update(state, display);
|
pv_crs_update(state, display);
|
||||||
state->display_visible = true;
|
state->display_visible = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (pv_in_foreground()) {
|
if (state->force || pv_in_foreground()) {
|
||||||
write(STDERR_FILENO, display, strlen(display));
|
write(STDERR_FILENO, display, strlen(display));
|
||||||
write(STDERR_FILENO, "\r", 1);
|
write(STDERR_FILENO, "\r", 1);
|
||||||
state->display_visible = true;
|
state->display_visible = true;
|
||||||
|
|||||||
+9
-2
@@ -151,10 +151,17 @@ int pv_main_loop(pvstate_t state)
|
|||||||
|| (cur_time.tv_sec == next_ratecheck.tv_sec
|
|| (cur_time.tv_sec == next_ratecheck.tv_sec
|
||||||
&& cur_time.tv_usec >=
|
&& cur_time.tv_usec >=
|
||||||
next_ratecheck.tv_usec)) {
|
next_ratecheck.tv_usec)) {
|
||||||
|
|
||||||
target +=
|
target +=
|
||||||
((long double) (state->rate_limit)) /
|
((long double) (state->rate_limit)) /
|
||||||
(long double) (1000000 /
|
(long double) (1000000 /
|
||||||
RATE_GRANULARITY);
|
RATE_GRANULARITY);
|
||||||
|
long double burstMax =
|
||||||
|
((long double) (state->rate_limit *
|
||||||
|
RATE_BURST_WINDOW));
|
||||||
|
if (target > burstMax) {
|
||||||
|
target = burstMax;
|
||||||
|
}
|
||||||
pv_timeval_add_usec(&next_ratecheck,
|
pv_timeval_add_usec(&next_ratecheck,
|
||||||
RATE_GRANULARITY);
|
RATE_GRANULARITY);
|
||||||
}
|
}
|
||||||
@@ -533,8 +540,8 @@ int pv_watchpid_loop(pvstate_t state)
|
|||||||
* it's not present.
|
* it's not present.
|
||||||
*/
|
*/
|
||||||
original_format_string =
|
original_format_string =
|
||||||
state->format_string ? state->format_string : state->
|
state->format_string ? state->
|
||||||
default_format;
|
format_string : state->default_format;
|
||||||
if (NULL == strstr(original_format_string, "%N")) {
|
if (NULL == strstr(original_format_string, "%N")) {
|
||||||
#ifdef HAVE_SNPRINTF
|
#ifdef HAVE_SNPRINTF
|
||||||
snprintf(new_format_string, sizeof(new_format_string) - 1,
|
snprintf(new_format_string, sizeof(new_format_string) - 1,
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
* Functions for converting strings to numbers.
|
* Functions for converting strings to numbers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+60
-2
@@ -7,8 +7,30 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* alloc / realloc history buffer */
|
||||||
|
static void pv_alloc_history(pvstate_t state)
|
||||||
|
{
|
||||||
|
if (NULL != state->history)
|
||||||
|
free(state->history);
|
||||||
|
state->history = NULL;
|
||||||
|
|
||||||
|
state->history =
|
||||||
|
calloc(state->history_len, sizeof(state->history[0]));
|
||||||
|
if (NULL == state->history) {
|
||||||
|
fprintf(stderr, "%s: %s: %s\n", state->program_name,
|
||||||
|
_("history structure allocation failed"),
|
||||||
|
strerror(errno));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
state->history_first = state->history_last = 0;
|
||||||
|
state->history[0].elapsed_sec = 0.0; /* to be safe, memset() not recommended for doubles */
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a new state structure, and return it, or 0 (NULL) on error.
|
* Create a new state structure, and return it, or 0 (NULL) on error.
|
||||||
*/
|
*/
|
||||||
@@ -36,6 +58,19 @@ pvstate_t pv_state_alloc(const char *program_name)
|
|||||||
#endif /* HAVE_SPLICE */
|
#endif /* HAVE_SPLICE */
|
||||||
state->display_visible = false;
|
state->display_visible = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the current working directory, if possible, as a base for
|
||||||
|
* showing relative filenames with --watchfd.
|
||||||
|
*/
|
||||||
|
if (NULL == getcwd(state->cwd, sizeof(state->cwd))) {
|
||||||
|
/* failed - will always show full path */
|
||||||
|
state->cwd[0] = '\0';
|
||||||
|
}
|
||||||
|
if ('\0' == state->cwd[1]) {
|
||||||
|
/* CWD is root directory - always show full path */
|
||||||
|
state->cwd[0] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,14 +83,18 @@ void pv_state_free(pvstate_t state)
|
|||||||
if (0 == state)
|
if (0 == state)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (state->display_buffer)
|
if (NULL != state->display_buffer)
|
||||||
free(state->display_buffer);
|
free(state->display_buffer);
|
||||||
state->display_buffer = NULL;
|
state->display_buffer = NULL;
|
||||||
|
|
||||||
if (state->transfer_buffer)
|
if (NULL != state->transfer_buffer)
|
||||||
free(state->transfer_buffer);
|
free(state->transfer_buffer);
|
||||||
state->transfer_buffer = NULL;
|
state->transfer_buffer = NULL;
|
||||||
|
|
||||||
|
if (NULL != state->history)
|
||||||
|
free(state->history);
|
||||||
|
state->history = NULL;
|
||||||
|
|
||||||
free(state);
|
free(state);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -135,6 +174,11 @@ void pv_state_linemode_set(pvstate_t state, bool val)
|
|||||||
state->linemode = val;
|
state->linemode = val;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void pv_state_bits_set(pvstate_t state, bool bits)
|
||||||
|
{
|
||||||
|
state->bits = bits;
|
||||||
|
};
|
||||||
|
|
||||||
void pv_state_null_set(pvstate_t state, bool val)
|
void pv_state_null_set(pvstate_t state, bool val)
|
||||||
{
|
{
|
||||||
state->null = val;
|
state->null = val;
|
||||||
@@ -211,6 +255,20 @@ void pv_state_watch_fd_set(pvstate_t state, int val)
|
|||||||
state->watch_fd = val;
|
state->watch_fd = val;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void pv_state_average_rate_window_set(pvstate_t state, int val)
|
||||||
|
{
|
||||||
|
if (val < 1)
|
||||||
|
val = 1;
|
||||||
|
if (val >= 20) {
|
||||||
|
state->history_len = val / 5 + 1;
|
||||||
|
state->history_interval = 5;
|
||||||
|
} else {
|
||||||
|
state->history_len = val + 1;
|
||||||
|
state->history_interval = 1;
|
||||||
|
}
|
||||||
|
pv_alloc_history(state);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the array of input files.
|
* Set the array of input files.
|
||||||
|
|||||||
+201
-28
@@ -20,6 +20,100 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#include <libproc.h>
|
||||||
|
#include <sys/proc_info.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int filesize(pvwatchfd_t info)
|
||||||
|
{
|
||||||
|
if (S_ISBLK(info->sb_fd.st_mode)) {
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the size of block devices by opening
|
||||||
|
* them and seeking to the end.
|
||||||
|
*/
|
||||||
|
fd = open64(info->file_fdpath, O_RDONLY);
|
||||||
|
if (fd >= 0) {
|
||||||
|
info->size = lseek64(fd, 0, SEEK_END);
|
||||||
|
close(fd);
|
||||||
|
} else {
|
||||||
|
info->size = 0;
|
||||||
|
}
|
||||||
|
} else if (S_ISREG(info->sb_fd.st_mode)) {
|
||||||
|
if ((info->sb_fd_link.st_mode & S_IWUSR) == 0) {
|
||||||
|
info->size = info->sb_fd.st_size;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
int pv_watchfd_info(pvstate_t state, pvwatchfd_t info, int automatic)
|
||||||
|
{
|
||||||
|
struct vnode_fdinfowithpath vnodeInfo = { };
|
||||||
|
|
||||||
|
if (NULL == state)
|
||||||
|
return -1;
|
||||||
|
if (NULL == info)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (kill(info->watch_pid, 0) != 0) {
|
||||||
|
if (!automatic)
|
||||||
|
pv_error(state, "%s %u: %s",
|
||||||
|
_("pid"),
|
||||||
|
info->watch_pid, strerror(errno));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t proc_fd = (int32_t) info->watch_fd;
|
||||||
|
int size = proc_pidfdinfo(info->watch_pid, proc_fd,
|
||||||
|
PROC_PIDFDVNODEPATHINFO, &vnodeInfo,
|
||||||
|
PROC_PIDFDVNODEPATHINFO_SIZE);
|
||||||
|
if (size != PROC_PIDFDVNODEPATHINFO_SIZE) {
|
||||||
|
pv_error(state, "%s %u: %s %d: %s",
|
||||||
|
_("pid"),
|
||||||
|
info->watch_pid,
|
||||||
|
_("fd"), info->watch_fd, strerror(errno));
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
strlcpy(info->file_fdpath, vnodeInfo.pvip.vip_path,
|
||||||
|
sizeof(info->file_fdpath));
|
||||||
|
|
||||||
|
info->size = 0;
|
||||||
|
|
||||||
|
if (!(0 == stat64(info->file_fdpath, &(info->sb_fd)))) {
|
||||||
|
if (!automatic)
|
||||||
|
pv_error(state, "%s %u: %s %d: %s: %s",
|
||||||
|
_("pid"),
|
||||||
|
info->watch_pid,
|
||||||
|
_("fd"),
|
||||||
|
info->watch_fd, info->file_fdpath,
|
||||||
|
strerror(errno));
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filesize(info) != 0) {
|
||||||
|
if (!automatic)
|
||||||
|
pv_error(state, "%s %u: %s %d: %s: %s",
|
||||||
|
_("pid"),
|
||||||
|
info->watch_pid,
|
||||||
|
_("fd"),
|
||||||
|
info->watch_fd,
|
||||||
|
info->file_fdpath,
|
||||||
|
_("not a regular file or block device"));
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fill in the given information structure with the file paths and stat
|
* Fill in the given information structure with the file paths and stat
|
||||||
@@ -91,25 +185,8 @@ int pv_watchfd_info(pvstate_t state, pvwatchfd_t info, int automatic)
|
|||||||
|
|
||||||
info->size = 0;
|
info->size = 0;
|
||||||
|
|
||||||
if (S_ISBLK(info->sb_fd.st_mode)) {
|
int ret = filesize(info);
|
||||||
int fd;
|
if (ret != 0) {
|
||||||
|
|
||||||
/*
|
|
||||||
* Get the size of block devices by opening
|
|
||||||
* them and seeking to the end.
|
|
||||||
*/
|
|
||||||
fd = open64(info->file_fdpath, O_RDONLY);
|
|
||||||
if (fd >= 0) {
|
|
||||||
info->size = lseek64(fd, 0, SEEK_END);
|
|
||||||
close(fd);
|
|
||||||
} else {
|
|
||||||
info->size = 0;
|
|
||||||
}
|
|
||||||
} else if (S_ISREG(info->sb_fd.st_mode)) {
|
|
||||||
if ((info->sb_fd_link.st_mode & S_IWUSR) == 0) {
|
|
||||||
info->size = info->sb_fd.st_size;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!automatic)
|
if (!automatic)
|
||||||
pv_error(state, "%s %u: %s %d: %s: %s",
|
pv_error(state, "%s %u: %s %d: %s: %s",
|
||||||
_("pid"),
|
_("pid"),
|
||||||
@@ -118,13 +195,19 @@ int pv_watchfd_info(pvstate_t state, pvwatchfd_t info, int automatic)
|
|||||||
info->watch_fd,
|
info->watch_fd,
|
||||||
info->file_fdpath,
|
info->file_fdpath,
|
||||||
_("not a regular file or block device"));
|
_("not a regular file or block device"));
|
||||||
return 4;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
int pv_watchfd_changed(pvwatchfd_t info)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
/*
|
/*
|
||||||
* Return nonzero if the given file descriptor has changed in some way since
|
* Return nonzero if the given file descriptor has changed in some way since
|
||||||
* we started looking at it (i.e. changed destination or permissions).
|
* we started looking at it (i.e. changed destination or permissions).
|
||||||
@@ -147,8 +230,28 @@ int pv_watchfd_changed(pvwatchfd_t info)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
long long pv_watchfd_position(pvwatchfd_t info)
|
||||||
|
{
|
||||||
|
long long position;
|
||||||
|
struct vnode_fdinfowithpath vnodeInfo = { };
|
||||||
|
int32_t proc_fd = (int32_t) info->watch_fd;
|
||||||
|
|
||||||
|
int size = proc_pidfdinfo(info->watch_pid, proc_fd,
|
||||||
|
PROC_PIDFDVNODEPATHINFO, &vnodeInfo,
|
||||||
|
PROC_PIDFDVNODEPATHINFO_SIZE);
|
||||||
|
if (size != PROC_PIDFDVNODEPATHINFO_SIZE) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
position = (long long) vnodeInfo.pfi.fi_offset;
|
||||||
|
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
/*
|
/*
|
||||||
* Return the current file position of the given file descriptor, or -1 if
|
* Return the current file position of the given file descriptor, or -1 if
|
||||||
* the fd has closed or has changed in some way.
|
* the fd has closed or has changed in some way.
|
||||||
@@ -170,8 +273,35 @@ long long pv_watchfd_position(pvwatchfd_t info)
|
|||||||
|
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
int pidfds(pvstate_t state, unsigned int pid, struct proc_fdinfo **fds,
|
||||||
|
int *count)
|
||||||
|
{
|
||||||
|
int size_needed = proc_pidinfo(pid, PROC_PIDLISTFDS, 0, 0, 0);
|
||||||
|
if (size_needed == -1) {
|
||||||
|
pv_error(state, "%s: unable to list pid fds: %s", _("pid"),
|
||||||
|
strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*count = size_needed / PROC_PIDLISTFD_SIZE;
|
||||||
|
|
||||||
|
*fds = (struct proc_fdinfo *) malloc(size_needed);
|
||||||
|
if (*fds == NULL) {
|
||||||
|
pv_error(state, "%s: alloc failed: %s", _("pid"),
|
||||||
|
strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
proc_pidinfo(pid, PROC_PIDLISTFDS, 0, *fds, size_needed);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Scan the given process and update the arrays with any new file
|
* Scan the given process and update the arrays with any new file
|
||||||
* descriptors.
|
* descriptors.
|
||||||
@@ -185,8 +315,6 @@ int pv_watchpid_scanfds(pvstate_t state, pvstate_t pristine,
|
|||||||
pvstate_t * state_array_ptr, int *fd_to_idx)
|
pvstate_t * state_array_ptr, int *fd_to_idx)
|
||||||
{
|
{
|
||||||
char fd_dir[512] = { 0, };
|
char fd_dir[512] = { 0, };
|
||||||
DIR *dptr;
|
|
||||||
struct dirent *d;
|
|
||||||
int array_length = 0;
|
int array_length = 0;
|
||||||
struct pvwatchfd_s *info_array = NULL;
|
struct pvwatchfd_s *info_array = NULL;
|
||||||
struct pvstate_s *state_array = NULL;
|
struct pvstate_s *state_array = NULL;
|
||||||
@@ -196,24 +324,47 @@ int pv_watchpid_scanfds(pvstate_t state, pvstate_t pristine,
|
|||||||
#else
|
#else
|
||||||
sprintf(fd_dir, "/proc/%u/fd", watch_pid);
|
sprintf(fd_dir, "/proc/%u/fd", watch_pid);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef __APPLE__
|
||||||
|
struct proc_fdinfo *fd_infos = NULL;
|
||||||
|
int fd_infos_count = 0;
|
||||||
|
|
||||||
|
if (pidfds(state, watch_pid, &fd_infos, &fd_infos_count) != 0) {
|
||||||
|
pv_error(state, "%s: pidfds failed", _("pid"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
DIR *dptr;
|
||||||
|
struct dirent *d;
|
||||||
dptr = opendir(fd_dir);
|
dptr = opendir(fd_dir);
|
||||||
if (NULL == dptr)
|
if (NULL == dptr)
|
||||||
return 1;
|
return 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
array_length = *array_length_ptr;
|
array_length = *array_length_ptr;
|
||||||
info_array = *info_array_ptr;
|
info_array = *info_array_ptr;
|
||||||
state_array = *state_array_ptr;
|
state_array = *state_array_ptr;
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if (fd_infos_count < 1) {
|
||||||
|
pv_error(state, "%s: no fds found", _("pid"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < fd_infos_count; i++) {
|
||||||
|
#else
|
||||||
while ((d = readdir(dptr)) != NULL) {
|
while ((d = readdir(dptr)) != NULL) {
|
||||||
|
#endif
|
||||||
int fd, check_idx, use_idx, rc;
|
int fd, check_idx, use_idx, rc;
|
||||||
long long position_now;
|
long long position_now;
|
||||||
|
|
||||||
fd = -1;
|
fd = -1;
|
||||||
|
#ifdef __APPLE__
|
||||||
|
fd = fd_infos[i].proc_fd;
|
||||||
|
#else
|
||||||
if (sscanf(d->d_name, "%d", &fd) != 1)
|
if (sscanf(d->d_name, "%d", &fd) != 1)
|
||||||
continue;
|
continue;
|
||||||
if ((fd < 0) || (fd >= FD_SETSIZE))
|
if ((fd < 0) || (fd >= FD_SETSIZE))
|
||||||
continue;
|
continue;
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* Skip if this fd is already known to us.
|
* Skip if this fd is already known to us.
|
||||||
*/
|
*/
|
||||||
@@ -296,6 +447,11 @@ int pv_watchpid_scanfds(pvstate_t state, pvstate_t pristine,
|
|||||||
|
|
||||||
info_array[use_idx].watch_pid = watch_pid;
|
info_array[use_idx].watch_pid = watch_pid;
|
||||||
info_array[use_idx].watch_fd = fd;
|
info_array[use_idx].watch_fd = fd;
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if (fd_infos[i].proc_fdtype != PROX_FDTYPE_VNODE) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
rc = pv_watchfd_info(state, &(info_array[use_idx]), 1);
|
rc = pv_watchfd_info(state, &(info_array[use_idx]), 1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -354,7 +510,12 @@ int pv_watchpid_scanfds(pvstate_t state, pvstate_t pristine,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
free(fd_infos);
|
||||||
|
#else
|
||||||
closedir(dptr);
|
closedir(dptr);
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -363,14 +524,26 @@ int pv_watchpid_scanfds(pvstate_t state, pvstate_t pristine,
|
|||||||
/*
|
/*
|
||||||
* Set the display name for the given watched file descriptor, truncating at
|
* Set the display name for the given watched file descriptor, truncating at
|
||||||
* the relevant places according to the current screen width.
|
* the relevant places according to the current screen width.
|
||||||
|
*
|
||||||
|
* If the file descriptor is pointing to a file under the current working
|
||||||
|
* directory, show its relative path, not the full path.
|
||||||
*/
|
*/
|
||||||
void pv_watchpid_setname(pvstate_t state, pvwatchfd_t info)
|
void pv_watchpid_setname(pvstate_t state, pvwatchfd_t info)
|
||||||
{
|
{
|
||||||
int path_length, max_display_length;
|
int path_length, cwd_length, max_display_length;
|
||||||
|
char *file_fdpath = info->file_fdpath;
|
||||||
|
|
||||||
memset(info->display_name, 0, sizeof(info->display_name));
|
memset(info->display_name, 0, sizeof(info->display_name));
|
||||||
|
|
||||||
path_length = strlen(info->file_fdpath);
|
path_length = strlen(info->file_fdpath);
|
||||||
|
cwd_length = strlen(state->cwd);
|
||||||
|
if (cwd_length > 0 && path_length > cwd_length) {
|
||||||
|
if (0 ==
|
||||||
|
strncmp(info->file_fdpath, state->cwd, cwd_length)) {
|
||||||
|
file_fdpath += cwd_length + 1;
|
||||||
|
path_length -= cwd_length + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
max_display_length = (state->width / 2) - 6;
|
max_display_length = (state->width / 2) - 6;
|
||||||
if (max_display_length >= path_length) {
|
if (max_display_length >= path_length) {
|
||||||
@@ -380,7 +553,7 @@ void pv_watchpid_setname(pvstate_t state, pvwatchfd_t info)
|
|||||||
#else
|
#else
|
||||||
sprintf(info->display_name,
|
sprintf(info->display_name,
|
||||||
#endif
|
#endif
|
||||||
"%4d:%.498s", info->watch_fd, info->file_fdpath);
|
"%4d:%.498s", info->watch_fd, file_fdpath);
|
||||||
} else {
|
} else {
|
||||||
int prefix_length, suffix_length;
|
int prefix_length, suffix_length;
|
||||||
|
|
||||||
@@ -394,9 +567,9 @@ void pv_watchpid_setname(pvstate_t state, pvwatchfd_t info)
|
|||||||
sprintf(info->display_name,
|
sprintf(info->display_name,
|
||||||
#endif
|
#endif
|
||||||
"%4d:%.*s...%.*s",
|
"%4d:%.*s...%.*s",
|
||||||
info->watch_fd, prefix_length, info->file_fdpath,
|
info->watch_fd, prefix_length, file_fdpath,
|
||||||
suffix_length,
|
suffix_length,
|
||||||
info->file_fdpath + path_length - suffix_length);
|
file_fdpath + path_length - suffix_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("%s: %d: [%s]", "set name for fd", info->watch_fd,
|
debug("%s: %d: [%s]", "set name for fd", info->watch_fd,
|
||||||
|
|||||||
+2
-2
@@ -13,8 +13,8 @@ NUM=`tr '\r' '\n' < $TMP1 | tr -d ' ' | sed '/^$/d' | sort | uniq | wc -l | tr -
|
|||||||
#
|
#
|
||||||
test $NUM -gt 3 || exit 1
|
test $NUM -gt 3 || exit 1
|
||||||
|
|
||||||
# 8 or more - not OK, since even on a heavily loaded system that's too long.
|
# 12 or more - not OK, since even on a heavily loaded system that's too long.
|
||||||
#
|
#
|
||||||
test $NUM -lt 8
|
test $NUM -lt 12
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user