Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
546074853e | ||
|
|
7deef78ea5 | ||
|
|
a38e05e749 | ||
|
|
493634e26c | ||
|
|
f96a43e366 | ||
|
|
b434c858a2 | ||
|
|
30e30f0196 | ||
|
|
1a70cc228a | ||
|
|
17ca4fc9c9 | ||
|
|
0aac6d6aac | ||
|
|
61021eab6b | ||
|
|
e59452d765 | ||
|
|
d2647ac55c | ||
|
|
c2c58762f0 | ||
|
|
0a55710cfc | ||
|
|
660d3da704 | ||
|
|
972f8b7df8 | ||
|
|
a40bdfb55f | ||
|
|
3c9ab822fe | ||
|
|
fb5ce33518 | ||
|
|
5c15337662 | ||
|
|
71f929e29c | ||
|
|
c21ad6fdf1 | ||
|
|
f0895177e7 | ||
|
|
72686655cf | ||
|
|
2efe598855 | ||
|
|
54913fddbe | ||
|
|
023cf22a59 | ||
|
|
164d7f7738 | ||
|
|
6b8acd9e01 |
@@ -95,6 +95,7 @@ tests/Modifiers_-_--line-mode.test \
|
|||||||
tests/Modifiers_-_--size_from_file_size.test \
|
tests/Modifiers_-_--size_from_file_size.test \
|
||||||
tests/Modifiers_-_--size.test \
|
tests/Modifiers_-_--size.test \
|
||||||
tests/Modifiers_-_--sync.test \
|
tests/Modifiers_-_--sync.test \
|
||||||
|
tests/Sparse_-_Basic.test \
|
||||||
tests/Terminal_-_Detect_width.test \
|
tests/Terminal_-_Detect_width.test \
|
||||||
tests/Transfer_-_--rate-limit.test \
|
tests/Transfer_-_--rate-limit.test \
|
||||||
tests/Transfer_-_--remote.test \
|
tests/Transfer_-_--remote.test \
|
||||||
|
|||||||
@@ -1,10 +1,16 @@
|
|||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
This is the README for **pv** ("Pipe Viewer"), a terminal-based tool for
|
**pv** ("Pipe Viewer") is a terminal-based tool for monitoring the progress
|
||||||
monitoring the progress of data through a pipeline. It can be inserted into
|
of data through a pipeline and modifying its flow.
|
||||||
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
|
It can be inserted into any normal pipeline between two processes to give a
|
||||||
completion it is, and an estimate of how long it will be until completion.
|
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. Data flow rate, error handling strategy, buffer size, and
|
||||||
|
cache interaction can all be adjusted.
|
||||||
|
|
||||||
|
In "**\--watchfd**" mode, **pv** will inspect another process and show its
|
||||||
|
progress through the files it has open.
|
||||||
|
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ dnl Copyright 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2025 Andrew Wood
|
|||||||
dnl
|
dnl
|
||||||
dnl License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
|
dnl License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
|
||||||
|
|
||||||
AC_INIT([pv], [1.9.42], [https://codeberg.org/ivarch/pv/issues], [pv], [https://ivarch.com/p/pv])
|
AC_INIT([pv], [1.9.44], [https://codeberg.org/ivarch/pv/issues], [pv], [https://ivarch.com/p/pv])
|
||||||
AC_CONFIG_SRCDIR([src/include/config.h.in])
|
AC_CONFIG_SRCDIR([src/include/config.h.in])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AC_CONFIG_HEADERS([src/include/config.h])
|
AC_CONFIG_HEADERS([src/include/config.h])
|
||||||
|
|||||||
@@ -108,6 +108,8 @@ is acknowledged and greatly appreciated:
|
|||||||
* [Alexander Petrossian](https://github.com/neopaf) - suggested using Unicode output for a more granular progress bar, and provided the codepoints to use ([#15](https://codeberg.org/ivarch/pv/issues/15))
|
* [Alexander Petrossian](https://github.com/neopaf) - suggested using Unicode output for a more granular progress bar, and provided the codepoints to use ([#15](https://codeberg.org/ivarch/pv/issues/15))
|
||||||
* [jmealo](https://codeberg.org/jmealo) - suggested JSON progress output ([#127](https://codeberg.org/ivarch/pv/issues/127))
|
* [jmealo](https://codeberg.org/jmealo) - suggested JSON progress output ([#127](https://codeberg.org/ivarch/pv/issues/127))
|
||||||
* [ipaqmaster](https://codeberg.org/ipaqmaster) - investigated 100%-CPU utilisation bug when piping to a command that has exited ([#164](https://codeberg.org/ivarch/pv/issues/164))
|
* [ipaqmaster](https://codeberg.org/ipaqmaster) - investigated 100%-CPU utilisation bug when piping to a command that has exited ([#164](https://codeberg.org/ivarch/pv/issues/164))
|
||||||
|
* Andriy Galetski, and also [thinrope](https://codeberg.org/thinrope) - suggested the "**--sparse**" option ([#45](https://codeberg.org/ivarch/pv/issues/45))
|
||||||
|
* [KimHansen](https://codeberg.org/KimHansen) - suggested that "**--watchfd**" should keep its display when the process ends ([#81](https://codeberg.org/ivarch/pv/issues/81))
|
||||||
|
|
||||||
Translations provided through [Codeberg Weblate](https://translate.codeberg.org/projects/pv/):
|
Translations provided through [Codeberg Weblate](https://translate.codeberg.org/projects/pv/):
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
### 1.9.44 - 18 October 2025
|
||||||
|
|
||||||
|
* *feature:* new **--sparse** option to write sparse output ([#45](https://codeberg.org/ivarch/pv/issues/45))
|
||||||
|
* *fix:* don't clear the **--watchfd** display when the watched process ends ([#81](https://codeberg.org/ivarch/pv/issues/81))
|
||||||
|
|
||||||
### 1.9.42 - 11 October 2025
|
### 1.9.42 - 11 October 2025
|
||||||
|
|
||||||
* *feature:* permit multiple arguments to **--watchfd** ([#12](https://codeberg.org/ivarch/pv/issues/12))
|
* *feature:* permit multiple arguments to **--watchfd** ([#12](https://codeberg.org/ivarch/pv/issues/12))
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
.TH PV 1 2025-10-11 pv-1.9.42 "User Commands"
|
.TH PV 1 2025-10-18 pv-1.9.44 "User Commands"
|
||||||
.\"
|
.\"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
pv \- monitor the progress of data through a pipe
|
pv \- monitor and manage the progress of data through a pipe
|
||||||
.\"
|
.\"
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B pv
|
.B pv
|
||||||
@@ -16,11 +16,15 @@ pv \- monitor the progress of data through a pipe
|
|||||||
Show the progress of data through a pipeline by giving information such as
|
Show the progress of data through a pipeline by giving information such as
|
||||||
time elapsed, percentage completed (with progress bar), current throughput
|
time elapsed, percentage completed (with progress bar), current throughput
|
||||||
rate, total data transferred, and ETA.
|
rate, total data transferred, and ETA.
|
||||||
|
The data flow rate, error handling strategy, buffer size, and cache
|
||||||
|
interaction can all be adjusted.
|
||||||
.PP
|
.PP
|
||||||
Each \fIFILE\fR is copied to standard output.
|
Each \fIFILE\fR is copied to standard output.
|
||||||
With no \fIFILE\fR, or when \fIFILE\fR is \*(lq-\*(rq, standard input is
|
With no \fIFILE\fR, or when \fIFILE\fR is \*(lq-\*(rq, standard input is
|
||||||
read.
|
read.
|
||||||
This is the same behaviour as \fBcat\fR(1).
|
.PP
|
||||||
|
In \*(lq\fB\-\-watchfd\fR\*(rq mode, inspect another process and show its
|
||||||
|
progress through the files it has open.
|
||||||
.\"
|
.\"
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.\"
|
.\"
|
||||||
@@ -273,9 +277,9 @@ from or to a pipe than regular \fBread\fR(2) and \fBwrite\fR(2), but means
|
|||||||
that the transfer buffer may not be used.
|
that the transfer buffer may not be used.
|
||||||
This prevents \*(lq\fB\-\-buffer\-percent\fR\*(rq and
|
This prevents \*(lq\fB\-\-buffer\-percent\fR\*(rq and
|
||||||
\*(lq\fB\-\-last\-written\fR\*(rq from working, cannot work with
|
\*(lq\fB\-\-last\-written\fR\*(rq from working, cannot work with
|
||||||
\*(lq\fB\-\-discard\fR\*(rq, and makes \*(lq\fB\-\-buffer\-size\fR\*(rq
|
\*(lq\fB\-\-sparse\fR\*(rq or \*(lq\fB\-\-discard\fR\*(rq, and makes
|
||||||
redundant, so using any of those options automatically switches on
|
\*(lq\fB\-\-buffer\-size\fR\*(rq redundant, so using any of those options
|
||||||
\*(lq\fB\-\-no\-splice\fR\*(rq.
|
automatically switches on \*(lq\fB\-\-no\-splice\fR\*(rq.
|
||||||
Switching on this option results in a small loss of transfer efficiency.
|
Switching on this option results in a small loss of transfer efficiency.
|
||||||
It has no effect on systems where \fBsplice\fR(2) is unavailable.
|
It has no effect on systems where \fBsplice\fR(2) is unavailable.
|
||||||
.TP
|
.TP
|
||||||
@@ -325,6 +329,13 @@ failures with an error of \*(lqInvalid argument\*(rq, especially if reading
|
|||||||
and writing files across a variety of filesystems in a single \fBpv\fR call.
|
and writing files across a variety of filesystems in a single \fBpv\fR call.
|
||||||
Use this option with caution.
|
Use this option with caution.
|
||||||
.TP
|
.TP
|
||||||
|
.B \-O, \-\-sparse
|
||||||
|
When writing null bytes, try to seek, producing a sparse output file.
|
||||||
|
Implies \*(lq\fB\-\-no\-splice\fR\*(rq.
|
||||||
|
On filesystems without sparse file support, or when the output is not
|
||||||
|
seekable, this option will have no effect other than to turn on
|
||||||
|
\*(lq\fB\-\-no\-splice\fR\*(rq.
|
||||||
|
.TP
|
||||||
.B \-X, \-\-discard
|
.B \-X, \-\-discard
|
||||||
Instead of transferring input data to standard output, discard it.
|
Instead of transferring input data to standard output, discard it.
|
||||||
This is equivalent to redirecting standard output to \fI/dev/null\fR,
|
This is equivalent to redirecting standard output to \fI/dev/null\fR,
|
||||||
@@ -793,6 +804,13 @@ Numbers passed to \*(lq\fB\-\-last\-written\fR\*(rq,
|
|||||||
\*(lq\fB\-\-width\fR\*(rq, \*(lq\fB\-\-height\fR\*(rq,
|
\*(lq\fB\-\-width\fR\*(rq, \*(lq\fB\-\-height\fR\*(rq,
|
||||||
\*(lq\fB\-\-average\-rate\-window\fR\*(rq, and \*(lq\fB\-\-remote\fR\*(rq
|
\*(lq\fB\-\-average\-rate\-window\fR\*(rq, and \*(lq\fB\-\-remote\fR\*(rq
|
||||||
must be integers with no suffix.
|
must be integers with no suffix.
|
||||||
|
.PP
|
||||||
|
When \*(lq\fB\-\-sparse\fR\*(rq is in effect and output is being written to
|
||||||
|
a file, that file may look like it has stopped growing if inspected with
|
||||||
|
\fBls\fR(1) while null bytes are being written, even though \fBpv\fR still
|
||||||
|
reports progress.
|
||||||
|
This is because of the way sparse output is achieved, and the file will be
|
||||||
|
the correct size when the transfer ends.
|
||||||
.\"
|
.\"
|
||||||
.SH REPORTING BUGS
|
.SH REPORTING BUGS
|
||||||
Please report bugs or feature requests via the issue tracker linked from the
|
Please report bugs or feature requests via the issue tracker linked from the
|
||||||
|
|||||||
+26
-9
@@ -1,6 +1,6 @@
|
|||||||
# NAME
|
# NAME
|
||||||
|
|
||||||
pv - monitor the progress of data through a pipe
|
pv - monitor and manage the progress of data through a pipe
|
||||||
|
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
|
|
||||||
@@ -15,11 +15,15 @@ pv - monitor the progress of data through a pipe
|
|||||||
|
|
||||||
Show the progress of data through a pipeline by giving information such
|
Show the progress of data through a pipeline by giving information such
|
||||||
as time elapsed, percentage completed (with progress bar), current
|
as time elapsed, percentage completed (with progress bar), current
|
||||||
throughput rate, total data transferred, and ETA.
|
throughput rate, total data transferred, and ETA. The data flow rate,
|
||||||
|
error handling strategy, buffer size, and cache interaction can all be
|
||||||
|
adjusted.
|
||||||
|
|
||||||
Each *FILE* is copied to standard output. With no *FILE*, or when *FILE*
|
Each *FILE* is copied to standard output. With no *FILE*, or when *FILE*
|
||||||
is "-", standard input is read. This is the same behaviour as
|
is "-", standard input is read.
|
||||||
**cat**(1).
|
|
||||||
|
In "**\--watchfd**" mode, inspect another process and show its progress
|
||||||
|
through the files it has open.
|
||||||
|
|
||||||
# OPTIONS
|
# OPTIONS
|
||||||
|
|
||||||
@@ -281,11 +285,11 @@ are explicitly switched on will be shown.
|
|||||||
data from or to a pipe than regular **read**(2) and **write**(2),
|
data from or to a pipe than regular **read**(2) and **write**(2),
|
||||||
but means that the transfer buffer may not be used. This prevents
|
but means that the transfer buffer may not be used. This prevents
|
||||||
"**\--buffer-percent**" and "**\--last-written**" from working,
|
"**\--buffer-percent**" and "**\--last-written**" from working,
|
||||||
cannot work with "**\--discard**", and makes "**\--buffer-size**"
|
cannot work with "**\--sparse**" or "**\--discard**", and makes
|
||||||
redundant, so using any of those options automatically switches on
|
"**\--buffer-size**" redundant, so using any of those options
|
||||||
"**\--no-splice**". Switching on this option results in a small loss
|
automatically switches on "**\--no-splice**". Switching on this
|
||||||
of transfer efficiency. It has no effect on systems where
|
option results in a small loss of transfer efficiency. It has no
|
||||||
**splice**(2) is unavailable.
|
effect on systems where **splice**(2) is unavailable.
|
||||||
|
|
||||||
**-E, \--skip-errors**
|
**-E, \--skip-errors**
|
||||||
|
|
||||||
@@ -336,6 +340,13 @@ are explicitly switched on will be shown.
|
|||||||
especially if reading and writing files across a variety of
|
especially if reading and writing files across a variety of
|
||||||
filesystems in a single **pv** call. Use this option with caution.
|
filesystems in a single **pv** call. Use this option with caution.
|
||||||
|
|
||||||
|
**-O, \--sparse**
|
||||||
|
|
||||||
|
: When writing null bytes, try to seek, producing a sparse output
|
||||||
|
file. Implies "**\--no-splice**". On filesystems without sparse file
|
||||||
|
support, or when the output is not seekable, this option will have
|
||||||
|
no effect other than to turn on "**\--no-splice**".
|
||||||
|
|
||||||
**-X, \--discard**
|
**-X, \--discard**
|
||||||
|
|
||||||
: Instead of transferring input data to standard output, discard it.
|
: Instead of transferring input data to standard output, discard it.
|
||||||
@@ -753,6 +764,12 @@ Numbers passed to "**\--last-written**", "**\--width**",
|
|||||||
"**\--height**", "**\--average-rate-window**", and "**\--remote**" must
|
"**\--height**", "**\--average-rate-window**", and "**\--remote**" must
|
||||||
be integers with no suffix.
|
be integers with no suffix.
|
||||||
|
|
||||||
|
When "**\--sparse**" is in effect and output is being written to a file,
|
||||||
|
that file may look like it has stopped growing if inspected with
|
||||||
|
**ls**(1) while null bytes are being written, even though **pv** still
|
||||||
|
reports progress. This is because of the way sparse output is achieved,
|
||||||
|
and the file will be the correct size when the transfer ends.
|
||||||
|
|
||||||
# REPORTING BUGS
|
# REPORTING BUGS
|
||||||
|
|
||||||
Please report bugs or feature requests via the issue tracker linked from
|
Please report bugs or feature requests via the issue tracker linked from
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ if test "$1" = "--testRunner"; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
labHosts="$(cat ~/.config/lab-hosts 2>/dev/null)"
|
labHosts="$(grep -v '^#' ~/.config/lab-hosts 2>/dev/null)"
|
||||||
|
|
||||||
workDir=$(mktemp -d) || exit 1
|
workDir=$(mktemp -d) || exit 1
|
||||||
trap 'rm -rf "${workDir}"' EXIT
|
trap 'rm -rf "${workDir}"' EXIT
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+0100\n"
|
||||||
"PO-Revision-Date: 2024-10-13 20:43+0000\n"
|
"PO-Revision-Date: 2024-10-13 20:43+0000\n"
|
||||||
"Last-Translator: mmatous <mmatous@users.noreply.translate.codeberg.org>\n"
|
"Last-Translator: mmatous <mmatous@users.noreply.translate.codeberg.org>\n"
|
||||||
"Language-Team: Czech <https://translate.codeberg.org/projects/pv/pv/cs/>\n"
|
"Language-Team: Czech <https://translate.codeberg.org/projects/pv/pv/cs/>\n"
|
||||||
@@ -168,8 +168,8 @@ msgstr "vypisuj výstup i pokud standardní chybový výstup není terminál"
|
|||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr "pozicuj kurzor pomocí řídících znaků"
|
msgstr "pozicuj kurzor pomocí řídících znaků"
|
||||||
|
|
||||||
#: src/main/help.c:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr "SOUBOR"
|
msgstr "SOUBOR"
|
||||||
|
|
||||||
@@ -218,61 +218,65 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr "použij přímý V/V k obejítí cache"
|
msgstr "použij přímý V/V k obejítí cache"
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
|
msgid "try to seek instead of writing null bytes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:358
|
||||||
msgid "discard input instead of writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr "zahoď vstup namísto zápisu na výstup"
|
msgstr "zahoď vstup namísto zápisu na výstup"
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:361
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "write all input to FILE before writing to output"
|
||||||
msgstr "zapiš veškerý vstup do SOUBORu před výpisem na výstup"
|
msgstr "zapiš veškerý vstup do SOUBORu před výpisem na výstup"
|
||||||
|
|
||||||
#: src/main/help.c:360
|
#: src/main/help.c:363
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr "PID[:DS]"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:364
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "sleduj soubor DS otevřený procesem PID"
|
msgstr "sleduj soubor DS otevřený procesem PID"
|
||||||
|
|
||||||
#: src/main/help.c:364
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr "PID"
|
msgstr "PID"
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr "aktualizuj nastavení procesu PID"
|
msgstr "aktualizuj nastavení procesu PID"
|
||||||
|
|
||||||
#: src/main/help.c:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "ulož id procesu do SOUBORu"
|
msgstr "ulož id procesu do SOUBORu"
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr "ukaž pomoc a skonči"
|
msgstr "ukaž pomoc a skonči"
|
||||||
|
|
||||||
#: src/main/help.c:376
|
#: src/main/help.c:379
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr "ukaž informace o verzi a skonči"
|
msgstr "ukaž informace o verzi a skonči"
|
||||||
|
|
||||||
#: src/main/help.c:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr "zapiš ladící záznamy do SOUBORu"
|
msgstr "zapiš ladící záznamy do SOUBORu"
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Použití: %s [VOLBY] [SOUBOR]..."
|
msgstr "Použití: %s [VOLBY] [SOUBOR]..."
|
||||||
|
|
||||||
#: src/main/help.c:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Spoj SOUBOR(y) nebo standardní vstup na standardního výstup, s monitoringem."
|
"Spoj SOUBOR(y) nebo standardní vstup na standardního výstup, s monitoringem."
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to: %s"
|
msgid "Please report any bugs to: %s"
|
||||||
msgstr "Prosím, hlašte veškeré chyby na: %s"
|
msgstr "Prosím, hlašte veškeré chyby na: %s"
|
||||||
@@ -289,11 +293,11 @@ msgstr "selhala alokace stavu"
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr "očekáváno ID procesu nebo dvojice PID:DS"
|
msgstr "očekáváno ID procesu nebo dvojice PID:DS"
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr "neplatné ID procesu"
|
msgstr "neplatné ID procesu"
|
||||||
|
|
||||||
@@ -321,45 +325,45 @@ msgstr "selhalo otevření blokového zařízení"
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr "selhalo zjištění velikosti blokového zařízení"
|
msgstr "selhalo zjištění velikosti blokového zařízení"
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr "selhala alokace struktury pro volby"
|
msgstr "selhala alokace struktury pro volby"
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr "selhala alokace struktury pro argv"
|
msgstr "selhala alokace struktury pro argv"
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr "očekáván celočíselný argument"
|
msgstr "očekáván celočíselný argument"
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr "očekáván číselný argument"
|
msgstr "očekáván číselný argument"
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr "Zkuste `%s --help' pro více informací."
|
msgstr "Zkuste `%s --help' pro více informací."
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr "Zkuste `%s --h' pro více informací."
|
msgstr "Zkuste `%s --h' pro více informací."
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
@@ -367,19 +371,19 @@ msgstr ""
|
|||||||
"při sledování deskriptorů souborů nelze použít řádkový mód nebo volby pro "
|
"při sledování deskriptorů souborů nelze použít řádkový mód nebo volby pro "
|
||||||
"modifikaci přenosu"
|
"modifikaci přenosu"
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr "při sledování deskriptorů souborů nelze pozicování kurzoru použít"
|
msgstr "při sledování deskriptorů souborů nelze pozicování kurzoru použít"
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr "při sledování deskriptorů souborů nelze použít vzdálené ovládání"
|
msgstr "při sledování deskriptorů souborů nelze použít vzdálené ovládání"
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr "při sledování deskriptorů souborů nelze použít přenos souborů"
|
msgstr "při sledování deskriptorů souborů nelze použít přenos souborů"
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr "není dostupné na systémech bez /proc/self/fdinfo"
|
msgstr "není dostupné na systémech bez /proc/self/fdinfo"
|
||||||
|
|
||||||
@@ -431,7 +435,7 @@ msgstr "yzafpnum kMGTPEZY"
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr "yzafpnum KMGTPEZY"
|
msgstr "yzafpnum KMGTPEZY"
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr "selhala alokace vyrovnávací paměti"
|
msgstr "selhala alokace vyrovnávací paměti"
|
||||||
|
|
||||||
@@ -502,7 +506,7 @@ msgstr "rychlost min/avg/max/std"
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr "rychlost neměřena"
|
msgstr "rychlost neměřena"
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -510,7 +514,7 @@ msgstr "rychlost neměřena"
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr "pid"
|
msgstr "pid"
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -520,21 +524,17 @@ msgstr "ds"
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr "selhala alokace struktury historie"
|
msgstr "selhala alokace struktury historie"
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr "selhala alokace seznamu souborů"
|
msgstr "selhala alokace seznamu souborů"
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr "selhala alokace seznamu souborů"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr "selhala alokace seznamu souborů"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:490
|
#: src/pv/transfer.c:490
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
@@ -556,30 +556,33 @@ msgstr "selhal skok za chybu"
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr "chyba přeskočena"
|
msgstr "chyba přeskočena"
|
||||||
|
|
||||||
#: src/pv/transfer.c:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr "vyrovnávací paměť není alokována"
|
msgstr "vyrovnávací paměť není alokována"
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr "selhalo nastavení intervalového časovače"
|
msgstr "selhalo nastavení intervalového časovače"
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr "selhalo vynulování intervalového časovače"
|
msgstr "selhalo vynulování intervalového časovače"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr "selhala alokace vyrovnávací paměti pro pozici v řádcích"
|
msgstr "selhala alokace vyrovnávací paměti pro pozici v řádcích"
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "zápis selhal"
|
msgstr "zápis selhal"
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "selhalo volání select"
|
msgstr "selhalo volání select"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "není obyčejný soubor nebo blokové zařízení"
|
msgstr "není obyčejný soubor nebo blokové zařízení"
|
||||||
|
|
||||||
|
#~ msgid "PID[:FD]"
|
||||||
|
#~ msgstr "PID[:DS]"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-14 20:39+0000\n"
|
"PO-Revision-Date: 2025-01-14 20:39+0000\n"
|
||||||
"Last-Translator: Benny <benny@users.noreply.translate.codeberg.org>\n"
|
"Last-Translator: Benny <benny@users.noreply.translate.codeberg.org>\n"
|
||||||
"Language-Team: German <https://translate.codeberg.org/projects/pv/pv/de/>\n"
|
"Language-Team: German <https://translate.codeberg.org/projects/pv/pv/de/>\n"
|
||||||
@@ -185,8 +185,8 @@ msgstr ""
|
|||||||
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:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr "DATEI"
|
msgstr "DATEI"
|
||||||
|
|
||||||
@@ -235,62 +235,66 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr "verwende direkte E/A, um den Cache zu umgehen"
|
msgstr "verwende direkte E/A, um den Cache zu umgehen"
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
|
msgid "try to seek instead of writing null bytes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:358
|
||||||
msgid "discard input instead of writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr "verwirf die Eingabe anstatt in die Ausgabe zu schreiben"
|
msgstr "verwirf die Eingabe anstatt in die Ausgabe zu schreiben"
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:361
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "write all input to FILE before writing to output"
|
||||||
msgstr "Ausgabe nach FILE schrieben bevor sie ausgegeben wird"
|
msgstr "Ausgabe nach FILE schrieben bevor sie ausgegeben wird"
|
||||||
|
|
||||||
#: src/main/help.c:360
|
#: src/main/help.c:363
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr "PID[:FD]"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:364
|
||||||
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:364
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr "PID"
|
msgstr "PID"
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
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:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "Prozess-ID in DATEI speichern"
|
msgstr "Prozess-ID in DATEI speichern"
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
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:376
|
#: src/main/help.c:379
|
||||||
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:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr "schreibe Debug-Protokolle in DATEI"
|
msgstr "schreibe Debug-Protokolle in DATEI"
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Aufruf: %s [OPTION] [DATEI]..."
|
msgstr "Aufruf: %s [OPTION] [DATEI]..."
|
||||||
|
|
||||||
#: src/main/help.c:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Verbindet DATEI(en) oder den Standard-Eingabe-Kanal mit dem Standard-Ausgabe-"
|
"Verbindet DATEI(en) oder den Standard-Eingabe-Kanal mit dem Standard-Ausgabe-"
|
||||||
"Kanal und misst den Datenstrom."
|
"Kanal und misst den Datenstrom."
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr "unterstützte Formate:"
|
msgstr "unterstützte Formate:"
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, 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"
|
||||||
@@ -307,11 +311,11 @@ msgstr "Speicherzuweisung für `state' fehlgeschlagen"
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr "Prozess-ID oder PID:FD-Paar erwartet"
|
msgstr "Prozess-ID oder PID:FD-Paar erwartet"
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr "ungültige Prozess-ID"
|
msgstr "ungültige Prozess-ID"
|
||||||
|
|
||||||
@@ -339,45 +343,45 @@ msgstr "konnte Blockgerät nicht öffnen"
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr "konnte Größe des Blockgeräts nicht ermitteln"
|
msgstr "konnte Größe des Blockgeräts nicht ermitteln"
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr "Speicherzuweisung für `option' fehlgeschlagen"
|
msgstr "Speicherzuweisung für `option' fehlgeschlagen"
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr "Speicherzuweisung für `argv' der Option fehlgeschlagen"
|
msgstr "Speicherzuweisung für `argv' der Option fehlgeschlagen"
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr "numerischen Wert nicht verstanden"
|
msgstr "numerischen Wert nicht verstanden"
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr "Ganzzahliges Argument erwartet"
|
msgstr "Ganzzahliges Argument erwartet"
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr "numerisches Argument erwartet"
|
msgstr "numerisches Argument erwartet"
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr "`%s --help' zeigt weitere Informationen an."
|
msgstr "`%s --help' zeigt weitere Informationen an."
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr "`%s -h' zeigt weitere Informationen an."
|
msgstr "`%s -h' zeigt weitere Informationen an."
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
@@ -385,24 +389,24 @@ msgstr ""
|
|||||||
"Beim Beobachten von Dateideskriptoren können keine Optionen für den "
|
"Beim Beobachten von Dateideskriptoren können keine Optionen für den "
|
||||||
"Zeilenmodus oder den Übertragungsmodifikator verwendet werden"
|
"Zeilenmodus oder den Übertragungsmodifikator verwendet werden"
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Beim Beobachten von Dateideskriptoren kann Cursor-Positionierung nicht "
|
"Beim Beobachten von Dateideskriptoren kann Cursor-Positionierung nicht "
|
||||||
"verwendet werden"
|
"verwendet werden"
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Beim Beobachten von Dateideskriptoren kann die Fernbedienung nicht verwenden "
|
"Beim Beobachten von Dateideskriptoren kann die Fernbedienung nicht verwenden "
|
||||||
"werden"
|
"werden"
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Beim Beobachten von Dateideskriptoren können Dateien nicht übertragen werden"
|
"Beim Beobachten von Dateideskriptoren können Dateien nicht übertragen werden"
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr "Nicht verfügbar auf Systemen ohne /proc/self/fdinfo"
|
msgstr "Nicht verfügbar auf Systemen ohne /proc/self/fdinfo"
|
||||||
|
|
||||||
@@ -454,7 +458,7 @@ msgstr "yzafpnµm kMGTPEZY"
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr "yzafpnµm KMGTPEZY"
|
msgstr "yzafpnµm KMGTPEZY"
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr "Speicherzuweisung für den Puffer fehlgeschlagen"
|
msgstr "Speicherzuweisung für den Puffer fehlgeschlagen"
|
||||||
|
|
||||||
@@ -525,7 +529,7 @@ msgstr "Rate min/mittel/max/abweichung"
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr "Übertragungsrate nicht gemessen"
|
msgstr "Übertragungsrate nicht gemessen"
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -533,7 +537,7 @@ msgstr "Übertragungsrate nicht gemessen"
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr "pid"
|
msgstr "pid"
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -543,21 +547,17 @@ msgstr "fd"
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr "Speicherzuweisung für `history' fehlgeschlagen"
|
msgstr "Speicherzuweisung für `history' fehlgeschlagen"
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr "Speicherzuweisung für die Dateiliste fehlgeschlagen"
|
msgstr "Speicherzuweisung für die Dateiliste fehlgeschlagen"
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr "Speicherzuweisung für die Dateiliste fehlgeschlagen"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr "Speicherzuweisung für die Dateiliste fehlgeschlagen"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:490
|
#: src/pv/transfer.c:490
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
@@ -579,30 +579,33 @@ 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:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr "Speicherzuweisung für den Transferpuffer fehlgeschlagen"
|
msgstr "Speicherzuweisung für den Transferpuffer fehlgeschlagen"
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr "konnte Intervall-Timer nicht setzen"
|
msgstr "konnte Intervall-Timer nicht setzen"
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr "konnte Intervall-Timer nicht löschen"
|
msgstr "konnte Intervall-Timer nicht löschen"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr "Zuweisung des Zeilenpuffers fehlgeschlagen"
|
msgstr "Zuweisung des Zeilenpuffers fehlgeschlagen"
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "write-Aufruf fehlgeschlagen"
|
msgstr "write-Aufruf fehlgeschlagen"
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "select-Aufruf fehlgeschlagen"
|
msgstr "select-Aufruf fehlgeschlagen"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "ist weder eine normale Datei noch ein Blockgerät"
|
msgstr "ist weder eine normale Datei noch ein Blockgerät"
|
||||||
|
|
||||||
|
#~ msgid "PID[:FD]"
|
||||||
|
#~ msgstr "PID[:FD]"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+0100\n"
|
||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -163,8 +163,8 @@ msgstr ""
|
|||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -213,60 +213,64 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
msgid "discard input instead of writing to output"
|
msgid "try to seek instead of writing null bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:358
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:360
|
|
||||||
msgid "PID[:FD]"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:361
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "write all input to FILE before writing to output"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:363
|
||||||
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:364
|
#: src/main/help.c:364
|
||||||
|
msgid "watch file FD opened by process PID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:376
|
#: src/main/help.c:379
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to: %s"
|
msgid "Please report any bugs to: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -283,11 +287,11 @@ msgstr ""
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -315,63 +319,63 @@ msgstr ""
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -423,7 +427,7 @@ msgstr ""
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -494,7 +498,7 @@ msgstr ""
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -502,7 +506,7 @@ msgstr ""
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -512,15 +516,15 @@ msgstr ""
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -544,27 +548,27 @@ msgstr ""
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: pv 1.9.34\n"
|
"Project-Id-Version: pv 1.9.34\n"
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+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"
|
||||||
@@ -168,8 +168,8 @@ msgstr ""
|
|||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -218,60 +218,64 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
msgid "discard input instead of writing to output"
|
msgid "try to seek instead of writing null bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:358
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:360
|
|
||||||
msgid "PID[:FD]"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:361
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "write all input to FILE before writing to output"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:363
|
||||||
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:364
|
#: src/main/help.c:364
|
||||||
|
msgid "watch file FD opened by process PID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:376
|
#: src/main/help.c:379
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to: %s"
|
msgid "Please report any bugs to: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -288,11 +292,11 @@ msgstr ""
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -320,63 +324,63 @@ msgstr ""
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -428,7 +432,7 @@ msgstr ""
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -499,7 +503,7 @@ msgstr ""
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -507,7 +511,7 @@ msgstr ""
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -517,15 +521,15 @@ msgstr ""
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -549,27 +553,27 @@ msgstr ""
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+0100\n"
|
||||||
"PO-Revision-Date: 2025-05-31 08:58+0000\n"
|
"PO-Revision-Date: 2025-05-31 08:58+0000\n"
|
||||||
"Last-Translator: milimarg <milimarg@noreply.codeberg.org>\n"
|
"Last-Translator: milimarg <milimarg@noreply.codeberg.org>\n"
|
||||||
"Language-Team: French <https://translate.codeberg.org/projects/pv/pv/fr/>\n"
|
"Language-Team: French <https://translate.codeberg.org/projects/pv/pv/fr/>\n"
|
||||||
@@ -186,8 +186,8 @@ msgstr ""
|
|||||||
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:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr "FICHIER"
|
msgstr "FICHIER"
|
||||||
|
|
||||||
@@ -236,62 +236,66 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr "utiliser les E/S directes pour contourner le cache"
|
msgstr "utiliser les E/S directes pour contourner le cache"
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
|
msgid "try to seek instead of writing null bytes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:358
|
||||||
msgid "discard input instead of writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr "rejeter l'entrée au lieu de l'écrire vers la sortie"
|
msgstr "rejeter l'entrée au lieu de l'écrire vers la sortie"
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:361
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "write all input to FILE before writing to output"
|
||||||
msgstr "écrire toute l'entrée vers FICHIER avant de l'écrire vers la sortie"
|
msgstr "écrire toute l'entrée vers FICHIER avant de l'écrire vers la sortie"
|
||||||
|
|
||||||
#: src/main/help.c:360
|
#: src/main/help.c:363
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr "PID[:FD]"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:364
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "surveiller le fichier FD ouvert par le processus PID"
|
msgstr "surveiller le fichier FD ouvert par le processus PID"
|
||||||
|
|
||||||
#: src/main/help.c:364
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr "PID"
|
msgstr "PID"
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
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:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "enregistrer l'ID de processus dans FICHIER"
|
msgstr "enregistrer l'ID de processus dans FICHIER"
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
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:376
|
#: src/main/help.c:379
|
||||||
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:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr "écrire les journaux de déboggage vers FICHIER"
|
msgstr "écrire les journaux de déboggage vers FICHIER"
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, 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:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Concaténer FICHIER(s), ou l'entrée standard, sur la sortie standard avec "
|
"Concaténer FICHIER(s), ou l'entrée standard, sur la sortie standard avec "
|
||||||
"monitorage."
|
"monitorage."
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr "Séquences de formatage supportées :"
|
msgstr "Séquences de formatage supportées :"
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to: %s"
|
msgid "Please report any bugs to: %s"
|
||||||
msgstr "SVP rapporter tous bogues à %s"
|
msgstr "SVP rapporter tous bogues à %s"
|
||||||
@@ -308,11 +312,11 @@ msgstr "échec de l'allocation de mémoire de condition"
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr "ID de processus ou paire pid:fd attendue"
|
msgstr "ID de processus ou paire pid:fd attendue"
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr "ID de processus non valide"
|
msgstr "ID de processus non valide"
|
||||||
|
|
||||||
@@ -340,45 +344,45 @@ msgstr "échec de l'ouverture du périphérique de bloc"
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr "échec de l'évaluation de la taille du périphérique de bloc"
|
msgstr "échec de l'évaluation de la taille du périphérique de bloc"
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr "l'allocation pour la structure d'une option a échoué"
|
msgstr "l'allocation pour la structure d'une option a échoué"
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr "l'allocation pour la structure de l'option argv a échoué"
|
msgstr "l'allocation pour la structure de l'option argv a échoué"
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr "valeur numérique non comprise"
|
msgstr "valeur numérique non comprise"
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr "Valeur entière attendue"
|
msgstr "Valeur entière attendue"
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr "Valeur numérique attendue"
|
msgstr "Valeur numérique attendue"
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr "Essayez `%s --help' pour plus d'informations."
|
msgstr "Essayez `%s --help' pour plus d'informations."
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr "Essayez `%s -h' pour plus d'informations."
|
msgstr "Essayez `%s -h' pour plus d'informations."
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
@@ -386,25 +390,25 @@ msgstr ""
|
|||||||
"impossible d'utiliser le mode ligne ou les options de modificateur de "
|
"impossible d'utiliser le mode ligne ou les options de modificateur de "
|
||||||
"transfert lors de la visualisation des descripteurs de fichiers"
|
"transfert lors de la visualisation des descripteurs de fichiers"
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"impossible d'utiliser le positionnement du curseur lors de la visualisation "
|
"impossible d'utiliser le positionnement du curseur lors de la visualisation "
|
||||||
"des descripteurs de fichier"
|
"des descripteurs de fichier"
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"impossible d'utiliser la télécommande lors de la visualisation des "
|
"impossible d'utiliser la télécommande lors de la visualisation des "
|
||||||
"descripteurs de fichiers"
|
"descripteurs de fichiers"
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"impossible de transférer des fichiers lorsque vous regardez des descripteurs "
|
"impossible de transférer des fichiers lorsque vous regardez des descripteurs "
|
||||||
"de fichiers"
|
"de fichiers"
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr "non disponible sur les systèmes sans /proc/self/fdinfo"
|
msgstr "non disponible sur les systèmes sans /proc/self/fdinfo"
|
||||||
|
|
||||||
@@ -458,7 +462,7 @@ msgstr "yzafpnum kMGTPEZY"
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr "yzafpnum KMGTPEZY"
|
msgstr "yzafpnum KMGTPEZY"
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr "échec de l'allocation de mémoire tampon"
|
msgstr "échec de l'allocation de mémoire tampon"
|
||||||
|
|
||||||
@@ -529,7 +533,7 @@ msgstr "taux min/moy/max/écart-type"
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr "taux non mesuré"
|
msgstr "taux non mesuré"
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -537,7 +541,7 @@ msgstr "taux non mesuré"
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr "pid"
|
msgstr "pid"
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -547,21 +551,17 @@ msgstr "fd"
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr "l'allocation de la structure de l'historique a échoué"
|
msgstr "l'allocation de la structure de l'historique a échoué"
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr "échec de l'allocation de la liste de fichiers"
|
msgstr "échec de l'allocation de la liste de fichiers"
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr "échec de l'allocation de la liste de fichiers"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr "échec de l'allocation de la liste de fichiers"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:490
|
#: src/pv/transfer.c:490
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
@@ -583,27 +583,27 @@ 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:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr "aucun tampon de transfert alloué"
|
msgstr "aucun tampon de transfert alloué"
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr "La définition de l'intervalle du minuteur a échoué"
|
msgstr "La définition de l'intervalle du minuteur a échoué"
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr "La réinitialisation des intervalles du minuteur a échoué"
|
msgstr "La réinitialisation des intervalles du minuteur a échoué"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr "L'allocation de la position de la ligne de la mémoire tampon a échoué"
|
msgstr "L'allocation de la position de la ligne de la mémoire tampon a échoué"
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "l'écriture a échoué"
|
msgstr "l'écriture a échoué"
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "l'appel de sélection a échoué"
|
msgstr "l'appel de sélection a échoué"
|
||||||
|
|
||||||
@@ -611,5 +611,8 @@ msgstr "l'appel de sélection a échoué"
|
|||||||
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"
|
||||||
|
|
||||||
|
#~ msgid "PID[:FD]"
|
||||||
|
#~ msgstr "PID[:FD]"
|
||||||
|
|
||||||
#~ msgid "failed to set alarm signal handler"
|
#~ msgid "failed to set alarm signal handler"
|
||||||
#~ msgstr "échec de la définition du gestionnaire de signal d'alarme"
|
#~ msgstr "échec de la définition du gestionnaire de signal d'alarme"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+0100\n"
|
||||||
"PO-Revision-Date: 2025-10-02 13:23+0000\n"
|
"PO-Revision-Date: 2025-10-02 13:23+0000\n"
|
||||||
"Last-Translator: Coral Pink <coralpink@noreply.codeberg.org>\n"
|
"Last-Translator: Coral Pink <coralpink@noreply.codeberg.org>\n"
|
||||||
"Language-Team: Polish <https://translate.codeberg.org/projects/pv/pv/pl/>\n"
|
"Language-Team: Polish <https://translate.codeberg.org/projects/pv/pv/pl/>\n"
|
||||||
@@ -178,8 +178,8 @@ msgstr "pokaż wyjście nawet standardowe wyjście błędu nie jest terminalem"
|
|||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr "używaj znaków ucieczki do pozycjonowania kursora"
|
msgstr "używaj znaków ucieczki do pozycjonowania kursora"
|
||||||
|
|
||||||
#: src/main/help.c:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr "PLIK"
|
msgstr "PLIK"
|
||||||
|
|
||||||
@@ -229,63 +229,67 @@ msgstr ""
|
|||||||
"użyj bezpośredniego wejścia/wyjścia celem pominięcia pamięci podręcznej"
|
"użyj bezpośredniego wejścia/wyjścia celem pominięcia pamięci podręcznej"
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
|
msgid "try to seek instead of writing null bytes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:358
|
||||||
msgid "discard input instead of writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr "zignoruj dane wejściowe zamiast wyświetlić je na wyjściu standardowym"
|
msgstr "zignoruj dane wejściowe zamiast wyświetlić je na wyjściu standardowym"
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:361
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "write all input to FILE before writing to output"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"zapisz wszystkie dane wejściowe do PLIK przed wyświetleniem ich na wyjściu"
|
"zapisz wszystkie dane wejściowe do PLIK przed wyświetleniem ich na wyjściu"
|
||||||
|
|
||||||
#: src/main/help.c:360
|
#: src/main/help.c:363
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr "PID[:FD]"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:364
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "obserwuj plik FD otworzony przez proces PID"
|
msgstr "obserwuj plik FD otworzony przez proces PID"
|
||||||
|
|
||||||
#: src/main/help.c:364
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr "PID"
|
msgstr "PID"
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr "zaktualizuj ustawienia procesu PID"
|
msgstr "zaktualizuj ustawienia procesu PID"
|
||||||
|
|
||||||
#: src/main/help.c:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "zapisz ID procesu do PLIK"
|
msgstr "zapisz ID procesu do PLIK"
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
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:376
|
#: src/main/help.c:379
|
||||||
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:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr "zapisz logi debugujące do PLIK"
|
msgstr "zapisz logi debugujące do PLIK"
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, 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:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Łączenie PLIK(ów) lub wejścia standardowego, do wyjścia standardowego z "
|
"Łączenie PLIK(ów) lub wejścia standardowego, do wyjścia standardowego z "
|
||||||
"monitoringiem."
|
"monitoringiem."
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr "Wspierane sekwencje formatowania:"
|
msgstr "Wspierane sekwencje formatowania:"
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, 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"
|
||||||
@@ -302,11 +306,11 @@ msgstr "alokacja stanu programu nie powiodła się"
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr "oczekiwany proces ID lub para PID:FD"
|
msgstr "oczekiwany proces ID lub para PID:FD"
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr "niepoprawne ID procesu"
|
msgstr "niepoprawne ID procesu"
|
||||||
|
|
||||||
@@ -334,45 +338,45 @@ msgstr "nie udało się otworzyć urządzenia blokowego"
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr "nie udało się ustalić rozmiaru urządzenia blokowego"
|
msgstr "nie udało się ustalić rozmiaru urządzenia blokowego"
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr "nie udało się zaalokować struktur opcji"
|
msgstr "nie udało się zaalokować struktur opcji"
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr "nie udało się zaalokować struktur opcji argv"
|
msgstr "nie udało się zaalokować struktur opcji argv"
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr "wartość liczbowa niezrozumiana"
|
msgstr "wartość liczbowa niezrozumiana"
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr "oczekiwany argument typu liczby całkowitej"
|
msgstr "oczekiwany argument typu liczby całkowitej"
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr "oczekiwany argument liczbowy"
|
msgstr "oczekiwany argument liczbowy"
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr "Spróbuj `%s --help' by uzyskać więcej informacji."
|
msgstr "Spróbuj `%s --help' by uzyskać więcej informacji."
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr "Spróbuj `%s -h' by uzyskać więcej informacji."
|
msgstr "Spróbuj `%s -h' by uzyskać więcej informacji."
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
@@ -380,23 +384,23 @@ msgstr ""
|
|||||||
"nie można użyć trybu zliczania linii lub opcji modyfikujących przesył "
|
"nie można użyć trybu zliczania linii lub opcji modyfikujących przesył "
|
||||||
"łącznie z opcją obserwowania deskryptorów plików"
|
"łącznie z opcją obserwowania deskryptorów plików"
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"nie można użyć pozycjonowania kursora łącznie z opcją obserwowania "
|
"nie można użyć pozycjonowania kursora łącznie z opcją obserwowania "
|
||||||
"deskryptorów plików"
|
"deskryptorów plików"
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"nie można użyć opcji zaktualizowania ustawień procesu łącznie z opcją "
|
"nie można użyć opcji zaktualizowania ustawień procesu łącznie z opcją "
|
||||||
"obserwowania deskryptorów plików"
|
"obserwowania deskryptorów plików"
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr "nie można przesyłać plików z opcją obserwowania deskryptorów plików"
|
msgstr "nie można przesyłać plików z opcją obserwowania deskryptorów plików"
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr "niedostępne na systemach bez /proc/self/fdinfo"
|
msgstr "niedostępne na systemach bez /proc/self/fdinfo"
|
||||||
|
|
||||||
@@ -449,7 +453,7 @@ msgstr "yzafpnum kMGTPEZY"
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr "yzafpnum KMGTPEZY"
|
msgstr "yzafpnum KMGTPEZY"
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr "nie udało się zaalokować bufora"
|
msgstr "nie udało się zaalokować bufora"
|
||||||
|
|
||||||
@@ -521,7 +525,7 @@ msgstr "prędkość min/śr/max/odch"
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr "prędkość niezmierzona"
|
msgstr "prędkość niezmierzona"
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -529,7 +533,7 @@ msgstr "prędkość niezmierzona"
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr "pid"
|
msgstr "pid"
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -539,15 +543,15 @@ msgstr "fd"
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr "nie udało się zaalokować struktury historii"
|
msgstr "nie udało się zaalokować struktury historii"
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr "nie udało się zaalokować listy plików"
|
msgstr "nie udało się zaalokować listy plików"
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr "nie udało się zaalokować listy procesów"
|
msgstr "nie udało się zaalokować listy procesów"
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr "nie udało się zaalokować listy deskryptorów plików"
|
msgstr "nie udało się zaalokować listy deskryptorów plików"
|
||||||
|
|
||||||
@@ -571,31 +575,34 @@ msgstr "nie udało się przewinąć za błąd"
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr "pominięto błąd odczytu"
|
msgstr "pominięto błąd odczytu"
|
||||||
|
|
||||||
#: src/pv/transfer.c:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr "brak zaalokowanego bufora transferu"
|
msgstr "brak zaalokowanego bufora transferu"
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr "nie udało się ustawić interwału czasowego"
|
msgstr "nie udało się ustawić interwału czasowego"
|
||||||
|
|
||||||
# "Przewidywany czas ukończenia" for ETA is too long
|
# "Przewidywany czas ukończenia" for ETA is too long
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr "nie udało się wyczyścić interwału czasowego"
|
msgstr "nie udało się wyczyścić interwału czasowego"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr "alokacja buforu pozycji linii nie powiodła się"
|
msgstr "alokacja buforu pozycji linii nie powiodła się"
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "błąd zapisu"
|
msgstr "błąd zapisu"
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
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:129 src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "plik nie jest plikiem regularnym lub urządzeniem blokowym"
|
msgstr "plik nie jest plikiem regularnym lub urządzeniem blokowym"
|
||||||
|
|
||||||
|
#~ msgid "PID[:FD]"
|
||||||
|
#~ msgstr "PID[:FD]"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+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"
|
||||||
@@ -171,8 +171,8 @@ msgstr "gera dados mesmo que a saída de erro seja redirecionada"
|
|||||||
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:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -221,62 +221,66 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
msgid "discard input instead of writing to output"
|
msgid "try to seek instead of writing null bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:358
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/main/help.c:360
|
|
||||||
msgid "PID[:FD]"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:361
|
||||||
|
msgid "write all input to FILE before writing to output"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:363
|
||||||
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:364
|
||||||
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:364
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
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:370
|
#: src/main/help.c:373
|
||||||
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:373
|
#: src/main/help.c:376
|
||||||
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:376
|
#: src/main/help.c:379
|
||||||
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:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, 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:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Concatena ARQUIVO(s) ou a entrada padrão e grava na saída padrão, com "
|
"Concatena ARQUIVO(s) ou a entrada padrão e grava na saída padrão, com "
|
||||||
"monitoramento."
|
"monitoramento."
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, 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"
|
||||||
@@ -293,11 +297,11 @@ msgstr "alocação de memória de status falhou"
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr "ID do processo ou par pid:fd esperado"
|
msgstr "ID do processo ou par pid:fd esperado"
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr "ID de processo inválido"
|
msgstr "ID de processo inválido"
|
||||||
|
|
||||||
@@ -325,45 +329,45 @@ msgstr ""
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr "erro na alocação da estrutura de opções"
|
msgstr "erro na alocação da estrutura de opções"
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr "erro na alocação da estrutura de opções argv"
|
msgstr "erro na alocação da estrutura de opções argv"
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr "argumento inteiro esperado"
|
msgstr "argumento inteiro esperado"
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr "argumento numérico esperado"
|
msgstr "argumento numérico esperado"
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr "Tente `%s --help' para maiores informações."
|
msgstr "Tente `%s --help' para maiores informações."
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr "Tente `%s -h' para maiores informações."
|
msgstr "Tente `%s -h' para maiores informações."
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
@@ -371,21 +375,21 @@ msgstr ""
|
|||||||
"não pode usar o modo de linha ou opções de modificador de transferência ao "
|
"não pode usar o modo de linha ou opções de modificador de transferência ao "
|
||||||
"assistir os descritores de arquivo"
|
"assistir os descritores de arquivo"
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"não pode usar o posicionamento do cursor ao observar os descritores de "
|
"não pode usar o posicionamento do cursor ao observar os descritores de "
|
||||||
"arquivo"
|
"arquivo"
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr "não pode usar o controle remoto ao assistir os descritores de arquivo"
|
msgstr "não pode usar o controle remoto ao assistir os descritores de arquivo"
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr "não pode transferir arquivos ao assistir descritores de arquivo"
|
msgstr "não pode transferir arquivos ao assistir descritores de arquivo"
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr "não disponível em sistemas sem /proc/self/fdinfo"
|
msgstr "não disponível em sistemas sem /proc/self/fdinfo"
|
||||||
|
|
||||||
@@ -437,7 +441,7 @@ msgstr ""
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr "erro alocando o buffer"
|
msgstr "erro alocando o buffer"
|
||||||
|
|
||||||
@@ -508,7 +512,7 @@ msgstr ""
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -516,7 +520,7 @@ msgstr ""
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -526,21 +530,17 @@ msgstr ""
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
#, fuzzy
|
|
||||||
#| msgid "state allocation failed"
|
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr "alocação de memória de status falhou"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
#, fuzzy
|
|
||||||
#| msgid "state allocation failed"
|
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr "alocação de memória de status falhou"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:490
|
#: src/pv/transfer.c:490
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
@@ -562,27 +562,27 @@ 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:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "erro de gravação"
|
msgstr "erro de gravação"
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "erro na chamada da função select"
|
msgstr "erro na chamada da função select"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+0100\n"
|
||||||
"PO-Revision-Date: 2025-01-15 19:08+0000\n"
|
"PO-Revision-Date: 2025-01-15 19:08+0000\n"
|
||||||
"Last-Translator: 0ko <0ko@users.noreply.translate.codeberg.org>\n"
|
"Last-Translator: 0ko <0ko@users.noreply.translate.codeberg.org>\n"
|
||||||
"Language-Team: Russian <https://translate.codeberg.org/projects/pv/pv/ru/>\n"
|
"Language-Team: Russian <https://translate.codeberg.org/projects/pv/pv/ru/>\n"
|
||||||
@@ -170,8 +170,8 @@ msgid "use cursor positioning escape sequences"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"использовать символьные последовательности для позиционирования курсора"
|
"использовать символьные последовательности для позиционирования курсора"
|
||||||
|
|
||||||
#: src/main/help.c:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr "ФАЙЛ"
|
msgstr "ФАЙЛ"
|
||||||
|
|
||||||
@@ -220,60 +220,64 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr "использовать прямой ввод/вывод для обхода кеша"
|
msgstr "использовать прямой ввод/вывод для обхода кеша"
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
|
msgid "try to seek instead of writing null bytes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:358
|
||||||
msgid "discard input instead of writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr "отбрасывать ввод вместо записи в вывод"
|
msgstr "отбрасывать ввод вместо записи в вывод"
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:361
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "write all input to FILE before writing to output"
|
||||||
msgstr "записывать весь ввод в ФАЙЛ прежде, чем отправлять на вывод"
|
msgstr "записывать весь ввод в ФАЙЛ прежде, чем отправлять на вывод"
|
||||||
|
|
||||||
#: src/main/help.c:360
|
#: src/main/help.c:363
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr "ИДпр[:FD]"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:364
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "следить за FD файла, открытого процессом ИДпр"
|
msgstr "следить за FD файла, открытого процессом ИДпр"
|
||||||
|
|
||||||
#: src/main/help.c:364
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr "ИДпр"
|
msgstr "ИДпр"
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr "обновить настройки ИДпр процесса"
|
msgstr "обновить настройки ИДпр процесса"
|
||||||
|
|
||||||
#: src/main/help.c:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "сохранить ИД процесса в ФАЙЛ"
|
msgstr "сохранить ИД процесса в ФАЙЛ"
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr "показать справку и завершить работу"
|
msgstr "показать справку и завершить работу"
|
||||||
|
|
||||||
#: src/main/help.c:376
|
#: src/main/help.c:379
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr "показать версию программы и завершить работу"
|
msgstr "показать версию программы и завершить работу"
|
||||||
|
|
||||||
#: src/main/help.c:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr "вести запись отладочного журнала в ФАЙЛ"
|
msgstr "вести запись отладочного журнала в ФАЙЛ"
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Использование: %s [ОПЦИИ] [ФАЙЛ]..."
|
msgstr "Использование: %s [ОПЦИИ] [ФАЙЛ]..."
|
||||||
|
|
||||||
#: src/main/help.c:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr "Поддерживаемые последовательности:"
|
msgstr "Поддерживаемые последовательности:"
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to: %s"
|
msgid "Please report any bugs to: %s"
|
||||||
msgstr "Сообщайте о проблемах на: %s"
|
msgstr "Сообщайте о проблемах на: %s"
|
||||||
@@ -290,11 +294,11 @@ msgstr ""
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr "ожидался ИД процесса или пара ИДпр:ДФ"
|
msgstr "ожидался ИД процесса или пара ИДпр:ДФ"
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr "неправильный ИД процесса"
|
msgstr "неправильный ИД процесса"
|
||||||
|
|
||||||
@@ -322,63 +326,63 @@ msgstr "не удалось открыть блочное устройство"
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr "не удалось определить размер блочного устройства"
|
msgstr "не удалось определить размер блочного устройства"
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr "не удалось выделить память для структуры опций"
|
msgstr "не удалось выделить память для структуры опций"
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr "не удалось выделить память для структуры опций argv"
|
msgstr "не удалось выделить память для структуры опций argv"
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr "число не распознано"
|
msgstr "число не распознано"
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr "ожидалось целое число"
|
msgstr "ожидалось целое число"
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr "ожидалось число"
|
msgstr "ожидалось число"
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr "Выполните `%s --help' для получения подробностей."
|
msgstr "Выполните `%s --help' для получения подробностей."
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr "Выполните `%s -h' для получения подробностей."
|
msgstr "Выполните `%s -h' для получения подробностей."
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr "удалённое управление невозможно при отслеживании дескрипторов файлов"
|
msgstr "удалённое управление невозможно при отслеживании дескрипторов файлов"
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr "передача файлов невозможна при отслеживании дескрипторов файлов"
|
msgstr "передача файлов невозможна при отслеживании дескрипторов файлов"
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr "невозможно на системах без /proc/self/fdinfo"
|
msgstr "невозможно на системах без /proc/self/fdinfo"
|
||||||
|
|
||||||
@@ -432,7 +436,7 @@ msgstr ""
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr "не удалось выделить память для буфера"
|
msgstr "не удалось выделить память для буфера"
|
||||||
|
|
||||||
@@ -503,7 +507,7 @@ msgstr "скор. мин/сред/макс/дев"
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr "скорость не изменяется"
|
msgstr "скорость не изменяется"
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -511,7 +515,7 @@ msgstr "скорость не изменяется"
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr "ИДпр"
|
msgstr "ИДпр"
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -521,21 +525,17 @@ msgstr "дф"
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr "не удалось выделить память для структуры истории"
|
msgstr "не удалось выделить память для структуры истории"
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr "не удалось выделить память для списка файлов"
|
msgstr "не удалось выделить память для списка файлов"
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr "не удалось выделить память для списка файлов"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
#, fuzzy
|
|
||||||
#| msgid "file list allocation failed"
|
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr "не удалось выделить память для списка файлов"
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:490
|
#: src/pv/transfer.c:490
|
||||||
msgid "read failed"
|
msgid "read failed"
|
||||||
@@ -557,30 +557,33 @@ msgstr ""
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr "не выделена память для буфера передачи"
|
msgstr "не выделена память для буфера передачи"
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr "не удалось задать измеритель временного промежутка"
|
msgstr "не удалось задать измеритель временного промежутка"
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr "не удалось очистить измеритель временного промежутка"
|
msgstr "не удалось очистить измеритель временного промежутка"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "запись не удалась"
|
msgstr "запись не удалась"
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "запрос выборки не удался"
|
msgstr "запрос выборки не удался"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "не является обычным файлом или блочным устройством"
|
msgstr "не является обычным файлом или блочным устройством"
|
||||||
|
|
||||||
|
#~ msgid "PID[:FD]"
|
||||||
|
#~ msgstr "ИДпр[:FD]"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: pv 1.8.14\n"
|
"Project-Id-Version: pv 1.8.14\n"
|
||||||
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
"Report-Msgid-Bugs-To: https://codeberg.org/ivarch/pv/issues\n"
|
||||||
"POT-Creation-Date: 2025-10-11 16:00+0100\n"
|
"POT-Creation-Date: 2025-10-18 19:34+0100\n"
|
||||||
"PO-Revision-Date: 2025-10-05 20:09+0000\n"
|
"PO-Revision-Date: 2025-10-05 20:09+0000\n"
|
||||||
"Last-Translator: Oğuz Ersen <ersen@noreply.codeberg.org>\n"
|
"Last-Translator: Oğuz Ersen <ersen@noreply.codeberg.org>\n"
|
||||||
"Language-Team: Turkish <https://translate.codeberg.org/projects/pv/pv/tr/>\n"
|
"Language-Team: Turkish <https://translate.codeberg.org/projects/pv/pv/tr/>\n"
|
||||||
@@ -169,8 +169,8 @@ msgstr "standart hata bir terminal olmasa bile çıktı yazdır"
|
|||||||
msgid "use cursor positioning escape sequences"
|
msgid "use cursor positioning escape sequences"
|
||||||
msgstr "imleç konumlandırma kaçış dizilerini kullan"
|
msgstr "imleç konumlandırma kaçış dizilerini kullan"
|
||||||
|
|
||||||
#: src/main/help.c:327 src/main/help.c:357 src/main/help.c:369
|
#: src/main/help.c:327 src/main/help.c:360 src/main/help.c:372
|
||||||
#: src/main/help.c:379
|
#: src/main/help.c:382
|
||||||
msgid "FILE"
|
msgid "FILE"
|
||||||
msgstr "DOSYA"
|
msgstr "DOSYA"
|
||||||
|
|
||||||
@@ -219,61 +219,65 @@ msgid "use direct I/O to bypass cache"
|
|||||||
msgstr "Önbelleği atlamak için doğrudan I/O kullan"
|
msgstr "Önbelleği atlamak için doğrudan I/O kullan"
|
||||||
|
|
||||||
#: src/main/help.c:355
|
#: src/main/help.c:355
|
||||||
|
msgid "try to seek instead of writing null bytes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/main/help.c:358
|
||||||
msgid "discard input instead of writing to output"
|
msgid "discard input instead of writing to output"
|
||||||
msgstr "Girdiyi çıktıya yazmak yerine yok say"
|
msgstr "Girdiyi çıktıya yazmak yerine yok say"
|
||||||
|
|
||||||
#: src/main/help.c:358
|
#: src/main/help.c:361
|
||||||
msgid "write all input to FILE before writing to output"
|
msgid "write all input to FILE before writing to output"
|
||||||
msgstr "çıktıya yazmadan önce tüm girdiyi DOSYA'ya yaz"
|
msgstr "çıktıya yazmadan önce tüm girdiyi DOSYA'ya yaz"
|
||||||
|
|
||||||
#: src/main/help.c:360
|
#: src/main/help.c:363
|
||||||
msgid "PID[:FD]"
|
msgid "PID[:FD]|=NAME|@LISTFILE"
|
||||||
msgstr "PID[:FD]"
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/help.c:361
|
#: src/main/help.c:364
|
||||||
msgid "watch file FD opened by process PID"
|
msgid "watch file FD opened by process PID"
|
||||||
msgstr "FD izleme dosyası PID işlemi tarafından açıldı"
|
msgstr "FD izleme dosyası PID işlemi tarafından açıldı"
|
||||||
|
|
||||||
#: src/main/help.c:364
|
#: src/main/help.c:367
|
||||||
msgid "PID"
|
msgid "PID"
|
||||||
msgstr "PID"
|
msgstr "PID"
|
||||||
|
|
||||||
#: src/main/help.c:365
|
#: src/main/help.c:368
|
||||||
msgid "update settings of process PID"
|
msgid "update settings of process PID"
|
||||||
msgstr "süreç PID ayarlarını güncelle"
|
msgstr "süreç PID ayarlarını güncelle"
|
||||||
|
|
||||||
#: src/main/help.c:370
|
#: src/main/help.c:373
|
||||||
msgid "save process ID in FILE"
|
msgid "save process ID in FILE"
|
||||||
msgstr "FILE'da işlem kimliğini (ID) kaydet"
|
msgstr "FILE'da işlem kimliğini (ID) kaydet"
|
||||||
|
|
||||||
#: src/main/help.c:373
|
#: src/main/help.c:376
|
||||||
msgid "show this help and exit"
|
msgid "show this help and exit"
|
||||||
msgstr "bu yardımı göster ve çık"
|
msgstr "bu yardımı göster ve çık"
|
||||||
|
|
||||||
#: src/main/help.c:376
|
#: src/main/help.c:379
|
||||||
msgid "show version information and exit"
|
msgid "show version information and exit"
|
||||||
msgstr "sürüm bilgilerini göster ve çık"
|
msgstr "sürüm bilgilerini göster ve çık"
|
||||||
|
|
||||||
#: src/main/help.c:380
|
#: src/main/help.c:383
|
||||||
msgid "write debug logs to FILE"
|
msgid "write debug logs to FILE"
|
||||||
msgstr "Hata ayıklama kayıtlarını DOSYA'ya yaz"
|
msgstr "Hata ayıklama kayıtlarını DOSYA'ya yaz"
|
||||||
|
|
||||||
#: src/main/help.c:406
|
#: src/main/help.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION] [FILE]..."
|
msgid "Usage: %s [OPTION] [FILE]..."
|
||||||
msgstr "Kullanım şekli: %s [AYAR] [DOSYA]..."
|
msgstr "Kullanım şekli: %s [AYAR] [DOSYA]..."
|
||||||
|
|
||||||
#: src/main/help.c:417
|
#: src/main/help.c:420
|
||||||
msgid ""
|
msgid ""
|
||||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"İzleme ile DOSYA(lar)ı veya standart girdiyi standart çıktı ile birleştirin."
|
"İzleme ile DOSYA(lar)ı veya standart girdiyi standart çıktı ile birleştirin."
|
||||||
|
|
||||||
#: src/main/help.c:555
|
#: src/main/help.c:558
|
||||||
msgid "Supported format sequences:"
|
msgid "Supported format sequences:"
|
||||||
msgstr "Desteklenen biçim dizileri:"
|
msgstr "Desteklenen biçim dizileri:"
|
||||||
|
|
||||||
#: src/main/help.c:569
|
#: src/main/help.c:572
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please report any bugs to: %s"
|
msgid "Please report any bugs to: %s"
|
||||||
msgstr "Lütfen hataları şu adrese bildirin: %s"
|
msgstr "Lütfen hataları şu adrese bildirin: %s"
|
||||||
@@ -290,11 +294,11 @@ msgstr "durum tahsisi başarısız oldu"
|
|||||||
msgid "list files may not contain @ lines"
|
msgid "list files may not contain @ lines"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:802
|
#: src/main/options.c:391 src/main/options.c:393 src/main/options.c:804
|
||||||
msgid "process ID or pid:fd pair expected"
|
msgid "process ID or pid:fd pair expected"
|
||||||
msgstr "süreç kimliği (ID) veya pid:fd çifti bekleniyor"
|
msgstr "süreç kimliği (ID) veya pid:fd çifti bekleniyor"
|
||||||
|
|
||||||
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:809
|
#: src/main/options.c:403 src/main/options.c:405 src/main/options.c:811
|
||||||
msgid "invalid process ID"
|
msgid "invalid process ID"
|
||||||
msgstr "geçersiz süreç kimliği (ID)"
|
msgstr "geçersiz süreç kimliği (ID)"
|
||||||
|
|
||||||
@@ -322,45 +326,45 @@ msgstr "blok aygıtı açılamadı"
|
|||||||
msgid "failed to determine size of block device"
|
msgid "failed to determine size of block device"
|
||||||
msgstr "blok aygıtının boyutu belirlenemedi"
|
msgstr "blok aygıtının boyutu belirlenemedi"
|
||||||
|
|
||||||
#: src/main/options.c:649
|
#: src/main/options.c:651
|
||||||
msgid "option structure allocation failed"
|
msgid "option structure allocation failed"
|
||||||
msgstr "seçenek yapısı tahsisi başarısız oldu"
|
msgstr "seçenek yapısı tahsisi başarısız oldu"
|
||||||
|
|
||||||
#: src/main/options.c:668
|
#: src/main/options.c:670
|
||||||
msgid "option structure argv allocation failed"
|
msgid "option structure argv allocation failed"
|
||||||
msgstr "seçenek yapısı argv tahsisi başarısız oldu"
|
msgstr "seçenek yapısı argv tahsisi başarısız oldu"
|
||||||
|
|
||||||
#: src/main/options.c:720
|
#: src/main/options.c:722
|
||||||
msgid "numeric value not understood"
|
msgid "numeric value not understood"
|
||||||
msgstr "sayısal değer anlaşılmadı"
|
msgstr "sayısal değer anlaşılmadı"
|
||||||
|
|
||||||
#: src/main/options.c:738
|
#: src/main/options.c:740
|
||||||
msgid "integer argument expected"
|
msgid "integer argument expected"
|
||||||
msgstr "tamsayı bağımsız değişkeni bekleniyor"
|
msgstr "tamsayı bağımsız değişkeni bekleniyor"
|
||||||
|
|
||||||
#: src/main/options.c:750
|
#: src/main/options.c:752
|
||||||
msgid "numeric argument expected"
|
msgid "numeric argument expected"
|
||||||
msgstr "sayısal bağımsız değişken bekleniyor"
|
msgstr "sayısal bağımsız değişken bekleniyor"
|
||||||
|
|
||||||
#: src/main/options.c:762
|
#: src/main/options.c:764
|
||||||
msgid "missing filename"
|
msgid "missing filename"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:790
|
#: src/main/options.c:792
|
||||||
msgid "missing process name"
|
msgid "missing process name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/main/options.c:1042
|
#: src/main/options.c:1048
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information."
|
msgid "Try `%s --help' for more information."
|
||||||
msgstr "Daha fazla bilgi için `%s --help' seçeneğini deneyin."
|
msgstr "Daha fazla bilgi için `%s --help' seçeneğini deneyin."
|
||||||
|
|
||||||
#: src/main/options.c:1044
|
#: src/main/options.c:1050
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s -h' for more information."
|
msgid "Try `%s -h' for more information."
|
||||||
msgstr "Daha fazla bilgi için `%s -h' seçeneğini deneyin."
|
msgstr "Daha fazla bilgi için `%s -h' seçeneğini deneyin."
|
||||||
|
|
||||||
#: src/main/options.c:1075
|
#: src/main/options.c:1081
|
||||||
msgid ""
|
msgid ""
|
||||||
"cannot use line mode or transfer modifier options when watching file "
|
"cannot use line mode or transfer modifier options when watching file "
|
||||||
"descriptors"
|
"descriptors"
|
||||||
@@ -368,19 +372,19 @@ msgstr ""
|
|||||||
"dosya tanımlayıcılarını izlerken satır modu veya aktarım değiştirici "
|
"dosya tanımlayıcılarını izlerken satır modu veya aktarım değiştirici "
|
||||||
"seçeneklerini kullanamaz"
|
"seçeneklerini kullanamaz"
|
||||||
|
|
||||||
#: src/main/options.c:1084
|
#: src/main/options.c:1090
|
||||||
msgid "cannot use cursor positioning when watching file descriptors"
|
msgid "cannot use cursor positioning when watching file descriptors"
|
||||||
msgstr "dosya tanımlayıcılarını izlerken imleç konumlandırmayı kullanamaz"
|
msgstr "dosya tanımlayıcılarını izlerken imleç konumlandırmayı kullanamaz"
|
||||||
|
|
||||||
#: src/main/options.c:1093
|
#: src/main/options.c:1099
|
||||||
msgid "cannot use remote control when watching file descriptors"
|
msgid "cannot use remote control when watching file descriptors"
|
||||||
msgstr "dosya tanımlayıcılarını izlerken uzaktan kumandayı kullanamaz"
|
msgstr "dosya tanımlayıcılarını izlerken uzaktan kumandayı kullanamaz"
|
||||||
|
|
||||||
#: src/main/options.c:1102
|
#: src/main/options.c:1108
|
||||||
msgid "cannot transfer files when watching file descriptors"
|
msgid "cannot transfer files when watching file descriptors"
|
||||||
msgstr "dosya tanımlayıcıları izlenirken dosya aktarılamıyor"
|
msgstr "dosya tanımlayıcıları izlenirken dosya aktarılamıyor"
|
||||||
|
|
||||||
#: src/main/options.c:1127
|
#: src/main/options.c:1133
|
||||||
msgid "not available on systems without /proc/self/fdinfo"
|
msgid "not available on systems without /proc/self/fdinfo"
|
||||||
msgstr "/proc/self/fdinfo olmayan sistemlerde kullanılamaz"
|
msgstr "/proc/self/fdinfo olmayan sistemlerde kullanılamaz"
|
||||||
|
|
||||||
@@ -433,7 +437,7 @@ msgstr "yzafpnum kMGTPEZY"
|
|||||||
msgid "yzafpnum KMGTPEZY"
|
msgid "yzafpnum KMGTPEZY"
|
||||||
msgstr "yzafpnum KMGTPEZY"
|
msgstr "yzafpnum KMGTPEZY"
|
||||||
|
|
||||||
#: src/pv/display.c:1053 src/pv/loop.c:747 src/pv/transfer.c:1083
|
#: src/pv/display.c:1053 src/pv/loop.c:754 src/pv/transfer.c:1135
|
||||||
msgid "buffer allocation failed"
|
msgid "buffer allocation failed"
|
||||||
msgstr "arabellek tahsisi başarısız oldu"
|
msgstr "arabellek tahsisi başarısız oldu"
|
||||||
|
|
||||||
@@ -504,7 +508,7 @@ msgstr "oran min/ortalama/maks/standart sapma"
|
|||||||
msgid "rate not measured"
|
msgid "rate not measured"
|
||||||
msgstr "oran ölçülmedi"
|
msgstr "oran ölçülmedi"
|
||||||
|
|
||||||
#: src/pv/loop.c:768 src/pv/loop.c:784 src/pv/loop.c:802 src/pv/watchpid.c:99
|
#: src/pv/loop.c:775 src/pv/loop.c:791 src/pv/loop.c:809 src/pv/watchpid.c:99
|
||||||
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
#: src/pv/watchpid.c:108 src/pv/watchpid.c:119 src/pv/watchpid.c:127
|
||||||
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
#: src/pv/watchpid.c:164 src/pv/watchpid.c:183 src/pv/watchpid.c:191
|
||||||
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
#: src/pv/watchpid.c:201 src/pv/watchpid.c:299 src/pv/watchpid.c:307
|
||||||
@@ -512,7 +516,7 @@ msgstr "oran ölçülmedi"
|
|||||||
msgid "pid"
|
msgid "pid"
|
||||||
msgstr "pid"
|
msgstr "pid"
|
||||||
|
|
||||||
#: src/pv/loop.c:802 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
#: src/pv/loop.c:809 src/pv/watchpid.c:108 src/pv/watchpid.c:120
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:183 src/pv/watchpid.c:192
|
||||||
#: src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:203
|
||||||
msgid "fd"
|
msgid "fd"
|
||||||
@@ -522,15 +526,15 @@ msgstr "fd"
|
|||||||
msgid "history structure allocation failed"
|
msgid "history structure allocation failed"
|
||||||
msgstr "geçmiş yapısı tahsisi başarısız oldu"
|
msgstr "geçmiş yapısı tahsisi başarısız oldu"
|
||||||
|
|
||||||
#: src/pv/state.c:685 src/pv/state.c:697
|
#: src/pv/state.c:741 src/pv/state.c:753
|
||||||
msgid "file list allocation failed"
|
msgid "file list allocation failed"
|
||||||
msgstr "dosya listesi tahsisi başarısız oldu"
|
msgstr "dosya listesi tahsisi başarısız oldu"
|
||||||
|
|
||||||
#: src/pv/state.c:731
|
#: src/pv/state.c:787
|
||||||
msgid "process list allocation failed"
|
msgid "process list allocation failed"
|
||||||
msgstr "işlem listesi tahsisi başarısız oldu"
|
msgstr "işlem listesi tahsisi başarısız oldu"
|
||||||
|
|
||||||
#: src/pv/state.c:739
|
#: src/pv/state.c:795
|
||||||
msgid "file descriptor list allocation failed"
|
msgid "file descriptor list allocation failed"
|
||||||
msgstr "dosya tanımlayıcı listesi tahsisi başarısız oldu"
|
msgstr "dosya tanımlayıcı listesi tahsisi başarısız oldu"
|
||||||
|
|
||||||
@@ -554,30 +558,33 @@ msgstr "geçmiş hatayı aramakta başarısız oldu"
|
|||||||
msgid "skipped past read error"
|
msgid "skipped past read error"
|
||||||
msgstr "geçmiş okuma hatası atlandı"
|
msgstr "geçmiş okuma hatası atlandı"
|
||||||
|
|
||||||
#: src/pv/transfer.c:660
|
#: src/pv/transfer.c:663
|
||||||
msgid "no transfer buffer allocated"
|
msgid "no transfer buffer allocated"
|
||||||
msgstr "aktarım arabelleği ayrılmamış"
|
msgstr "aktarım arabelleği ayrılmamış"
|
||||||
|
|
||||||
#: src/pv/transfer.c:702
|
#: src/pv/transfer.c:751
|
||||||
msgid "failed to set interval timer"
|
msgid "failed to set interval timer"
|
||||||
msgstr "aralık zamanlayıcısı ayarlanamadı"
|
msgstr "aralık zamanlayıcısı ayarlanamadı"
|
||||||
|
|
||||||
#: src/pv/transfer.c:728
|
#: src/pv/transfer.c:777
|
||||||
msgid "failed to clear interval timer"
|
msgid "failed to clear interval timer"
|
||||||
msgstr "aralık zamanlayıcısı temizlenemedi"
|
msgstr "aralık zamanlayıcısı temizlenemedi"
|
||||||
|
|
||||||
#: src/pv/transfer.c:770
|
#: src/pv/transfer.c:822
|
||||||
msgid "line position buffer allocation failed"
|
msgid "line position buffer allocation failed"
|
||||||
msgstr "satır konumu arabellek tahsisi başarısız oldu"
|
msgstr "satır konumu arabellek tahsisi başarısız oldu"
|
||||||
|
|
||||||
#: src/pv/transfer.c:944
|
#: src/pv/transfer.c:996
|
||||||
msgid "write failed"
|
msgid "write failed"
|
||||||
msgstr "yazma başarısız"
|
msgstr "yazma başarısız"
|
||||||
|
|
||||||
#: src/pv/transfer.c:1185
|
#: src/pv/transfer.c:1237
|
||||||
msgid "select call failed"
|
msgid "select call failed"
|
||||||
msgstr "seçme çağrısı başarısız oldu"
|
msgstr "seçme çağrısı başarısız oldu"
|
||||||
|
|
||||||
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
#: src/pv/watchpid.c:129 src/pv/watchpid.c:203
|
||||||
msgid "not a regular file or block device"
|
msgid "not a regular file or block device"
|
||||||
msgstr "normal bir dosya veya blok aygıtı değil"
|
msgstr "normal bir dosya veya blok aygıtı değil"
|
||||||
|
|
||||||
|
#~ msgid "PID[:FD]"
|
||||||
|
#~ msgstr "PID[:FD]"
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ struct opts_s {
|
|||||||
bool stop_at_size; /* set if we stop at "size" bytes */
|
bool stop_at_size; /* set if we stop at "size" bytes */
|
||||||
bool sync_after_write; /* set if we sync after every write */
|
bool sync_after_write; /* set if we sync after every write */
|
||||||
bool direct_io; /* set if O_DIRECT is to be used */
|
bool direct_io; /* set if O_DIRECT is to be used */
|
||||||
|
bool sparse_output; /* set if we leave holes in the output */
|
||||||
bool discard_input; /* set to write nothing to output */
|
bool discard_input; /* set to write nothing to output */
|
||||||
bool show_stats; /* set to write statistics at the end */
|
bool show_stats; /* set to write statistics at the end */
|
||||||
bool width_set_manually; /* width was set manually, not detected */
|
bool width_set_manually; /* width was set manually, not detected */
|
||||||
|
|||||||
@@ -203,11 +203,12 @@ struct pvstate_s {
|
|||||||
bool decimal_units; /* use decimal prefixes */
|
bool decimal_units; /* use decimal prefixes */
|
||||||
bool null_terminated_lines; /* lines are null-terminated */
|
bool null_terminated_lines; /* lines are null-terminated */
|
||||||
bool no_display; /* do nothing other than pipe data */
|
bool no_display; /* do nothing other than pipe data */
|
||||||
|
bool no_splice; /* never use splice() */
|
||||||
bool stop_at_size; /* set if we stop at "size" bytes */
|
bool stop_at_size; /* set if we stop at "size" bytes */
|
||||||
bool sync_after_write; /* set if we sync after every write */
|
bool sync_after_write; /* set if we sync after every write */
|
||||||
bool direct_io; /* set if O_DIRECT is to be used */
|
bool direct_io; /* set if O_DIRECT is to be used */
|
||||||
bool direct_io_changed; /* set when direct_io is changed */
|
bool direct_io_changed; /* set when direct_io is changed */
|
||||||
bool no_splice; /* never use splice() */
|
bool sparse_output; /* set if we leave holes in the output */
|
||||||
bool discard_input; /* write nothing to stdout */
|
bool discard_input; /* write nothing to stdout */
|
||||||
bool show_stats; /* show statistics on exit */
|
bool show_stats; /* show statistics on exit */
|
||||||
bool width_set_manually; /* width was set manually, not detected */
|
bool width_set_manually; /* width was set manually, not detected */
|
||||||
@@ -437,6 +438,7 @@ struct pvstate_s {
|
|||||||
bool splice_used;
|
bool splice_used;
|
||||||
#endif
|
#endif
|
||||||
bool read_error_warning_shown;
|
bool read_error_warning_shown;
|
||||||
|
bool output_not_seekable; /* set if lseek() fails on output */
|
||||||
} transfer;
|
} transfer;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -518,11 +520,11 @@ struct pvwatchfd_s {
|
|||||||
off_t size; /* size of whole file, 0 if unknown */
|
off_t size; /* size of whole file, 0 if unknown */
|
||||||
off_t position; /* position last seen at */
|
off_t position; /* position last seen at */
|
||||||
struct timespec start_time; /* time we started watching the fd */
|
struct timespec start_time; /* time we started watching the fd */
|
||||||
struct timespec last_active; /* time the fd was last seen open (TODO, #81) */
|
struct timespec end_time; /* time the fd was marked as closed */
|
||||||
pid_t watch_pid; /* PID to watch */
|
pid_t watch_pid; /* PID the fd belongs to */
|
||||||
int watch_fd; /* fd to watch */
|
int watch_fd; /* fd to watch */
|
||||||
|
bool closed; /* true once the fd is closed */
|
||||||
bool displayable; /* false if not displayable */
|
bool displayable; /* false if not displayable */
|
||||||
bool inactive; /* true if the fd is now closed (TODO, #81) */
|
|
||||||
bool unused; /* true if free for re-use */
|
bool unused; /* true if free for re-use */
|
||||||
};
|
};
|
||||||
typedef struct pvwatchfd_s *pvwatchfd_t;
|
typedef struct pvwatchfd_s *pvwatchfd_t;
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ extern void pv_state_error_skip_block_set(pvstate_t, off_t);
|
|||||||
extern void pv_state_stop_at_size_set(pvstate_t, bool);
|
extern void pv_state_stop_at_size_set(pvstate_t, bool);
|
||||||
extern void pv_state_sync_after_write_set(pvstate_t, bool);
|
extern void pv_state_sync_after_write_set(pvstate_t, bool);
|
||||||
extern void pv_state_direct_io_set(pvstate_t, bool);
|
extern void pv_state_direct_io_set(pvstate_t, bool);
|
||||||
|
extern void pv_state_sparse_output_set(pvstate_t, bool);
|
||||||
extern void pv_state_rate_limit_set(pvstate_t, off_t);
|
extern void pv_state_rate_limit_set(pvstate_t, off_t);
|
||||||
extern void pv_state_target_buffer_size_set(pvstate_t, size_t);
|
extern void pv_state_target_buffer_size_set(pvstate_t, size_t);
|
||||||
extern void pv_state_no_splice_set(pvstate_t, bool);
|
extern void pv_state_no_splice_set(pvstate_t, bool);
|
||||||
|
|||||||
+4
-1
@@ -351,13 +351,16 @@ void display_help(void)
|
|||||||
{ "-K", "--direct-io", NULL,
|
{ "-K", "--direct-io", NULL,
|
||||||
N_("use direct I/O to bypass cache"),
|
N_("use direct I/O to bypass cache"),
|
||||||
{ 0, 0, 0, 0} },
|
{ 0, 0, 0, 0} },
|
||||||
|
{ "-O", "--sparse", NULL,
|
||||||
|
N_("try to seek instead of writing null bytes"),
|
||||||
|
{ 0, 0, 0, 0} },
|
||||||
{ "-X", "--discard", NULL,
|
{ "-X", "--discard", NULL,
|
||||||
N_("discard input instead of writing to output"),
|
N_("discard input instead of writing to output"),
|
||||||
{ 0, 0, 0, 0} },
|
{ 0, 0, 0, 0} },
|
||||||
{ "-U", "--store-and-forward", N_("FILE"),
|
{ "-U", "--store-and-forward", N_("FILE"),
|
||||||
N_("write all input to FILE before writing to output"),
|
N_("write all input to FILE before writing to output"),
|
||||||
{ 0, 0, 0, 0} },
|
{ 0, 0, 0, 0} },
|
||||||
{ "-d", "--watchfd", N_("PID[:FD]"),
|
{ "-d", "--watchfd", N_("PID[:FD]|=NAME|@LISTFILE"),
|
||||||
N_("watch file FD opened by process PID"),
|
N_("watch file FD opened by process PID"),
|
||||||
{ 0, 0, 0, 0} },
|
{ 0, 0, 0, 0} },
|
||||||
#ifdef PV_REMOTE_CONTROL
|
#ifdef PV_REMOTE_CONTROL
|
||||||
|
|||||||
@@ -448,7 +448,12 @@ int main(int argc, char **argv)
|
|||||||
* do this before looking at setting the size, as the size
|
* do this before looking at setting the size, as the size
|
||||||
* calculation looks at the output file if the input size can't be
|
* calculation looks at the output file if the input size can't be
|
||||||
* calculated (issue #91).
|
* calculated (issue #91).
|
||||||
|
*
|
||||||
|
* We have to set the sparse output flag before doing this, so that
|
||||||
|
* in sparse mode the lseek() on O_APPEND can be done (issue #45);
|
||||||
|
* see the comments in pv_state_output_set() in src/pv/state.c.
|
||||||
*/
|
*/
|
||||||
|
pv_state_sparse_output_set(state, opts->sparse_output);
|
||||||
retcode = pv__set_output(state, opts, opts->output);
|
retcode = pv__set_output(state, opts, opts->output);
|
||||||
if (0 != retcode) {
|
if (0 != retcode) {
|
||||||
pv_state_free(state);
|
pv_state_free(state);
|
||||||
|
|||||||
+7
-1
@@ -612,6 +612,8 @@ opts_t opts_parse(unsigned int argc, char **argv)
|
|||||||
{ "stop-at-size", 0, NULL, (int) 'S' },
|
{ "stop-at-size", 0, NULL, (int) 'S' },
|
||||||
{ "sync", 0, NULL, (int) 'Y' },
|
{ "sync", 0, NULL, (int) 'Y' },
|
||||||
{ "direct-io", 0, NULL, (int) 'K' },
|
{ "direct-io", 0, NULL, (int) 'K' },
|
||||||
|
{ "sparse", 0, NULL, (int) 'O' },
|
||||||
|
{ "sparse-output", 0, NULL, (int) 'O' },
|
||||||
{ "discard", 0, NULL, (int) 'X' },
|
{ "discard", 0, NULL, (int) 'X' },
|
||||||
{ "store-and-forward", 1, NULL, (int) 'U' },
|
{ "store-and-forward", 1, NULL, (int) 'U' },
|
||||||
{ "remote", 1, NULL, (int) 'R' },
|
{ "remote", 1, NULL, (int) 'R' },
|
||||||
@@ -627,7 +629,7 @@ opts_t opts_parse(unsigned int argc, char **argv)
|
|||||||
/*@+nullassign@ */
|
/*@+nullassign@ */
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
#endif /* HAVE_GETOPT_LONG */
|
#endif /* HAVE_GETOPT_LONG */
|
||||||
char *short_options = "hVpteIrab8kTA:fvnqcWD:s:gl0i:w:H:N:u:F:x:L:B:CEZ:SYKXU:R:P:d:m:o:"
|
char *short_options = "hVpteIrab8kTA:fvnqcWD:s:gl0i:w:H:N:u:F:x:L:B:CEZ:SYKOXU:R:P:d:m:o:"
|
||||||
#ifdef ENABLE_DEBUGGING
|
#ifdef ENABLE_DEBUGGING
|
||||||
"!:"
|
"!:"
|
||||||
#endif
|
#endif
|
||||||
@@ -972,6 +974,10 @@ opts_t opts_parse(unsigned int argc, char **argv)
|
|||||||
case 'K':
|
case 'K':
|
||||||
opts->direct_io = true;
|
opts->direct_io = true;
|
||||||
break;
|
break;
|
||||||
|
case 'O':
|
||||||
|
opts->sparse_output = true;
|
||||||
|
opts->no_splice = true;
|
||||||
|
break;
|
||||||
case 'X':
|
case 'X':
|
||||||
opts->discard_input = true;
|
opts->discard_input = true;
|
||||||
opts->no_splice = true;
|
opts->no_splice = true;
|
||||||
|
|||||||
+95
-47
@@ -712,7 +712,6 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
int fd; /* watched fd, or -1 for all */
|
int fd; /* watched fd, or -1 for all */
|
||||||
pvwatchfd_t info_array; /* watch information for each fd */
|
pvwatchfd_t info_array; /* watch information for each fd */
|
||||||
int array_length; /* length of watch info array */
|
int array_length; /* length of watch info array */
|
||||||
/* TODO: "finished but not time to stop showing" flag for #81 */
|
|
||||||
bool finished; /* "PID:FD": fd closed; or PID gone */
|
bool finished; /* "PID:FD": fd closed; or PID gone */
|
||||||
} *watching;
|
} *watching;
|
||||||
unsigned int watch_idx;
|
unsigned int watch_idx;
|
||||||
@@ -720,6 +719,14 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
struct timespec next_update, next_remotecheck, cur_time;
|
struct timespec next_update, next_remotecheck, cur_time;
|
||||||
int prev_displayed_lines, blank_lines;
|
int prev_displayed_lines, blank_lines;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In each watching[].info_array[] fd info item, once its "watch_fd"
|
||||||
|
* is closed, its "closed" flag is set to true and its "end_time" to
|
||||||
|
* now. It isn't marked "unused" until its "end_time" is long
|
||||||
|
* enough ago, so the information is held on-screen for a short
|
||||||
|
* while after the fd closes or the PID exits (#81).
|
||||||
|
*/
|
||||||
|
|
||||||
/* If there's nothing to watch, do nothing at all. */
|
/* If there's nothing to watch, do nothing at all. */
|
||||||
if (state->watchfd.count < 1)
|
if (state->watchfd.count < 1)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -933,10 +940,9 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
/*
|
/*
|
||||||
* PID now inaccessible - mark it as
|
* PID now inaccessible - mark it as
|
||||||
* finished and skip over it.
|
* finished.
|
||||||
*/
|
*/
|
||||||
watching[watch_idx].finished = true;
|
watching[watch_idx].finished = true;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
@@ -959,7 +965,6 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
NULL != watching[watch_idx].info_array && info_idx < watching[watch_idx].array_length;
|
NULL != watching[watch_idx].info_array && info_idx < watching[watch_idx].array_length;
|
||||||
info_idx++) {
|
info_idx++) {
|
||||||
off_t position_now;
|
off_t position_now;
|
||||||
struct timespec init_time, transfer_elapsed;
|
|
||||||
pvwatchfd_t info_item = &(watching[watch_idx].info_array[info_idx]);
|
pvwatchfd_t info_item = &(watching[watch_idx].info_array[info_idx]);
|
||||||
|
|
||||||
/* Skip unused array entries. */
|
/* Skip unused array entries. */
|
||||||
@@ -976,7 +981,8 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
* changed.
|
* changed.
|
||||||
*/
|
*/
|
||||||
if (pv_watchfd_changed(info_item)) {
|
if (pv_watchfd_changed(info_item)) {
|
||||||
debug("%s %d: %s", "fd", info_item->watch_fd, "removing");
|
debug("%s %d: %s", "fd", info_item->watch_fd,
|
||||||
|
"non-displayable, and has changed - removing");
|
||||||
info_item->unused = true;
|
info_item->unused = true;
|
||||||
info_item->displayable = false;
|
info_item->displayable = false;
|
||||||
pv_freecontents_watchfd(info_item);
|
pv_freecontents_watchfd(info_item);
|
||||||
@@ -994,34 +1000,85 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
* changed.
|
* changed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
position_now = pv_watchfd_position(info_item);
|
position_now = -1;
|
||||||
|
|
||||||
if (position_now < 0) {
|
if (info_item->closed) {
|
||||||
debug("%s %d: %s", "fd", info_item->watch_fd, "removing");
|
/*
|
||||||
info_item->unused = true;
|
* Closed fd - check how long since
|
||||||
info_item->displayable = false;
|
* it was closed.
|
||||||
pv_freecontents_watchfd(info_item);
|
*/
|
||||||
continue;
|
struct timespec time_since_closed;
|
||||||
|
long double seconds_since_closed;
|
||||||
|
|
||||||
|
memset(&time_since_closed, 0, sizeof(time_since_closed));
|
||||||
|
pv_elapsedtime_subtract(&time_since_closed, &cur_time, &(info_item->end_time));
|
||||||
|
seconds_since_closed = pv_elapsedtime_seconds(&time_since_closed);
|
||||||
|
|
||||||
|
/* Closed for long enough - remove. */
|
||||||
|
if (seconds_since_closed > state->control.interval) {
|
||||||
|
debug("%s %d: %s (%Lf s)", "fd", info_item->watch_fd,
|
||||||
|
"closed for long enough - removing", seconds_since_closed);
|
||||||
|
info_item->unused = true;
|
||||||
|
info_item->displayable = false;
|
||||||
|
pv_freecontents_watchfd(info_item);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Open fd - get its current
|
||||||
|
* position.
|
||||||
|
*/
|
||||||
|
|
||||||
|
position_now = pv_watchfd_position(info_item);
|
||||||
|
|
||||||
|
if (position_now < 0) {
|
||||||
|
/*
|
||||||
|
* The fd was closed - mark
|
||||||
|
* as closed.
|
||||||
|
*/
|
||||||
|
debug("%s %d: %s", "fd", info_item->watch_fd, "marking as closed");
|
||||||
|
pv_elapsedtime_copy(&(info_item->end_time), &cur_time);
|
||||||
|
info_item->closed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
info_item->position = position_now;
|
if (position_now >= 0) {
|
||||||
|
/*
|
||||||
|
* If the fd is still open and we
|
||||||
|
* got its current position, update
|
||||||
|
* its position and timers.
|
||||||
|
*/
|
||||||
|
struct timespec init_time, transfer_elapsed;
|
||||||
|
|
||||||
memset(&init_time, 0, sizeof(init_time));
|
info_item->position = position_now;
|
||||||
memset(&transfer_elapsed, 0, sizeof(transfer_elapsed));
|
|
||||||
|
memset(&init_time, 0, sizeof(init_time));
|
||||||
|
memset(&transfer_elapsed, 0, sizeof(transfer_elapsed));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Calculate the effective start
|
||||||
|
* time: the time we actually
|
||||||
|
* started, plus the total time we
|
||||||
|
* spent stopped.
|
||||||
|
*/
|
||||||
|
pv_elapsedtime_add(&init_time, &(info_item->start_time),
|
||||||
|
&(state->signal.toffset));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Now get the effective elapsed
|
||||||
|
* transfer time - current time
|
||||||
|
* minus effective start time.
|
||||||
|
*/
|
||||||
|
pv_elapsedtime_subtract(&transfer_elapsed, &cur_time, &init_time);
|
||||||
|
|
||||||
|
info_item->transfer.elapsed_seconds = pv_elapsedtime_seconds(&transfer_elapsed);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calculate the effective start time: the time we actually
|
* Now display the information about the fd.
|
||||||
* started, plus the total time we spent stopped.
|
|
||||||
*/
|
*/
|
||||||
pv_elapsedtime_add(&init_time, &(info_item->start_time), &(state->signal.toffset));
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Now get the effective elapsed transfer time - current
|
|
||||||
* time minus effective start time.
|
|
||||||
*/
|
|
||||||
pv_elapsedtime_subtract(&transfer_elapsed, &cur_time, &init_time);
|
|
||||||
|
|
||||||
info_item->transfer.elapsed_seconds = pv_elapsedtime_seconds(&transfer_elapsed);
|
|
||||||
|
|
||||||
if (displayed_lines > 0) {
|
if (displayed_lines > 0) {
|
||||||
debug("%s", "adding newline");
|
debug("%s", "adding newline");
|
||||||
@@ -1030,15 +1087,15 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
|
|
||||||
debug("%s %d, %s %d [%d/%d]: %Lf / %Ld", "pid", (int) (info_item->watch_pid), "fd",
|
debug("%s %d, %s %d [%d/%d]: %Lf / %Ld", "pid", (int) (info_item->watch_pid), "fd",
|
||||||
info_item->watch_fd, watch_idx, info_idx, info_item->transfer.elapsed_seconds,
|
info_item->watch_fd, watch_idx, info_idx, info_item->transfer.elapsed_seconds,
|
||||||
position_now);
|
info_item->position);
|
||||||
|
|
||||||
if (terminal_resized) {
|
if (terminal_resized) {
|
||||||
pv_watchpid_setname(state, info_item);
|
pv_watchpid_setname(state, info_item);
|
||||||
info_item->flags.reparse_display = 1;
|
info_item->flags.reparse_display = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
info_item->transfer.transferred = position_now;
|
info_item->transfer.transferred = info_item->position;
|
||||||
info_item->transfer.total_written = position_now;
|
info_item->transfer.total_written = info_item->position;
|
||||||
state->control.name = info_item->display_name;
|
state->control.name = info_item->display_name;
|
||||||
state->control.size = info_item->size;
|
state->control.size = info_item->size;
|
||||||
|
|
||||||
@@ -1099,25 +1156,16 @@ int pv_watchfd_loop(pvstate_t state)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!state->control.numeric)
|
if (!state->control.numeric) {
|
||||||
pv_tty_write(&(state->flags), "\n", 1);
|
/*
|
||||||
|
* Move the cursor past the displayed lines, so the last
|
||||||
/*
|
* output stays on the screen and isn't overwritten by the
|
||||||
* Clean up our displayed lines after the display loop.
|
* command prompt (#81).
|
||||||
*/
|
*/
|
||||||
blank_lines = prev_displayed_lines;
|
while (prev_displayed_lines > 0) {
|
||||||
while (blank_lines > 0) {
|
|
||||||
pvdisplay_width_t blank_count;
|
|
||||||
for (blank_count = 0; blank_count < state->control.width; blank_count++)
|
|
||||||
pv_tty_write(&(state->flags), " ", 1);
|
|
||||||
pv_tty_write(&(state->flags), "\r", 1);
|
|
||||||
blank_lines--;
|
|
||||||
if (blank_lines > 0)
|
|
||||||
pv_tty_write(&(state->flags), "\n", 1);
|
pv_tty_write(&(state->flags), "\n", 1);
|
||||||
}
|
prev_displayed_lines--;
|
||||||
while (prev_displayed_lines > 1) {
|
}
|
||||||
pv_tty_write(&(state->flags), "\033[A", 3);
|
|
||||||
prev_displayed_lines--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -131,6 +131,7 @@ void pv_reset_transfer(pvtransferstate_t transfer)
|
|||||||
transfer->line_positions_length = 0;
|
transfer->line_positions_length = 0;
|
||||||
transfer->line_positions_head = 0;
|
transfer->line_positions_head = 0;
|
||||||
transfer->last_output_position = 0;
|
transfer->last_output_position = 0;
|
||||||
|
transfer->output_not_seekable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -256,6 +257,38 @@ void pv_freecontents_calc(pvtransfercalc_t calc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Truncate the output file descriptor to its current position, if it's a
|
||||||
|
* valid fd, we're in sparse output mode, and no lseek() failed.
|
||||||
|
*/
|
||||||
|
static void pv_truncate_output(pvstate_t state)
|
||||||
|
{
|
||||||
|
off_t current_offset;
|
||||||
|
|
||||||
|
if (!state->control.sparse_output)
|
||||||
|
return;
|
||||||
|
if (state->transfer.output_not_seekable)
|
||||||
|
return;
|
||||||
|
if (state->control.output_fd < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
current_offset = (off_t) lseek(state->control.output_fd, (off_t) 0, SEEK_CUR);
|
||||||
|
if (current_offset == (off_t) - 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
debug("%s: %ld", "truncating to current offset", (long) current_offset);
|
||||||
|
|
||||||
|
/*@+longintegral@ */
|
||||||
|
/*
|
||||||
|
* splint has trouble with off_t / __off_t.
|
||||||
|
*/
|
||||||
|
if (0 != ftruncate(state->control.output_fd, current_offset)) {
|
||||||
|
debug("%s: %s", "output ftruncate() failed", strerror(errno));
|
||||||
|
}
|
||||||
|
/*@-longintegral@ */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Free a state structure, after which it can no longer be used.
|
* Free a state structure, after which it can no longer be used.
|
||||||
*/
|
*/
|
||||||
@@ -269,6 +302,7 @@ void pv_state_free(pvstate_t state)
|
|||||||
* still know the program name and output filename.
|
* still know the program name and output filename.
|
||||||
*/
|
*/
|
||||||
if (state->control.output_fd >= 0) {
|
if (state->control.output_fd >= 0) {
|
||||||
|
pv_truncate_output(state);
|
||||||
if (STDOUT_FILENO != state->control.output_fd) {
|
if (STDOUT_FILENO != state->control.output_fd) {
|
||||||
if (close(state->control.output_fd) < 0) {
|
if (close(state->control.output_fd) < 0) {
|
||||||
pv_error("%s: %s",
|
pv_error("%s: %s",
|
||||||
@@ -494,6 +528,11 @@ void pv_state_direct_io_set(pvstate_t state, bool val)
|
|||||||
state->control.direct_io_changed = true;
|
state->control.direct_io_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pv_state_sparse_output_set(pvstate_t state, bool val)
|
||||||
|
{
|
||||||
|
state->control.sparse_output = val;
|
||||||
|
}
|
||||||
|
|
||||||
void pv_state_discard_input_set(pvstate_t state, bool val)
|
void pv_state_discard_input_set(pvstate_t state, bool val)
|
||||||
{
|
{
|
||||||
state->control.discard_input = val;
|
state->control.discard_input = val;
|
||||||
@@ -625,6 +664,7 @@ void pv_state_output_set(pvstate_t state, int fd, const char *name)
|
|||||||
* Close any previous output file first, so we can report any errors
|
* Close any previous output file first, so we can report any errors
|
||||||
* before we store the new output filename.
|
* before we store the new output filename.
|
||||||
*/
|
*/
|
||||||
|
pv_truncate_output(state);
|
||||||
if (state->control.output_fd >= 0 && state->control.output_fd != STDOUT_FILENO) {
|
if (state->control.output_fd >= 0 && state->control.output_fd != STDOUT_FILENO) {
|
||||||
if (close(state->control.output_fd) < 0) {
|
if (close(state->control.output_fd) < 0) {
|
||||||
pv_error("%s: %s",
|
pv_error("%s: %s",
|
||||||
@@ -645,6 +685,22 @@ void pv_state_output_set(pvstate_t state, int fd, const char *name)
|
|||||||
*/
|
*/
|
||||||
fcntl(state->control.output_fd, F_SETFL, O_NONBLOCK | fcntl(state->control.output_fd, F_GETFL));
|
fcntl(state->control.output_fd, F_SETFL, O_NONBLOCK | fcntl(state->control.output_fd, F_GETFL));
|
||||||
#endif /* MAKE_OUTPUT_NONBLOCKING */
|
#endif /* MAKE_OUTPUT_NONBLOCKING */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In sparse output mode, if the output is in append mode (>>),
|
||||||
|
* explicitly lseek() to the end of the file. Otherwise, the file
|
||||||
|
* offset is not set until the first write(), which means that if
|
||||||
|
* the input starts with null bytes, when we lseek() past them
|
||||||
|
* relative to the current position, the "current position" is 0
|
||||||
|
* rather than the end of the file, and the file gets truncated on
|
||||||
|
* exit to the wrong size.
|
||||||
|
*/
|
||||||
|
if (state->control.sparse_output && 0 != (fcntl(fd, F_GETFL) & O_APPEND)) {
|
||||||
|
debug("%s", "sparse output mode, and appending - seeking output to the end");
|
||||||
|
if ((off_t) lseek(fd, 0, SEEK_END) == (off_t) - 1) {
|
||||||
|
debug("%s: %s", "lseek failed", strerror(errno));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void pv_state_average_rate_window_set(pvstate_t state, unsigned int val)
|
void pv_state_average_rate_window_set(pvstate_t state, unsigned int val)
|
||||||
|
|||||||
@@ -655,6 +655,9 @@ static int pv__transfer_write(pvstate_t state, bool *eof_in, bool *eof_out, long
|
|||||||
{
|
{
|
||||||
ssize_t nwritten;
|
ssize_t nwritten;
|
||||||
int write_errno;
|
int write_errno;
|
||||||
|
bool all_nulls;
|
||||||
|
off_t output_offset;
|
||||||
|
size_t write_check_position, write_end_position;
|
||||||
|
|
||||||
if (NULL == state->transfer.transfer_buffer) {
|
if (NULL == state->transfer.transfer_buffer) {
|
||||||
pv_error("%s", _("no transfer buffer allocated"));
|
pv_error("%s", _("no transfer buffer allocated"));
|
||||||
@@ -671,6 +674,52 @@ static int pv__transfer_write(pvstate_t state, bool *eof_in, bool *eof_out, long
|
|||||||
nwritten = state->transfer.to_write;
|
nwritten = state->transfer.to_write;
|
||||||
} else if (state->transfer.to_write > 0) {
|
} else if (state->transfer.to_write > 0) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In sparse output mode, check whether all of the bytes to
|
||||||
|
* be written are null, and if so, try to seek the output
|
||||||
|
* instead of writing the null bytes.
|
||||||
|
*/
|
||||||
|
if (state->control.sparse_output && !state->transfer.output_not_seekable) {
|
||||||
|
write_check_position = state->transfer.write_position;
|
||||||
|
write_end_position = write_check_position + (size_t) (state->transfer.to_write);
|
||||||
|
all_nulls = true;
|
||||||
|
while (all_nulls && write_check_position < write_end_position) {
|
||||||
|
if ('\0' == state->transfer.transfer_buffer[write_check_position]) {
|
||||||
|
write_check_position++;
|
||||||
|
} else {
|
||||||
|
all_nulls = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (all_nulls) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Use lseek() to move forward in the file,
|
||||||
|
* and then ftruncate() it to its new size.
|
||||||
|
*
|
||||||
|
* If any step fails, mark the output not
|
||||||
|
* seekable so we stop trying.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*@+longintegral@ */
|
||||||
|
/*
|
||||||
|
* splint has trouble with off_t / __off_t, in the lseek() call.
|
||||||
|
*/
|
||||||
|
output_offset =
|
||||||
|
lseek(state->control.output_fd, (off_t) (state->transfer.to_write), SEEK_CUR);
|
||||||
|
if (output_offset == (off_t) - 1) {
|
||||||
|
debug("%s: %s", "output lseek() failed", strerror(errno));
|
||||||
|
state->transfer.output_not_seekable = true;
|
||||||
|
} else {
|
||||||
|
/* Seek successful - skip write. */
|
||||||
|
debug("%s (%ld) -> %s: %ld", "skipped null writes",
|
||||||
|
(long) (state->transfer.to_write), "new position", (long) output_offset);
|
||||||
|
nwritten = state->transfer.to_write;
|
||||||
|
goto pv__transfer_write_completed;
|
||||||
|
}
|
||||||
|
/*@-longintegral@ */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set an interval timer or an alarm to interrupt the write
|
* Set an interval timer or an alarm to interrupt the write
|
||||||
* with a signal if the write takes too long, so we can
|
* with a signal if the write takes too long, so we can
|
||||||
@@ -735,6 +784,9 @@ static int pv__transfer_write(pvstate_t state, bool *eof_in, bool *eof_out, long
|
|||||||
#endif /* HAVE_SETITIMER */
|
#endif /* HAVE_SETITIMER */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pv__transfer_write_completed:
|
||||||
|
/* If lseek() worked for sparse output, it jumps down here. */
|
||||||
|
|
||||||
if (nwritten > 0) {
|
if (nwritten > 0) {
|
||||||
bool tracking_lines = false;
|
bool tracking_lines = false;
|
||||||
|
|
||||||
|
|||||||
+12
-1
@@ -418,7 +418,7 @@ static int pv_compare_watchfd(const void *a, const void *b)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* 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. If "watch_fd" is not -1, then all other file descriptors
|
* descriptors. If "watch_fd" is not -1, then all other file descriptor
|
||||||
* numbers will be ignored,
|
* numbers will be ignored,
|
||||||
*
|
*
|
||||||
* Returns 0 on success, 1 if the process no longer exists or could not be
|
* Returns 0 on success, 1 if the process no longer exists or could not be
|
||||||
@@ -494,6 +494,16 @@ int pv_watchpid_scanfds(pvstate_t state, pid_t watch_pid, int watch_fd, int *arr
|
|||||||
continue;
|
continue;
|
||||||
if (info_array[check_idx].watch_fd != fd)
|
if (info_array[check_idx].watch_fd != fd)
|
||||||
continue;
|
continue;
|
||||||
|
if (info_array[check_idx].closed) {
|
||||||
|
/*
|
||||||
|
* If the fd is known but closed,
|
||||||
|
* immediately free it for re-use.
|
||||||
|
*/
|
||||||
|
info_array[check_idx].unused = true;
|
||||||
|
info_array[check_idx].displayable = false;
|
||||||
|
pv_freecontents_watchfd(&(info_array[check_idx]));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
found_idx = check_idx;
|
found_idx = check_idx;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -534,6 +544,7 @@ int pv_watchpid_scanfds(pvstate_t state, pid_t watch_pid, int watch_fd, int *arr
|
|||||||
pv_reset_watchfd(&(info_array[use_idx]));
|
pv_reset_watchfd(&(info_array[use_idx]));
|
||||||
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;
|
||||||
|
info_array[use_idx].closed = false;
|
||||||
info_array[use_idx].unused = false;
|
info_array[use_idx].unused = false;
|
||||||
info_array[use_idx].displayable = true;
|
info_array[use_idx].displayable = true;
|
||||||
|
|
||||||
|
|||||||
Executable
+89
@@ -0,0 +1,89 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Transfer a large chunk of data through pv using pipes, sending it in a
|
||||||
|
# bursty fashion, and make sure some of it consists of blocks of null bytes.
|
||||||
|
# Check data correctness afterwards, and if dd can produce a sparse file,
|
||||||
|
# check that pv's output is also sparse.
|
||||||
|
|
||||||
|
# Allow all tests to be skipped, e.g. during a release build
|
||||||
|
test "${SKIP_ALL_TESTS}" = "1" && exit 77
|
||||||
|
|
||||||
|
true "${testSubject:?not set - call this from 'make check'}"
|
||||||
|
true "${workFile1:?not set - call this from 'make check'}"
|
||||||
|
true "${workFile2:?not set - call this from 'make check'}"
|
||||||
|
true "${workFile3:?not set - call this from 'make check'}"
|
||||||
|
|
||||||
|
# generate some data, with a hole in the middle.
|
||||||
|
dd if=/dev/urandom of="${workFile1}" bs=4096 count=640 2>/dev/null
|
||||||
|
dd if=/dev/null of="${workFile1}" bs=4096 count=0 seek=1280 2>/dev/null
|
||||||
|
dd if=/dev/urandom of="${workFile1}" bs=4096 count=1280 seek=1280 2>/dev/null
|
||||||
|
|
||||||
|
# check that sparse files are supported.
|
||||||
|
cat < "${workFile1}" > "${workFile3}"
|
||||||
|
inputBlocks="$(ls -1s "${workFile1}" | awk '{print $1}')"
|
||||||
|
nonSparseBlocks="$(ls -1s "${workFile3}" | awk '{print $1}')"
|
||||||
|
if test "${inputBlocks}" -eq "${nonSparseBlocks}"; then
|
||||||
|
echo 'sparse files not supported'
|
||||||
|
exit 77
|
||||||
|
fi
|
||||||
|
|
||||||
|
inputChecksum=$(cksum "${workFile1}" | awk '{print $1}')
|
||||||
|
|
||||||
|
# read through pv and test afterwards
|
||||||
|
(
|
||||||
|
dd if="${workFile1}" bs=1 count=9000
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1 skip=9000 count=1240
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1024 skip=10 count=1014
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1024 skip=1024 count=1024
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1024 skip=2048
|
||||||
|
) 2>/dev/null | "${testSubject}" -q -O -L 2M | cat > "${workFile2}"
|
||||||
|
|
||||||
|
outputChecksum=$(cksum "${workFile2}" | awk '{print $1}')
|
||||||
|
|
||||||
|
if ! test "${inputChecksum}" = "${outputChecksum}"; then
|
||||||
|
echo "checksum mismatch with dd | pv | cat"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# same again but with one less pipe
|
||||||
|
(
|
||||||
|
dd if="${workFile1}" bs=1 count=9000
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1 skip=9000 count=1240
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1024 skip=10 count=1014
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1024 skip=1024 count=1024
|
||||||
|
sleep 1
|
||||||
|
dd if="${workFile1}" bs=1024 skip=2048
|
||||||
|
) 2>/dev/null | "${testSubject}" -q -O -L 2M > "${workFile2}"
|
||||||
|
|
||||||
|
outputChecksum=$(cksum "${workFile2}" | awk '{print $1}')
|
||||||
|
|
||||||
|
if ! test "${inputChecksum}" = "${outputChecksum}"; then
|
||||||
|
echo "checksum mismatch with dd | pv > file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
outputBlocks="$(ls -1s "${workFile2}" | awk '{print $1}')"
|
||||||
|
|
||||||
|
# Note that we only check that the output has any holes at all (and that the
|
||||||
|
# input had holes). We don't compare pv's output with dd's output directly,
|
||||||
|
# because the exact number of holes might differ intermittently.
|
||||||
|
|
||||||
|
if test "${nonSparseBlocks}" -gt "${inputBlocks}" && ! test "${outputBlocks}" -lt "${nonSparseBlocks}"; then
|
||||||
|
echo "output is not sparse"
|
||||||
|
echo "input file:"
|
||||||
|
ls -ls "${workFile1}"
|
||||||
|
echo "output file:"
|
||||||
|
ls -ls "${workFile2}"
|
||||||
|
echo "input file without holes:"
|
||||||
|
ls -ls "${workFile3}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
Reference in New Issue
Block a user