@@ -24,6 +24,7 @@ src/pv/elapsedtime.c \
|
||||
src/pv/file.c \
|
||||
src/pv/loop.c \
|
||||
src/pv/number.c \
|
||||
src/pv/proctitle.c \
|
||||
src/pv/signal.c \
|
||||
src/pv/state.c \
|
||||
src/pv/string.c \
|
||||
@@ -70,6 +71,7 @@ tests/Integrity_-_Large_file_support.test \
|
||||
tests/Integrity_-_On_output_pipe_close.test \
|
||||
tests/Integrity_-_When_adjusted_remotely.test \
|
||||
tests/Memory_safety_-_Basic.test \
|
||||
tests/Memory_safety_-_Process_title.test \
|
||||
tests/Memory_safety_-_Remote_control_receiver.test \
|
||||
tests/Memory_safety_-_Remote_control_sender.test \
|
||||
tests/Memory_safety_-_Watchfd.test \
|
||||
|
||||
@@ -30,6 +30,7 @@ AC_CHECK_FUNCS([fdatasync])
|
||||
AC_CHECK_FUNCS([fpathconf sysconf posix_memalign posix_fadvise])
|
||||
AC_CHECK_FUNCS([nanosleep])
|
||||
AC_CHECK_FUNCS([setitimer])
|
||||
AC_CHECK_FUNCS([setproctitle])
|
||||
AC_CHECK_HEADERS([getopt.h])
|
||||
AC_CHECK_HEADERS([limits.h])
|
||||
AC_CHECK_HEADERS([wctype.h])
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
### UNRELEASED
|
||||
|
||||
* *feature:* new **--extra-display** option to update window and process titles ([#3](https://codeberg.org/a-j-wood/pv/issues/3), [#4](https://codeberg.org/a-j-wood/pv/issues/4))
|
||||
* *fix:* correct failure to report file positions in **--watchfd** ([#118](https://codeberg.org/a-j-wood/pv/issues/118))
|
||||
* *i18n:* Russian translations added
|
||||
* *cleanup:* tests added for **--watchfd** ([#10](https://codeberg.org/a-j-wood/pv/issues/10))
|
||||
|
||||
@@ -10,6 +10,7 @@ pv \- monitor the progress of data through a pipe
|
||||
.OP \-pteIrab8kTv
|
||||
.OP \-A NUM
|
||||
.OP \-F FORMAT
|
||||
.OP \-x SPEC
|
||||
.OP \-Wgl0fc
|
||||
.OP \-D SEC
|
||||
.OP \-s SIZE
|
||||
@@ -303,6 +304,19 @@ to determine the output format. See the
|
||||
.B FORMATTING
|
||||
section below.
|
||||
.TP
|
||||
.BI \-x\ SPEC \fR,\ \fB\-\-extra\-display\ SPEC
|
||||
As well as displaying progress to the terminal, also write it to \fISPEC\fR.
|
||||
The \fISPEC\fR must start with a comma-separated list of destinations, and
|
||||
can optionally be followed by a colon and a format string.
|
||||
The destinations can be \fBwindowtitle\fR or \fBwindow\fR for the xterm
|
||||
window title, and \fBprocesstitle\fR, \fBproctitle\fR, \fBprocess\fR, or
|
||||
\fBproc\fR for the process title displayed by \fBps\fR(1).
|
||||
If a format string is not supplied, the same format is used as for the
|
||||
terminal.
|
||||
For example, \*(lq\fB\-x\~'window,process:%t\~%b\~%r'\fR\*(rq will show the
|
||||
elapsed time, bytes transferred, and rate, in both the window title and the
|
||||
process title.
|
||||
.TP
|
||||
.B \-v, \-\-stats
|
||||
At the end of the transfer, write an additional line showing the transfer
|
||||
rate minimum, maximum, mean, and standard deviation. The values are always
|
||||
|
||||
+19
-4
@@ -7,10 +7,11 @@ pv - monitor the progress of data through a pipe
|
||||
**pv** \[*OPTION*\]\... \[*FILE*\]\...
|
||||
|
||||
**pv** \[ **-pteIrab8kTv** \] \[ **-A** NUM \] \[ **-F** FORMAT \] \[
|
||||
**-Wgl0fc** \] \[ **-D** SEC \] \[ **-s** SIZE \] \[ **-i** SEC \] \[
|
||||
**-m** SEC \] \[ **-w** WIDTH \] \[ **-H** HEIGHT \] \[ **-N** NAME \]
|
||||
[ **-o** FILE \] \[ **-L** RATE \] \[ **-B** BYTES \] \[ **-CESYKX** \]
|
||||
[ **-Z** BYTES \] \[ **-U** FILE \] \[ **-P** FILE \] \[*FILE* . . .\]
|
||||
**-x** SPEC \] \[ **-Wgl0fc** \] \[ **-D** SEC \] \[ **-s** SIZE \] \[
|
||||
**-i** SEC \] \[ **-m** SEC \] \[ **-w** WIDTH \] \[ **-H** HEIGHT \] \[
|
||||
**-N** NAME \] \[ **-o** FILE \] \[ **-L** RATE \] \[ **-B** BYTES \] \[
|
||||
**-CESYKX** \] \[ **-Z** BYTES \] \[ **-U** FILE \] \[ **-P** FILE \]
|
||||
[*FILE* . . .\]
|
||||
|
||||
**pv** **-n** \[ **-trbv** \] \[ **-Wl0** \] \[ **-D** SEC \] \[ **-s**
|
||||
SIZE \] \[ **-i** SEC \] \[ **-o** FILE \] \[ **-L** RATE \] \[ **-B**
|
||||
@@ -177,6 +178,20 @@ display types that are explicitly switched on will be shown.
|
||||
**-T**, and **-A**, and instead use the format string *FORMAT* to
|
||||
determine the output format. See the **FORMATTING** section below.
|
||||
|
||||
**-x SPEC, \--extra-display SPEC**
|
||||
|
||||
: As well as displaying progress to the terminal, also write it to
|
||||
*SPEC*. The *SPEC* must start with a comma-separated list of
|
||||
destinations, and can optionally be followed by a colon and a format
|
||||
string. The destinations can be **windowtitle** or **window** for
|
||||
the xterm window title, and **processtitle**, **proctitle**,
|
||||
**process**, or **proc** for the process title displayed by
|
||||
**ps**(1). If a format string is not supplied, the same format is
|
||||
used as for the terminal. For example,
|
||||
"**-x \'window,process:%t %b %r\'**" will show the elapsed time,
|
||||
bytes transferred, and rate, in both the window title and the
|
||||
process title.
|
||||
|
||||
**-v, \--stats**
|
||||
|
||||
: At the end of the transfer, write an additional line showing the
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"PO-Revision-Date: 2024-10-13 20:43+0000\n"
|
||||
"Last-Translator: mmatous <mmatous@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Czech <https://translate.codeberg.org/projects/pv/pv/cs/>\n"
|
||||
@@ -36,7 +36,7 @@ msgstr "ukaž okamžitou rychlost přenosu dat"
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr "ukaž průměrnou rychlost přenosu dat"
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr "SEK"
|
||||
|
||||
@@ -76,183 +76,191 @@ msgstr "FORMÁT"
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr "nastav formát výstupu na FORMÁT"
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr "po dokončení vypiš údaje o přenosu"
|
||||
|
||||
#: src/main/help.c:326
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr "vypisuj procenta, ne vizuální informace"
|
||||
|
||||
#: src/main/help.c:329
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr "nevypisuj žádné informace o přenosu"
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr "nic nevypisuj, dokud není přenesen první byte"
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr "nic nevypisuj, dokud neuplyne SEK sekund"
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr "VEL"
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr "nastav očekávanou velikost dat na VEL bajtů"
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr "pokud je velikost neznámá, ukaž rychlost vs maximální rychlost"
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr "počítej řádky místo bajtů"
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr "řádky jsou zakončené nulovým znakem"
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr "aktualizuj každých SEK sekund"
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr "ŠÍŘ"
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr "předpokládej šířku terminálu ŠÍŘ znaků"
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr "VÝŠ"
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr "předpokládej výšku terminálu VÝŠ znaků"
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr "JMÉNO"
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr "přidej JMÉNO před vizuální informace"
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr "vypisuj výstup i pokud standardní chybový výstup není terminál"
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr "pozicuj kurzor pomocí řídících znaků"
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr "SOUBOR"
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr "zapiš výstup do SOUBORu namísto standardního výstupu"
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr "RYCH"
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr "omez přenosovou rychlost na RYCH bajtů za sekundu"
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr "BAJT"
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr "použij vyrovnávací pamět BAJT bajtů"
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr "nepoužívej splice(), vždy použij read/write"
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr "ignoruj chyby při čtení vstupu"
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr "přeskakuj chyby v blocích BAJTů naráz"
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr "zastav po přenosu --size bajtů"
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr "po každém zápisu vyprázdni cache na disk"
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr "použij přímý V/V k obejítí cache"
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr "zahoď vstup namísto zápisu na výstup"
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
msgid "write all input to FILE before writing to output"
|
||||
msgstr "zapiš veškerý vstup do SOUBORu před výpisem na výstup"
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr "PID"
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr "aktualizuj nastavení procesu PID"
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr "ulož id procesu do SOUBORu"
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr "PID[:DS]"
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr "sleduj soubor DS otevřený procesem PID"
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr "ukaž pomoc a skonči"
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr "ukaž informace o verzi a skonči"
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr "zapiš ladící záznamy do SOUBORu"
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr "Použití: %s [VOLBY] [SOUBOR]..."
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
"Spoj SOUBOR(y) nebo standardní vstup na standardního výstup, s monitoringem."
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr "Prosím, hlašte veškeré chyby na: %s"
|
||||
@@ -261,69 +269,69 @@ msgstr "Prosím, hlašte veškeré chyby na: %s"
|
||||
msgid "(input)"
|
||||
msgstr "(vstup)"
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr "selhala alokace stavu"
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr "nebylo možné zjistit informace o souboru"
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr "je adresář"
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr "selhalo vytváření jména pro soubor v sysfs"
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr "selhalo čtení velikosti souboru v sysfs"
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr "selhalo otevření blokového zařízení"
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr "selhalo zjištění velikosti blokového zařízení"
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr "selhala alokace struktury pro volby"
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr "selhala alokace struktury pro argv"
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr "očekáván celočíselný argument"
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr "očekáván číselný argument"
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr "očekáváno ID procesu nebo dvojice PID:DS"
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr "neplatné ID procesu"
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr "Zkuste `%s --help' pro více informací."
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr "Zkuste `%s --h' pro více informací."
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
@@ -331,19 +339,19 @@ msgstr ""
|
||||
"při sledování deskriptorů souborů nelze použít řádkový mód nebo volby pro "
|
||||
"modifikaci přenosu"
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr "při sledování deskriptorů souborů nelze pozicování kurzoru použít"
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr "při sledování deskriptorů souborů nelze použít vzdálené ovládání"
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr "při sledování deskriptorů souborů nelze použít přenos souborů"
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr "není dostupné na systémech bez /proc/self/fdinfo"
|
||||
|
||||
@@ -395,37 +403,37 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "selhala alokace vyrovnávací paměti"
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
@@ -477,7 +485,7 @@ msgstr "pid"
|
||||
msgid "history structure allocation failed"
|
||||
msgstr "selhala alokace struktury historie"
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr "selhala alokace seznamu souborů"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"PO-Revision-Date: 2024-10-13 20:43+0000\n"
|
||||
"Last-Translator: fnetX <otto@codeberg.org>\n"
|
||||
"Language-Team: German <https://translate.codeberg.org/projects/pv/pv/de/>\n"
|
||||
@@ -50,7 +50,7 @@ msgstr "zeige die Datentransferrate an"
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr "zeige die durchschnittliche Übertragungsrate"
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr "SEK"
|
||||
|
||||
@@ -92,185 +92,193 @@ msgstr "FORMAT"
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr "setze das Ausgabeformat auf FORMAT"
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr "Übertragungsstatistiken am Ende ausgeben"
|
||||
|
||||
#: src/main/help.c:326
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr "Ausgabe von Prozent-Angaben statt visueller Darstellung"
|
||||
|
||||
#: src/main/help.c:329
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr "sämtliche Transferinformationen unterdrücken"
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr "keine Ausgabe bevor das erste Byte übertragen wurde"
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr "nichts anzeigen ehe SEK Sekunden vergangen sind"
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr "GRÖẞE"
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr "setze erwartete Datenlänge auf SIZE Byte"
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr "zeige Rate vs maximale Rate, falls die größe unbekannt ist"
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr "zähle Zeilen anstelle von Bytes"
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr "Zeilen sind nullterminiert"
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr "aktualisiere Ausgabe nach SEK Sekunden Intervall"
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr "BREITE"
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr "setze Terminal-Breite auf BREITE Zeichen"
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr "HÖHE"
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr "setze Terminal-Höhe auf HÖHE Zeichen"
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr "NAME"
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr "setze den NAMEn für visuelle Darstellung"
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr ""
|
||||
"Ausgabe auch dann erzwingen, wenn der Fehlerausgabe-Kanal kein Terminal ist"
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr "benutze Escape-Sequenzen zur Cursor-Positionierung"
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr "DATEI"
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr "schreibe die Ausgabe in DATEI statt in die Standardausgabe"
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr "RATE"
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr "beschränke die Transferrate auf RATE Byte pro Sekunde"
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr "BYTES"
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr "benutze einen Puffer in der Größe von BYTES"
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr "anstelle von splice() immer read/write benutzen"
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr "Lesefehler in der Eingabe nicht beachten"
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr "bei Fehlern BYTES am Stück überspringen"
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr "anhalten, nachdem --size Bytes übertragen wurden"
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr "schreibe den Cache nach jedem Schreibvorgang auf die Festplatte"
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr "verwende direkte E/A, um den Cache zu umgehen"
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr "verwirf die Eingabe anstatt in die Ausgabe zu schreiben"
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
msgid "write all input to FILE before writing to output"
|
||||
msgstr "Ausgabe nach FILE schrieben bevor sie ausgegeben wird"
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr "PID"
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr "Einstellungen der Prozess-PID updaten"
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr "Prozess-ID in DATEI speichern"
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr "PID[:FD]"
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr "die vom Prozess PID geöffnete Datei FD beobachten"
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr "zeige diese Hilfe und beende"
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr "zeige Versionsinformationen und beende"
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr "schreibe Debug-Protokolle in DATEI"
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr "Aufruf: %s [OPTION] [DATEI]..."
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
"Verbindet DATEI(en) oder den Standard-Eingabe-Kanal mit dem Standard-Ausgabe-"
|
||||
"Kanal und misst den Datenstrom."
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr "Bitte senden Sie Fehlerberichte an %s"
|
||||
@@ -279,69 +287,69 @@ msgstr "Bitte senden Sie Fehlerberichte an %s"
|
||||
msgid "(input)"
|
||||
msgstr "(eingabe)"
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr "Speicherzuweisung für `state' fehlgeschlagen"
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr "konnte Dateiinformationen nicht lesen"
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr "ist ein Verzeichnis"
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr "konnte Sysfs-Dateinamen nicht erzeugen"
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr "konnte Größe der Sysfs-Datei nicht lesen"
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr "konnte Blockgerät nicht öffnen"
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr "konnte Größe des Blockgeräts nicht ermitteln"
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr "Speicherzuweisung für `option' fehlgeschlagen"
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr "Speicherzuweisung für `argv' der Option fehlgeschlagen"
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr "Ganzzahliges Argument erwartet"
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr "numerisches Argument erwartet"
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr "Prozess-ID oder PID:FD-Paar erwartet"
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr "ungültige Prozess-ID"
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr "`%s --help' zeigt weitere Informationen an."
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr "`%s -h' zeigt weitere Informationen an."
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
@@ -349,24 +357,24 @@ msgstr ""
|
||||
"Beim Beobachten von Dateideskriptoren können keine Optionen für den "
|
||||
"Zeilenmodus oder den Übertragungsmodifikator verwendet werden"
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr ""
|
||||
"Beim Beobachten von Dateideskriptoren kann Cursor-Positionierung nicht "
|
||||
"verwendet werden"
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr ""
|
||||
"Beim Beobachten von Dateideskriptoren kann die Fernbedienung nicht verwenden "
|
||||
"werden"
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr ""
|
||||
"Beim Beobachten von Dateideskriptoren können Dateien nicht übertragen werden"
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr "Nicht verfügbar auf Systemen ohne /proc/self/fdinfo"
|
||||
|
||||
@@ -418,37 +426,37 @@ msgstr "yzafpnµm kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnµm KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "Speicherzuweisung für den Puffer fehlgeschlagen"
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr "Endzeit"
|
||||
|
||||
@@ -501,7 +509,7 @@ msgstr "pid"
|
||||
msgid "history structure allocation failed"
|
||||
msgstr "Speicherzuweisung für `history' fehlgeschlagen"
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr "Speicherzuweisung für die Dateiliste fehlgeschlagen"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -31,7 +31,7 @@ msgstr ""
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr ""
|
||||
|
||||
@@ -71,182 +71,190 @@ msgstr ""
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "output transfer statistics at the end"
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output percentages, not visual information"
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
msgid "write all input to FILE before writing to output"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr ""
|
||||
@@ -255,87 +263,87 @@ msgstr ""
|
||||
msgid "(input)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr ""
|
||||
|
||||
@@ -387,37 +395,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
@@ -469,7 +477,7 @@ msgstr ""
|
||||
msgid "history structure allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"PO-Revision-Date: 2024-10-12 11:13+0000\n"
|
||||
"Last-Translator: a-j-wood <a-j-wood@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: French <https://translate.codeberg.org/projects/pv/pv/fr/>\n"
|
||||
@@ -50,7 +50,7 @@ msgstr "afficher le taux de tranfert des données"
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr "afficher le compteur de taux moyen de transfert de données"
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr "SEC"
|
||||
|
||||
@@ -91,187 +91,195 @@ msgstr "FORMAT"
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr "définir le format de sortie sur FORMAT"
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr "afficher les statistiques de transfert à la fin"
|
||||
|
||||
#: src/main/help.c:326
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr "imprimer en pourcentage plutôt que des informations visuelles"
|
||||
|
||||
#: src/main/help.c:329
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr "n'afficher aucune information de transfert"
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr "ne rien afficher avant qu'au moins un octet soit tranféré"
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr "ne rien afficher jusqu'à ce que SEC secondes se soient écoulées"
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr "TAILLE"
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr "ajuster la taille estimée des données à TAILLE octets"
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr ""
|
||||
"si la taille est inconnue, afficher le taux de transfert par rapport au taux "
|
||||
"de transfert max"
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr "compter les lignes au lieu des octets"
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr "les lignes sont terminées par un caractère nul"
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr "mettre à jour toutes les SEC secondes"
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr "LARGEUR"
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr "présumer la largeur du terminal à LARGEUR caractères"
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr "HAUTEUR"
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr "présumer la hauteur du terminal à HAUTEUR lignes"
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr "NOM"
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr "préfixer les informations visuelles avec NOM"
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr ""
|
||||
"imprimer vers la sortie d'erreur standard même si ce n'est pas un terminal"
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr "utiliser les séquences d'échappements de positionnement de curseur"
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr "FICHIER"
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr "écrire la sortie dans FICHIER au lieu de la sortie standard"
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr "TAUX"
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr "limite le taux de transfert à TAUX octets par seconde"
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr "OCTETS"
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr "Utiliser une mémoire tampon de OCTETS octets"
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr "ne jamais utiliser splice(), toujours utiliser read/write"
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr "ignorer les erreurs de lecture dans l'entrée"
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr "ignorer les erreurs dans OCTETS blocs à la fois"
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr "arrêter après le transfert de --size octets"
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr "vider le cache sur le disque après chaque écriture"
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr "utiliser les E/S directes pour contourner le cache"
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr "rejeter l'entrée au lieu de l'écrire vers la sortie"
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
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"
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr "PID"
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr "mettre à jour la configuration du processus PID"
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr "enregistrer l'ID de processus dans FICHIER"
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr "PID[:FD]"
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr "surveiller le fichier FD ouvert par le processus PID"
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr "afficher cette aide puis quitter"
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr "afficher la version puis quitter"
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr "écrire les journaux de déboggage vers FICHIER"
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr "Utilisation : %s [OPTIONS] [FICHIER]..."
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
"Concaténer FICHIER(s), ou l'entrée standard, sur la sortie standard avec "
|
||||
"monitorage."
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr "SVP rapporter tous bogues à %s"
|
||||
@@ -280,69 +288,69 @@ msgstr "SVP rapporter tous bogues à %s"
|
||||
msgid "(input)"
|
||||
msgstr "(entrée)"
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr "échec de l'allocation de mémoire de condition"
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr "échec à statuer sur le fichier"
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr "est un répertoire"
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr "l'allocation pour la structure d'une option a échoué"
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr "l'allocation pour la structure de l'option argv a échoué"
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr "Valeur entière attendue"
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr "Valeur numérique attendue"
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr "ID de processus ou paire pid:fd attendue"
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr "ID de processus non valide"
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr "Essayez `%s --help' pour plus d'informations."
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr "Essayez `%s -h' pour plus d'informations."
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
@@ -350,25 +358,25 @@ msgstr ""
|
||||
"impossible d'utiliser le mode ligne ou les options de modificateur de "
|
||||
"transfert lors de la visualisation des descripteurs de fichiers"
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr ""
|
||||
"impossible d'utiliser le positionnement du curseur lors de la visualisation "
|
||||
"des descripteurs de fichier"
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr ""
|
||||
"impossible d'utiliser la télécommande lors de la visualisation des "
|
||||
"descripteurs de fichiers"
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr ""
|
||||
"impossible de transférer des fichiers lorsque vous regardez des descripteurs "
|
||||
"de fichiers"
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr "non disponible sur les systèmes sans /proc/self/fdinfo"
|
||||
|
||||
@@ -422,37 +430,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "échec de l'allocation de mémoire tampon"
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "O"
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "O/s"
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
@@ -504,7 +512,7 @@ msgstr ""
|
||||
msgid "history structure allocation failed"
|
||||
msgstr "l'allocation de la structure de l'historique a échoué"
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr "échec de l'allocation de la liste de fichiers"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"PO-Revision-Date: 2024-10-20 14:07+0000\n"
|
||||
"Last-Translator: coralpink <coralpink@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Polish <https://translate.codeberg.org/projects/pv/pv/pl/>\n"
|
||||
@@ -42,7 +42,7 @@ msgstr "pokaż licznik prędkości przesyłania"
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr "pokaż licznik uśrednionej prędkości przesyłania"
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr "SEKUNDY"
|
||||
|
||||
@@ -84,188 +84,196 @@ msgstr "FORMAT"
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr "ustaw FORMAT jako format wyjściowy"
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr "wyświetl na końcu statystyki transferu"
|
||||
|
||||
#: src/main/help.c:326
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr "wyświetl wyjście procentowo, bez graficznej prezentacji"
|
||||
|
||||
#: src/main/help.c:329
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr "nie wyświetlaj żadnych informacji o przesyłaniu"
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr "nie wyświetlaj nic aż do pierwszego przesłanego bajtu"
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr "nie wyświetlaj nic do momentu upłynięcia SEKUNDY sekund"
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr "ROZMIAR"
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr "ustaw oczekiwany rozmiar danych na ROZMIAR bajtów"
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr ""
|
||||
"jeśli rozmiar nie jest znany, wyświetl zestawienie prędkości do maksymalnej "
|
||||
"prędkości"
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr "zliczaj linie zamiast bajty"
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr "linie są zakończone znakiem NUL"
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr "aktualizuj co każde SEKUNDY sekund"
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr "SZEROKOŚĆ"
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr "przyjmij, że terminal ma szerokość SZEROKOŚĆ znaków"
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr "WYSOKOŚĆ"
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr "przyjmij, że terminal ma wysokość WYSOKOŚĆ linii"
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr "NAZWA"
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr "poprzedź informacje prefiksem NAZWA"
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr "pokaż wyjście nawet standardowe wyjście błędu nie jest terminalem"
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr "używaj znaków ucieczki do pozycjonowania kursora"
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr "PLIK"
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr "zapisz wyjście do PLIK zamiast do wyjścia standardowego"
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr "PRĘDKOŚĆ"
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr "ogranicz przesyłane dane do PRĘDKOŚĆ bajtów na sekundę"
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr "BAJTY"
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr "użyj bufora o rozmiarze BAJTY"
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr "nigdy nie używaj splice(), zawsze używaj read/write"
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr "pomijaj błędy odczytu wejścia"
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr "pomijaj błędy w blokach po BAJTY bajtów na raz"
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr "zakończ po przesłaniu --size bajtów"
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr "wymuś zapis pamięci podręcznej na dysk po każdym zapisie"
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr ""
|
||||
"użyj bezpośredniego wejścia/wyjścia celem pominięcia pamięci podręcznej"
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr "zignoruj dane wejściowe zamiast wyświetlić je na wyjściu standardowym"
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
msgid "write all input to FILE before writing to output"
|
||||
msgstr ""
|
||||
"zapisz wszystkie dane wejściowe do PLIK przed wyświetleniem ich na wyjściu"
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr "PID"
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr "zaktualizuj ustawienia procesu PID"
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr "zapisz ID procesu do PLIK"
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr "PID[:FD]"
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr "obserwuj plik FD otworzony przez proces PID"
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr "wyświetl te informacje z pomocą i wyjdź"
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr "wyświetl informacje o wersji i wyjdź"
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr "zapisz logi debugujące do PLIK"
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr "Sposób użycia: %s [OPCJA] [PLIK]..."
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
"Łączenie PLIK(ów) lub wejścia standardowego, do wyjścia standardowego z "
|
||||
"monitoringiem."
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr "Proszę przesyłać zgłoszenia błędów do %s"
|
||||
@@ -274,69 +282,69 @@ msgstr "Proszę przesyłać zgłoszenia błędów do %s"
|
||||
msgid "(input)"
|
||||
msgstr "(wejście)"
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr "alokacja stanu programu nie powiodła się"
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr "nie udało się wykonać operacji stat na pliku"
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr "jest katalogiem"
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr "nie udało się wygenerować nazwy pliku dla sysfs"
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr "nie udało się odczytać rozmiaru pliku sysfs"
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr "nie udało się otworzyć urządzenia blokowego"
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr "nie udało się ustalić rozmiaru urządzenia blokowego"
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr "nie udało się zaalokować struktur opcji"
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr "nie udało się zaalokować struktur opcji argv"
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr "oczekiwany argument typu liczby całkowitej"
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr "oczekiwany argument liczbowy"
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr "oczekiwany proces ID lub para PID:FD"
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr "niepoprawne ID procesu"
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr "Spróbuj `%s --help' by uzyskać więcej informacji."
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr "Spróbuj `%s -h' by uzyskać więcej informacji."
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
@@ -344,23 +352,23 @@ msgstr ""
|
||||
"nie można użyć trybu zliczania linii lub opcji modyfikujących przesył "
|
||||
"łącznie z opcją obserwowania deskryptorów plików"
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr ""
|
||||
"nie można użyć pozycjonowania kursora łącznie z opcją obserwowania "
|
||||
"deskryptorów plików"
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr ""
|
||||
"nie można użyć opcji zaktualizowania ustawień procesu łącznie z opcją "
|
||||
"obserwowania deskryptorów plików"
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr "nie można przesyłać plików z opcją obserwowania deskryptorów plików"
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr "niedostępne na systemach bez /proc/self/fdinfo"
|
||||
|
||||
@@ -413,37 +421,37 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "nie udało się zaalokować bufora"
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
@@ -496,7 +504,7 @@ msgstr "pid"
|
||||
msgid "history structure allocation failed"
|
||||
msgstr "nie udało się zaalokować struktury historii"
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr "nie udało się zaalokować listy plików"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -39,7 +39,7 @@ msgstr "exibe a taxa de transferência"
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr "exibe o contador da taxa média de transferência de dados"
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr ""
|
||||
|
||||
@@ -79,184 +79,192 @@ msgstr ""
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr "definir o formato de saída para FORMAT"
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "output transfer statistics at the end"
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr "exibe apenas as porcentagens, sem informações visuais"
|
||||
|
||||
#: src/main/help.c:329
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr "executa programa sem exibir quaisquer informações"
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr "não exibe nada até iniciar o processamento"
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr "não exibir nada até que os segundos SEC tenham passado"
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr "seta a quantidade estimada de dados em SIZE bytes"
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr "contar linhas em vez de bytes"
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr "linhas são terminadas em nulo"
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr "atualiza informações a cada SEC segundos"
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr "presuma que o terminal tem WIDTH caracteres de largura"
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr "presuma que o terminal tem HEIGHT caracteres de altura"
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr "exibe NAME antes das demais informações"
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr "gera dados mesmo que a saída de erro seja redirecionada"
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr "utiliza caracteres de escape para posicionar o cursor"
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr "limita a transferência a RATE bytes por segundo"
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr "use um tamanho de buffer de BYTES"
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr "nunca use splice(), sempre use read/write"
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr "ignorar erros de leitura em entrada"
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr "parar após --size bytes terem sido transferidos"
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
msgid "write all input to FILE before writing to output"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr "atualizar as configurações do processo PID"
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr "salvar ID do processo em FILE"
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr "assistir arquivo FD aberto pelo processo PID"
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr "exibe esta tela de ajuda e termina"
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr "exibe a versão e termina"
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr "Uso: %s [OPÇÕES] [ARQUIVOS]..."
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
"Concatena ARQUIVO(s) ou a entrada padrão e grava na saída padrão, com "
|
||||
"monitoramento."
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr "Por favor, reporte quaisquer defeitos para %s"
|
||||
@@ -265,69 +273,69 @@ msgstr "Por favor, reporte quaisquer defeitos para %s"
|
||||
msgid "(input)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr "alocação de memória de status falhou"
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr "erro obtendo informações do arquivo"
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr "erro na alocação da estrutura de opções"
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr "erro na alocação da estrutura de opções argv"
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr "argumento inteiro esperado"
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr "argumento numérico esperado"
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr "ID do processo ou par pid:fd esperado"
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr "ID de processo inválido"
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr "Tente `%s --help' para maiores informações."
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr "Tente `%s -h' para maiores informações."
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
@@ -335,21 +343,21 @@ msgstr ""
|
||||
"não pode usar o modo de linha ou opções de modificador de transferência ao "
|
||||
"assistir os descritores de arquivo"
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr ""
|
||||
"não pode usar o posicionamento do cursor ao observar os descritores de "
|
||||
"arquivo"
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr "não pode usar o controle remoto ao assistir os descritores de arquivo"
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr "não pode transferir arquivos ao assistir descritores de arquivo"
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr "não disponível em sistemas sem /proc/self/fdinfo"
|
||||
|
||||
@@ -401,37 +409,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "erro alocando o buffer"
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
@@ -483,7 +491,7 @@ msgstr ""
|
||||
msgid "history structure allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"PO-Revision-Date: 2024-10-22 18:07+0000\n"
|
||||
"Last-Translator: 0ko <0ko@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Russian <https://translate.codeberg.org/projects/pv/pv/ru/>\n"
|
||||
@@ -37,7 +37,7 @@ msgstr "показать скорость передачи данных"
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr "показать среднюю скорость передачи данных"
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr "СЕК"
|
||||
|
||||
@@ -77,183 +77,191 @@ msgstr "ФОРМАТ"
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr "указать формат вывода как ФОРМАТ"
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr "после завершения показать статистику"
|
||||
|
||||
#: src/main/help.c:326
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr "показать проценты вместо визуальной информации"
|
||||
|
||||
#: src/main/help.c:329
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr "не отображать никакую информацию о передаче"
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr "ничего не показывать, пока не будет передан первый байт"
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr "ничего не показывать, пока не пройдёт СЕК секунд"
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr "РАЗМ"
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr "указать ожидаемый объём данных как РАЗМ байт"
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr "если объём неизвестен, показать скорость и макс. скорость"
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr "считать линии вместо байт"
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr "строки прерываются нулями"
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr "обновлять каждые СЕК секунд"
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr "ШИРИНА"
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr "считать, что в одной строке помещается ШИРИНА символов"
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr "ВЫСОТА"
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr "считать, что на экране помещается ВЫСОТА строк"
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr "ИМЯ"
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr "писать ИМЯ до визуальной информации"
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr "вевести, даже если стд. ошибка не является терминалом"
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr ""
|
||||
"использовать символьные последовательности для позиционирования курсора"
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr "ФАЙЛ"
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr "направить вывод в ФАЙЛ вместо стд. вывода"
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr "СКОР"
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr "ограничить скорость передачи до СКОР байт/сек"
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr "БАЙТ"
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr "использовать буфер размера БАЙТ"
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr "использовать чтение/запись вместо splice()"
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr "пропустить ошибки чтения во вводе"
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr "пропускать ошибки в <БАЙТ> блоках за раз"
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr "остановить после передачи --size байт"
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr "сбрасывать кеш на диск каждый раз"
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr "использовать прямой ввод/вывод для обхода кеша"
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr "отбрасывать ввод вместо записи в вывод"
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
msgid "write all input to FILE before writing to output"
|
||||
msgstr "записывать весь ввод в ФАЙЛ прежде, чем отправлять на вывод"
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr "ИДпр"
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr "обновить настройки ИДпр процесса"
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr "сохранить ИД процесса в ФАЙЛ"
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr "ИДпр[:FD]"
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr "следить за FD файла, открытого процессом ИДпр"
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr "показать справку и завершить работу"
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr "показать версию программы и завершить работу"
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr "вести запись отладочного журнала в ФАЙЛ"
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr "Использование: %s [ОПЦИИ] [ФАЙЛ]..."
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr "Сообщайте о проблемах на: %s"
|
||||
@@ -262,87 +270,87 @@ msgstr "Сообщайте о проблемах на: %s"
|
||||
msgid "(input)"
|
||||
msgstr "(ввод)"
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr "не удалось получить информацию о файле"
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr "является каталогом"
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr "не удалось создать имя файла sysfs"
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr "не удалось узнать размер файла sysfs"
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr "не удалось открыть блочное устройство"
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr "не удалось определить размер блочного устройства"
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr "не удалось выделить память для структуры опций"
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr "не удалось выделить память для структуры опций argv"
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr "ожидалось целое число"
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr "ожидалось число"
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr "ожидался ИД процесса или пара ИДпр:ДФ"
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr "неправильный ИД процесса"
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr "Выполните `%s --help' для получения подробностей."
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr "Выполните `%s -h' для получения подробностей."
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr "удалённое управление невозможно при отслеживании дескрипторов файлов"
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr "передача файлов невозможна при отслеживании дескрипторов файлов"
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr "невозможно на системах без /proc/self/fdinfo"
|
||||
|
||||
@@ -396,37 +404,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "не удалось выделить память для буфера"
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr "бит"
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "байт"
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "бит/с"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr "/с"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "байт/с"
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr "ОЖИД"
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr "ЗАВЕРШ"
|
||||
|
||||
@@ -478,7 +486,7 @@ msgstr "ИДпр"
|
||||
msgid "history structure allocation failed"
|
||||
msgstr "не удалось выделить память для структуры истории"
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr "не удалось выделить память для списка файлов"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: pv 1.8.14\n"
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-01 16:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-01 19:09+0000\n"
|
||||
"PO-Revision-Date: 2024-10-12 23:51+0000\n"
|
||||
"Last-Translator: a-j-wood <a-j-wood@users.noreply.translate.codeberg.org>\n"
|
||||
"Language-Team: Turkish <https://translate.codeberg.org/projects/pv/pv/tr/>\n"
|
||||
@@ -37,7 +37,7 @@ msgstr "veri aktarım oranı sayacını göster"
|
||||
msgid "show data transfer average rate counter"
|
||||
msgstr "veri aktarımı ortalama hız sayacını göster"
|
||||
|
||||
#: src/main/help.c:301 src/main/help.c:335 src/main/help.c:350
|
||||
#: src/main/help.c:301 src/main/help.c:338 src/main/help.c:353
|
||||
msgid "SEC"
|
||||
msgstr "SEC"
|
||||
|
||||
@@ -77,183 +77,191 @@ msgstr "FORMAT"
|
||||
msgid "set output format to FORMAT"
|
||||
msgstr "çıktı formatını FORMAT olarak ayarlayın"
|
||||
|
||||
#: src/main/help.c:322
|
||||
msgid "SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:323
|
||||
msgid "also send progress to SPEC"
|
||||
msgstr ""
|
||||
|
||||
#: src/main/help.c:326
|
||||
msgid "output transfer statistics at the end"
|
||||
msgstr "transfer istatistiklerini sonda göster"
|
||||
|
||||
#: src/main/help.c:326
|
||||
#: src/main/help.c:329
|
||||
msgid "output percentages, not visual information"
|
||||
msgstr "görsel bilgileri değil, yüzdeleri çıktı olarak yazdır"
|
||||
|
||||
#: src/main/help.c:329
|
||||
#: src/main/help.c:332
|
||||
msgid "do not output any transfer information at all"
|
||||
msgstr "hiçbir transfer bilgisini yazdırma"
|
||||
|
||||
#: src/main/help.c:333
|
||||
#: src/main/help.c:336
|
||||
msgid "display nothing until first byte transferred"
|
||||
msgstr "ilk bayt aktarılana kadar hiçbir şey gösterme"
|
||||
|
||||
#: src/main/help.c:336
|
||||
#: src/main/help.c:339
|
||||
msgid "display nothing until SEC seconds have passed"
|
||||
msgstr "SEC saniye geçene kadar hiçbir şey gösterme"
|
||||
|
||||
#: src/main/help.c:338
|
||||
#: src/main/help.c:341
|
||||
msgid "SIZE"
|
||||
msgstr "BOYUT"
|
||||
|
||||
#: src/main/help.c:339
|
||||
#: src/main/help.c:342
|
||||
msgid "set estimated data size to SIZE bytes"
|
||||
msgstr "tahmini veri boyutunu BOYUT bayt olarak ayarlayın"
|
||||
|
||||
#: src/main/help.c:342
|
||||
#: src/main/help.c:345
|
||||
msgid "if size unknown, show rate vs max rate"
|
||||
msgstr "boyut bilinmiyorsa, oranı maksimum oranla göster"
|
||||
|
||||
#: src/main/help.c:345
|
||||
#: src/main/help.c:348
|
||||
msgid "count lines instead of bytes"
|
||||
msgstr "bayt yerine satır say"
|
||||
|
||||
#: src/main/help.c:348
|
||||
#: src/main/help.c:351
|
||||
msgid "lines are null-terminated"
|
||||
msgstr "satırlar boş sonlandırılır"
|
||||
|
||||
#: src/main/help.c:351
|
||||
#: src/main/help.c:354
|
||||
msgid "update every SEC seconds"
|
||||
msgstr "her SEC saniyede bir güncelleme"
|
||||
|
||||
#: src/main/help.c:353
|
||||
#: src/main/help.c:356
|
||||
msgid "WIDTH"
|
||||
msgstr "GENİŞLİK"
|
||||
|
||||
#: src/main/help.c:354
|
||||
#: src/main/help.c:357
|
||||
msgid "assume terminal is WIDTH characters wide"
|
||||
msgstr "terminalin GENİŞLİK karakter genişliğinde olduğunu varsayalım"
|
||||
|
||||
#: src/main/help.c:356
|
||||
#: src/main/help.c:359
|
||||
msgid "HEIGHT"
|
||||
msgstr "YÜKSEKLİK"
|
||||
|
||||
#: src/main/help.c:357
|
||||
#: src/main/help.c:360
|
||||
msgid "assume terminal is HEIGHT rows high"
|
||||
msgstr "terminalin YÜKSEKLİK sıraları yüksekliğinde olduğunu varsayalım"
|
||||
|
||||
#: src/main/help.c:359
|
||||
#: src/main/help.c:362
|
||||
msgid "NAME"
|
||||
msgstr "İSİM"
|
||||
|
||||
#: src/main/help.c:360
|
||||
#: src/main/help.c:363
|
||||
msgid "prefix visual information with NAME"
|
||||
msgstr "görsel bilgiyi İSİM ile öne ekle"
|
||||
|
||||
#: src/main/help.c:363
|
||||
#: src/main/help.c:366
|
||||
msgid "output even if standard error is not a terminal"
|
||||
msgstr "standart hata bir terminal olmasa bile çıktı yazdır"
|
||||
|
||||
#: src/main/help.c:366
|
||||
#: src/main/help.c:369
|
||||
msgid "use cursor positioning escape sequences"
|
||||
msgstr "imleç konumlandırma kaçış dizilerini kullan"
|
||||
|
||||
#: src/main/help.c:369 src/main/help.c:399 src/main/help.c:408
|
||||
#: src/main/help.c:423
|
||||
#: src/main/help.c:372 src/main/help.c:402 src/main/help.c:411
|
||||
#: src/main/help.c:426
|
||||
msgid "FILE"
|
||||
msgstr "DOSYA"
|
||||
|
||||
#: src/main/help.c:370
|
||||
#: src/main/help.c:373
|
||||
msgid "write output to FILE instead of stdout"
|
||||
msgstr "çıktıyı stdout yerine DOSYA'ya yaz"
|
||||
|
||||
#: src/main/help.c:372
|
||||
#: src/main/help.c:375
|
||||
msgid "RATE"
|
||||
msgstr "ORAN"
|
||||
|
||||
#: src/main/help.c:373
|
||||
#: src/main/help.c:376
|
||||
msgid "limit transfer to RATE bytes per second"
|
||||
msgstr "aktarımı saniye başına ORAN bayt ile sınırlandırın"
|
||||
|
||||
#: src/main/help.c:375 src/main/help.c:384
|
||||
#: src/main/help.c:378 src/main/help.c:387
|
||||
msgid "BYTES"
|
||||
msgstr "BAYTLAR"
|
||||
|
||||
#: src/main/help.c:376
|
||||
#: src/main/help.c:379
|
||||
msgid "use a buffer size of BYTES"
|
||||
msgstr "BAYTLAR tampon boyutu kullanın"
|
||||
|
||||
#: src/main/help.c:379
|
||||
#: src/main/help.c:382
|
||||
msgid "never use splice(), always use read/write"
|
||||
msgstr "splice() kullanma, her zaman read/write kullan"
|
||||
|
||||
#: src/main/help.c:382
|
||||
#: src/main/help.c:385
|
||||
msgid "skip read errors in input"
|
||||
msgstr "girdideki okuma hatalarını atla"
|
||||
|
||||
#: src/main/help.c:385
|
||||
#: src/main/help.c:388
|
||||
msgid "skip errors in BYTES blocks at a time"
|
||||
msgstr "BAYTLAR blokları halinde hataları atla"
|
||||
|
||||
#: src/main/help.c:388
|
||||
#: src/main/help.c:391
|
||||
msgid "stop after --size bytes have been transferred"
|
||||
msgstr "--size bayt transfer edildikten sonra dur"
|
||||
|
||||
#: src/main/help.c:391
|
||||
#: src/main/help.c:394
|
||||
msgid "flush cache to disk after every write"
|
||||
msgstr "her yazmadan sonra önbelleği diske boşalt"
|
||||
|
||||
#: src/main/help.c:394
|
||||
#: src/main/help.c:397
|
||||
msgid "use direct I/O to bypass cache"
|
||||
msgstr "Önbelleği atlamak için doğrudan I/O kullan"
|
||||
|
||||
#: src/main/help.c:397
|
||||
#: src/main/help.c:400
|
||||
msgid "discard input instead of writing to output"
|
||||
msgstr "Girdiyi çıktıya yazmak yerine yok say"
|
||||
|
||||
#: src/main/help.c:400
|
||||
#: src/main/help.c:403
|
||||
msgid "write all input to FILE before writing to output"
|
||||
msgstr "çıktıya yazmadan önce tüm girdiyi DOSYA'ya yaz"
|
||||
|
||||
#: src/main/help.c:403
|
||||
#: src/main/help.c:406
|
||||
msgid "PID"
|
||||
msgstr "PID"
|
||||
|
||||
#: src/main/help.c:404
|
||||
#: src/main/help.c:407
|
||||
msgid "update settings of process PID"
|
||||
msgstr "süreç PID ayarlarını güncelle"
|
||||
|
||||
#: src/main/help.c:409
|
||||
#: src/main/help.c:412
|
||||
msgid "save process ID in FILE"
|
||||
msgstr "FILE'da işlem kimliğini (ID) kaydet"
|
||||
|
||||
#: src/main/help.c:412
|
||||
#: src/main/help.c:415
|
||||
msgid "PID[:FD]"
|
||||
msgstr "PID[:FD]"
|
||||
|
||||
#: src/main/help.c:413
|
||||
#: src/main/help.c:416
|
||||
msgid "watch file FD opened by process PID"
|
||||
msgstr "FD izleme dosyası PID işlemi tarafından açıldı"
|
||||
|
||||
#: src/main/help.c:417
|
||||
#: src/main/help.c:420
|
||||
msgid "show this help and exit"
|
||||
msgstr "bu yardımı göster ve çık"
|
||||
|
||||
#: src/main/help.c:420
|
||||
#: src/main/help.c:423
|
||||
msgid "show version information and exit"
|
||||
msgstr "sürüm bilgilerini göster ve çık"
|
||||
|
||||
#: src/main/help.c:424
|
||||
#: src/main/help.c:427
|
||||
msgid "write debug logs to FILE"
|
||||
msgstr "Hata ayıklama kayıtlarını DOSYA'ya yaz"
|
||||
|
||||
#: src/main/help.c:449
|
||||
#: src/main/help.c:452
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION] [FILE]..."
|
||||
msgstr "Kullanım şekli: %s [AYAR] [DOSYA]..."
|
||||
|
||||
#: src/main/help.c:460
|
||||
#: src/main/help.c:463
|
||||
msgid ""
|
||||
"Concatenate FILE(s), or standard input, to standard output, with monitoring."
|
||||
msgstr ""
|
||||
"İzleme ile DOSYA(lar)ı veya standart girdiyi standart çıktı ile birleştirin."
|
||||
|
||||
#: src/main/help.c:597
|
||||
#: src/main/help.c:600
|
||||
#, c-format
|
||||
msgid "Please report any bugs to: %s"
|
||||
msgstr "Lütfen hataları şu adrese bildirin: %s"
|
||||
@@ -262,69 +270,69 @@ msgstr "Lütfen hataları şu adrese bildirin: %s"
|
||||
msgid "(input)"
|
||||
msgstr "(giriş)"
|
||||
|
||||
#: src/main/main.c:315
|
||||
#: src/main/main.c:319
|
||||
msgid "state allocation failed"
|
||||
msgstr "durum tahsisi başarısız oldu"
|
||||
|
||||
#: src/main/options.c:142 src/pv/file.c:324
|
||||
#: src/main/options.c:144 src/pv/file.c:324
|
||||
msgid "failed to stat file"
|
||||
msgstr "dosya statüsünde başarısız oldu"
|
||||
|
||||
#: src/main/options.c:156
|
||||
#: src/main/options.c:158
|
||||
msgid "is a directory"
|
||||
msgstr "bir dizindir"
|
||||
|
||||
#: src/main/options.c:185
|
||||
#: src/main/options.c:187
|
||||
msgid "failed to generate sysfs filename"
|
||||
msgstr "sysfs dosya adı oluşturulamadı"
|
||||
|
||||
#: src/main/options.c:207
|
||||
#: src/main/options.c:209
|
||||
msgid "failed to read sysfs size file"
|
||||
msgstr "sysfs boyut dosyası okunamadı"
|
||||
|
||||
#: src/main/options.c:227
|
||||
#: src/main/options.c:229
|
||||
msgid "failed to open block device"
|
||||
msgstr "blok aygıtı açılamadı"
|
||||
|
||||
#: src/main/options.c:237
|
||||
#: src/main/options.c:239
|
||||
msgid "failed to determine size of block device"
|
||||
msgstr "blok aygıtının boyutu belirlenemedi"
|
||||
|
||||
#: src/main/options.c:341
|
||||
#: src/main/options.c:344
|
||||
msgid "option structure allocation failed"
|
||||
msgstr "seçenek yapısı tahsisi başarısız oldu"
|
||||
|
||||
#: src/main/options.c:360
|
||||
#: src/main/options.c:363
|
||||
msgid "option structure argv allocation failed"
|
||||
msgstr "seçenek yapısı argv tahsisi başarısız oldu"
|
||||
|
||||
#: src/main/options.c:422
|
||||
#: src/main/options.c:425
|
||||
msgid "integer argument expected"
|
||||
msgstr "tamsayı bağımsız değişkeni bekleniyor"
|
||||
|
||||
#: src/main/options.c:433
|
||||
#: src/main/options.c:436
|
||||
msgid "numeric argument expected"
|
||||
msgstr "sayısal bağımsız değişken bekleniyor"
|
||||
|
||||
#: src/main/options.c:444
|
||||
#: src/main/options.c:447
|
||||
msgid "process ID or pid:fd pair expected"
|
||||
msgstr "süreç kimliği (ID) veya pid:fd çifti bekleniyor"
|
||||
|
||||
#: src/main/options.c:451
|
||||
#: src/main/options.c:454
|
||||
msgid "invalid process ID"
|
||||
msgstr "geçersiz süreç kimliği (ID)"
|
||||
|
||||
#: src/main/options.c:668
|
||||
#: src/main/options.c:679
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information."
|
||||
msgstr "Daha fazla bilgi için `%s --help' seçeneğini deneyin."
|
||||
|
||||
#: src/main/options.c:670
|
||||
#: src/main/options.c:681
|
||||
#, c-format
|
||||
msgid "Try `%s -h' for more information."
|
||||
msgstr "Daha fazla bilgi için `%s -h' seçeneğini deneyin."
|
||||
|
||||
#: src/main/options.c:701
|
||||
#: src/main/options.c:712
|
||||
msgid ""
|
||||
"cannot use line mode or transfer modifier options when watching file "
|
||||
"descriptors"
|
||||
@@ -332,19 +340,19 @@ msgstr ""
|
||||
"dosya tanımlayıcılarını izlerken satır modu veya aktarım değiştirici "
|
||||
"seçeneklerini kullanamaz"
|
||||
|
||||
#: src/main/options.c:710
|
||||
#: src/main/options.c:721
|
||||
msgid "cannot use cursor positioning when watching file descriptors"
|
||||
msgstr "dosya tanımlayıcılarını izlerken imleç konumlandırmayı kullanamaz"
|
||||
|
||||
#: src/main/options.c:719
|
||||
#: src/main/options.c:730
|
||||
msgid "cannot use remote control when watching file descriptors"
|
||||
msgstr "dosya tanımlayıcılarını izlerken uzaktan kumandayı kullanamaz"
|
||||
|
||||
#: src/main/options.c:728
|
||||
#: src/main/options.c:739
|
||||
msgid "cannot transfer files when watching file descriptors"
|
||||
msgstr "dosya tanımlayıcıları izlenirken dosya aktarılamıyor"
|
||||
|
||||
#: src/main/options.c:743
|
||||
#: src/main/options.c:754
|
||||
msgid "not available on systems without /proc/self/fdinfo"
|
||||
msgstr "/proc/self/fdinfo olmayan sistemlerde kullanılamaz"
|
||||
|
||||
@@ -397,37 +405,37 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:678 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "arabellek tahsisi başarısız oldu"
|
||||
|
||||
#: src/pv/display.c:807
|
||||
#: src/pv/display.c:810
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:810 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:854 src/pv/display.c:869 src/pv/display.c:1088
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:858 src/pv/display.c:873 src/pv/display.c:1092
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:901 src/pv/display.c:905
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:971
|
||||
#: src/pv/display.c:974
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
@@ -479,7 +487,7 @@ msgstr "pid"
|
||||
msgid "history structure allocation failed"
|
||||
msgstr "geçmiş yapısı tahsisi başarısız oldu"
|
||||
|
||||
#: src/pv/state.c:509 src/pv/state.c:520
|
||||
#: src/pv/state.c:572 src/pv/state.c:583
|
||||
msgid "file list allocation failed"
|
||||
msgstr "dosya listesi tahsisi başarısız oldu"
|
||||
|
||||
|
||||
@@ -112,6 +112,9 @@
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
/* Define to 1 if you have the `setproctitle' function. */
|
||||
#undef HAVE_SETPROCTITLE
|
||||
|
||||
/* Define to 1 if you have the `shmget' function. */
|
||||
#undef HAVE_SHMGET
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ struct opts_s {
|
||||
/*@keep@*/ /*@null@*/ char *format; /* output format, if any */
|
||||
/*@keep@*/ /*@null@*/ char *pidfile; /* PID file, if any */
|
||||
/*@keep@*/ /*@null@*/ char *store_and_forward_file; /* store and forward file, if any */
|
||||
/*@keep@*/ /*@null@*/ char *extra_display; /* extra display specifier, if any */
|
||||
/*@keep@*/ /*@null@*/ const char **argv; /* array of non-option arguments */
|
||||
size_t lastwritten; /* show N bytes last written */
|
||||
off_t rate_limit; /* rate limit, in bytes per second */
|
||||
|
||||
@@ -64,6 +64,9 @@ typedef enum {
|
||||
#define PV_SIZEOF_FILE_FDPATH 4096
|
||||
#define PV_SIZEOF_DISPLAY_NAME 512
|
||||
|
||||
#define PV_DISPLAY_WINDOWTITLE 1
|
||||
#define PV_DISPLAY_PROCESSTITLE 2
|
||||
|
||||
|
||||
/*
|
||||
* Structure for data shared between multiple "pv -c" instances.
|
||||
@@ -107,6 +110,7 @@ struct pvstate_s {
|
||||
double delay_start; /* delay before first display */
|
||||
/*@only@*/ /*@null@*/ char *name; /* display name */
|
||||
/*@only@*/ /*@null@*/ char *format_string; /* output format string */
|
||||
/*@only@*/ /*@null@*/ char *extra_format_string; /* extra format string */
|
||||
/*@null@*/ char *output_name; /* name of the output, for diagnostics */
|
||||
off_t error_skip_block; /* skip block size, 0 for adaptive */
|
||||
off_t rate_limit; /* rate limit, in bytes per second */
|
||||
@@ -120,6 +124,7 @@ struct pvstate_s {
|
||||
unsigned int history_interval; /* seconds between each average rate calc history entry */
|
||||
unsigned int width; /* screen width */
|
||||
unsigned int height; /* screen height */
|
||||
unsigned int extra_displays; /* bitmask of extra display destinations */
|
||||
bool force; /* display even if not on terminal */
|
||||
bool cursor; /* use cursor positioning */
|
||||
bool numeric; /* numeric output only */
|
||||
@@ -182,7 +187,7 @@ struct pvstate_s {
|
||||
/*****************
|
||||
* Display state *
|
||||
*****************/
|
||||
struct {
|
||||
struct pvdisplay_s {
|
||||
|
||||
struct { /* format string broken into display components */
|
||||
size_t str_start; /* for strings: start offset */
|
||||
@@ -211,6 +216,9 @@ struct pvstate_s {
|
||||
|
||||
} display;
|
||||
|
||||
/* Extra display for alternate outputs like a window title. */
|
||||
struct pvdisplay_s extra_display;
|
||||
|
||||
/************************************
|
||||
* Calculated state of the transfer *
|
||||
************************************/
|
||||
@@ -358,11 +366,13 @@ struct pvwatchfd_s {
|
||||
};
|
||||
typedef struct pvwatchfd_s *pvwatchfd_t;
|
||||
|
||||
typedef struct pvdisplay_s *pvdisplay_t;
|
||||
|
||||
void pv_error(pvstate_t, char *, ...);
|
||||
|
||||
int pv_main_loop(pvstate_t);
|
||||
void pv_calculate_transfer_rate(pvstate_t, bool);
|
||||
bool pv_format(pvstate_t, bool);
|
||||
bool pv_format(pvstate_t, /*@null@*/ const char *, pvdisplay_t, bool, bool);
|
||||
void pv_display(pvstate_t, bool);
|
||||
ssize_t pv_transfer(pvstate_t, int, bool *, bool *, off_t, long *);
|
||||
int pv_next_file(pvstate_t, unsigned int, int);
|
||||
|
||||
@@ -210,6 +210,7 @@ extern void pv_state_width_set(pvstate_t, unsigned int, bool);
|
||||
extern void pv_state_height_set(pvstate_t, unsigned int, bool);
|
||||
extern void pv_state_name_set(pvstate_t, /*@null@*/ const char *);
|
||||
extern void pv_state_format_string_set(pvstate_t, /*@null@*/ const char *);
|
||||
extern void pv_state_extra_display_set(pvstate_t, /*@null@*/ const char *);
|
||||
extern void pv_state_watch_pid_set(pvstate_t, pid_t);
|
||||
extern void pv_state_watch_fd_set(pvstate_t, int);
|
||||
extern void pv_state_output_set(pvstate_t, int, const char *);
|
||||
@@ -269,6 +270,10 @@ extern void pv_sig_fini(pvstate_t);
|
||||
*/
|
||||
extern void pv_state_free(/*@only@*/ pvstate_t);
|
||||
|
||||
#if ! HAVE_SETPROCTITLE
|
||||
void initproctitle(int, char **);
|
||||
void setproctitle(const char *, ...);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_DEBUGGING
|
||||
# if __STDC_VERSION__ < 199901L && !defined(__func__)
|
||||
|
||||
@@ -319,6 +319,9 @@ void display_help(void)
|
||||
{ "-F", "--format", N_("FORMAT"),
|
||||
N_("set output format to FORMAT"),
|
||||
{ 0, 0, 0, 0} },
|
||||
{ "-x", "--extra-display", N_("SPEC"),
|
||||
N_("also send progress to SPEC"),
|
||||
{ 0, 0, 0, 0} },
|
||||
{ "-v", "--stats", NULL,
|
||||
N_("output transfer statistics at the end"),
|
||||
{ 0, 0, 0, 0} },
|
||||
|
||||
@@ -280,6 +280,10 @@ int main(int argc, char **argv)
|
||||
int retcode = 0;
|
||||
bool can_have_eta = true;
|
||||
|
||||
#if ! HAVE_SETPROCTITLE
|
||||
initproctitle(argc, argv);
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
/* Initialise language translation. */
|
||||
(void) setlocale(LC_ALL, "");
|
||||
@@ -490,6 +494,7 @@ int main(int argc, char **argv)
|
||||
pv_state_size_set(state, opts->size);
|
||||
pv_state_name_set(state, opts->name);
|
||||
pv_state_format_string_set(state, opts->format);
|
||||
pv_state_extra_display_set(state, opts->extra_display);
|
||||
pv_state_watch_pid_set(state, opts->watch_pid);
|
||||
pv_state_watch_fd_set(state, opts->watch_fd);
|
||||
pv_state_average_rate_window_set(state, opts->average_rate_window);
|
||||
|
||||
+12
-1
@@ -59,6 +59,8 @@ void opts_free( /*@only@ */ opts_t opts)
|
||||
free(opts->output);
|
||||
if (NULL != opts->store_and_forward_file)
|
||||
free(opts->store_and_forward_file);
|
||||
if (NULL != opts->extra_display)
|
||||
free(opts->extra_display);
|
||||
if (NULL != opts->argv)
|
||||
free(opts->argv);
|
||||
/*@+keeptrans@ */
|
||||
@@ -295,6 +297,7 @@ opts_t opts_parse(unsigned int argc, char **argv)
|
||||
{ "height", 1, NULL, (int) 'H' },
|
||||
{ "name", 1, NULL, (int) 'N' },
|
||||
{ "format", 1, NULL, (int) 'F' },
|
||||
{ "extra-display", 1, NULL, (int) 'x' },
|
||||
{ "stats", 0, NULL, (int) 'v' },
|
||||
{ "rate-limit", 1, NULL, (int) 'L' },
|
||||
{ "buffer-size", 1, NULL, (int) 'B' },
|
||||
@@ -319,7 +322,7 @@ opts_t opts_parse(unsigned int argc, char **argv)
|
||||
/*@+nullassign@ */
|
||||
int option_index = 0;
|
||||
#endif /* HAVE_GETOPT_LONG */
|
||||
char *short_options = "hVpteIrab8kTA:fvnqcWD:s:gl0i:w:H:N:F:L:B:CEZ:SYKXU:R:P:d:m:o:"
|
||||
char *short_options = "hVpteIrab8kTA:fvnqcWD:s:gl0i:w:H:N:F:x:L:B:CEZ:SYKXU:R:P:d:m:o:"
|
||||
#ifdef ENABLE_DEBUGGING
|
||||
"!:"
|
||||
#endif
|
||||
@@ -637,6 +640,14 @@ opts_t opts_parse(unsigned int argc, char **argv)
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
case 'x':
|
||||
opts->extra_display = pv_strdup(optarg);
|
||||
if (NULL == opts->extra_display) {
|
||||
fprintf(stderr, "%s: -x: %s\n", opts->program_name, strerror(errno));
|
||||
opts_free(opts);
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
parse_pid = 0;
|
||||
parse_fd = -1;
|
||||
|
||||
+136
-98
@@ -428,29 +428,31 @@ static void pv__sizestr(char *buffer, size_t bufsize, char *format,
|
||||
/*
|
||||
* Initialise the output format structure, based on the current options.
|
||||
*/
|
||||
static void pv__format_init(pvstate_t state)
|
||||
static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supplied, pvdisplay_t display)
|
||||
{
|
||||
const char *formatstr;
|
||||
const char *format_used;
|
||||
size_t strpos;
|
||||
size_t segment;
|
||||
|
||||
if (NULL == state)
|
||||
return;
|
||||
if (NULL == display)
|
||||
return;
|
||||
|
||||
state->display.format_segment_count = 0;
|
||||
memset(state->display.format, 0, PV_FORMAT_ARRAY_MAX * sizeof(state->display.format[0]));
|
||||
memset(state->display.component, 0, PV_COMPONENT__MAX * sizeof(state->display.component[0]));
|
||||
display->format_segment_count = 0;
|
||||
memset(display->format, 0, PV_FORMAT_ARRAY_MAX * sizeof(display->format[0]));
|
||||
memset(display->component, 0, PV_COMPONENT__MAX * sizeof(display->component[0]));
|
||||
|
||||
if (state->control.name) {
|
||||
(void) pv_snprintf(state->display.component[PV_COMPONENT_NAME].content, PV_SIZEOF_COMPONENT_STR,
|
||||
(void) pv_snprintf(display->component[PV_COMPONENT_NAME].content, PV_SIZEOF_COMPONENT_STR,
|
||||
"%9.500s:", state->control.name);
|
||||
state->display.component[PV_COMPONENT_NAME].length = strlen(state->display.component[PV_COMPONENT_NAME].content); /* flawfinder: ignore */
|
||||
display->component[PV_COMPONENT_NAME].length = strlen(display->component[PV_COMPONENT_NAME].content); /* flawfinder: ignore */
|
||||
/* flawfinder: content always bounded thanks to pv_snprintf(). */
|
||||
}
|
||||
|
||||
formatstr = state->control.format_string ? state->control.format_string : state->control.default_format;
|
||||
format_used = NULL == format_supplied ? state->control.default_format : format_supplied;
|
||||
|
||||
if (NULL == formatstr)
|
||||
if (NULL == format_used)
|
||||
return;
|
||||
|
||||
/*
|
||||
@@ -473,11 +475,11 @@ static void pv__format_init(pvstate_t state)
|
||||
* of these segments together.
|
||||
*/
|
||||
segment = 0;
|
||||
for (strpos = 0; formatstr[strpos] != '\0' && segment < PV_FORMAT_ARRAY_MAX; strpos++, segment++) {
|
||||
for (strpos = 0; format_used[strpos] != '\0' && segment < PV_FORMAT_ARRAY_MAX; strpos++, segment++) {
|
||||
pv_display_component seg_type;
|
||||
size_t str_start, str_length;
|
||||
|
||||
if ('%' == formatstr[strpos]) {
|
||||
if ('%' == format_used[strpos]) {
|
||||
unsigned long number_prefix;
|
||||
#if HAVE_STRTOUL
|
||||
char *number_end_ptr;
|
||||
@@ -491,15 +493,15 @@ static void pv__format_init(pvstate_t state)
|
||||
*/
|
||||
#if HAVE_STRTOUL
|
||||
number_end_ptr = NULL;
|
||||
number_prefix = strtoul(&(formatstr[strpos]), &number_end_ptr, 10);
|
||||
number_prefix = strtoul(&(format_used[strpos]), &number_end_ptr, 10);
|
||||
if ((NULL == number_end_ptr) || (number_end_ptr[0] == '\0'))
|
||||
break;
|
||||
if (number_end_ptr > &(formatstr[strpos]))
|
||||
strpos += (number_end_ptr - &(formatstr[strpos]));
|
||||
if (number_end_ptr > &(format_used[strpos]))
|
||||
strpos += (number_end_ptr - &(format_used[strpos]));
|
||||
#else /* !HAVE_STRTOUL */
|
||||
while (isdigit((int) (formatstr[strpos]))) {
|
||||
while (isdigit((int) (format_used[strpos]))) {
|
||||
number_prefix = number_prefix * 10;
|
||||
number_prefix += formatstr[strpos] - '0';
|
||||
number_prefix += format_used[strpos] - '0';
|
||||
strpos++;
|
||||
}
|
||||
#endif /* !HAVE_STRTOUL */
|
||||
@@ -508,7 +510,7 @@ static void pv__format_init(pvstate_t state)
|
||||
str_start = 0;
|
||||
str_length = 0;
|
||||
|
||||
switch (formatstr[strpos]) {
|
||||
switch (format_used[strpos]) {
|
||||
case 'p':
|
||||
seg_type = PV_COMPONENT_PROGRESS;
|
||||
break;
|
||||
@@ -527,7 +529,7 @@ static void pv__format_init(pvstate_t state)
|
||||
number_prefix = PV_SIZEOF_LASTOUTPUT_BUFFER;
|
||||
if (number_prefix < 1)
|
||||
number_prefix = 1;
|
||||
state->display.lastoutput_length = (size_t) number_prefix;
|
||||
display->lastoutput_length = (size_t) number_prefix;
|
||||
break;
|
||||
case 'r':
|
||||
seg_type = PV_COMPONENT_RATE;
|
||||
@@ -567,12 +569,12 @@ static void pv__format_init(pvstate_t state)
|
||||
const char *searchptr;
|
||||
int foundlength;
|
||||
|
||||
searchptr = strchr(&(formatstr[strpos]), '%');
|
||||
searchptr = strchr(&(format_used[strpos]), '%');
|
||||
if (NULL == searchptr) {
|
||||
foundlength = (int) strlen(&(formatstr[strpos])); /* flawfinder: ignore */
|
||||
/* flawfinder: formatstr is explicitly \0-terminated. */
|
||||
foundlength = (int) strlen(&(format_used[strpos])); /* flawfinder: ignore */
|
||||
/* flawfinder: format_used is explicitly \0-terminated. */
|
||||
} else {
|
||||
foundlength = searchptr - &(formatstr[strpos]);
|
||||
foundlength = searchptr - &(format_used[strpos]);
|
||||
}
|
||||
|
||||
seg_type = PV_COMPONENT_STRING;
|
||||
@@ -583,12 +585,12 @@ static void pv__format_init(pvstate_t state)
|
||||
}
|
||||
|
||||
if (seg_type != PV_COMPONENT_STRING)
|
||||
state->display.component[seg_type].required = true;
|
||||
display->component[seg_type].required = true;
|
||||
|
||||
state->display.format[segment].type = seg_type;
|
||||
state->display.format[segment].str_start = str_start;
|
||||
state->display.format[segment].str_length = str_length;
|
||||
state->display.format_segment_count++;
|
||||
display->format[segment].type = seg_type;
|
||||
display->format[segment].str_start = str_start;
|
||||
display->format[segment].str_length = str_length;
|
||||
display->format_segment_count++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -604,44 +606,46 @@ static long bound_long(long x, long min, long max)
|
||||
|
||||
|
||||
/*
|
||||
* Update state->display.display_buffer with status information formatted
|
||||
* Update display->display_buffer with status information formatted
|
||||
* according to the state held within the given structure.
|
||||
*
|
||||
* If "reinitialise" is true, the format string is reparsed first. This
|
||||
* should be true for the first call, and true whenever the format is
|
||||
* changed.
|
||||
*
|
||||
* If "final" is true, this is the final update so the rate is given as an
|
||||
* an average over the whole transfer; otherwise the current rate is shown.
|
||||
*
|
||||
* Returns true if the display buffer can be used, false if not.
|
||||
*
|
||||
* When returning true, this function will have also set
|
||||
* state->display.display_string_len to the length of the string in
|
||||
* state->display.display_buffer, in bytes.
|
||||
* display->display_string_len to the length of the string in
|
||||
* display->display_buffer, in bytes.
|
||||
*/
|
||||
bool pv_format(pvstate_t state, bool final)
|
||||
bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdisplay_t display, bool reinitialise,
|
||||
bool final)
|
||||
{
|
||||
long eta;
|
||||
int static_portion_size;
|
||||
pv_display_component component_type;
|
||||
size_t segment;
|
||||
size_t new_display_string_len;
|
||||
const char *formatstr;
|
||||
const char *format_used;
|
||||
pv__transfercount_t count_type;
|
||||
|
||||
/* Quick safety check - state must exist. */
|
||||
/* Quick safety check - state and display must exist. */
|
||||
if (NULL == state)
|
||||
return false;
|
||||
if (NULL == display)
|
||||
return false;
|
||||
|
||||
/*
|
||||
* If the display options need reparsing, do so to generate new
|
||||
* formatting parameters.
|
||||
*/
|
||||
if (0 != state->flag.reparse_display) {
|
||||
pv__format_init(state);
|
||||
state->flag.reparse_display = 0;
|
||||
}
|
||||
/* Reinitialise if we were asked to. */
|
||||
if (reinitialise)
|
||||
pv__format_init(state, format_supplied, display);
|
||||
|
||||
/* The format string is needed for the static segments. */
|
||||
formatstr = state->control.format_string ? state->control.format_string : state->control.default_format;
|
||||
if (NULL == formatstr)
|
||||
format_used = NULL == format_supplied ? state->control.default_format : format_supplied;
|
||||
if (NULL == format_used)
|
||||
return false;
|
||||
|
||||
/* Determine the type of thing being counted for transfer, rate, etc. */
|
||||
@@ -654,17 +658,16 @@ bool pv_format(pvstate_t state, bool final)
|
||||
/*
|
||||
* Reallocate output buffer if width changes.
|
||||
*/
|
||||
if (state->display.display_buffer != NULL
|
||||
&& state->display.display_buffer_size < (size_t) ((state->control.width * 2))) {
|
||||
free(state->display.display_buffer);
|
||||
state->display.display_buffer = NULL;
|
||||
state->display.display_buffer_size = 0;
|
||||
if (display->display_buffer != NULL && display->display_buffer_size < (size_t) ((state->control.width * 2))) {
|
||||
free(display->display_buffer);
|
||||
display->display_buffer = NULL;
|
||||
display->display_buffer_size = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate output buffer if there isn't one.
|
||||
*/
|
||||
if (NULL == state->display.display_buffer) {
|
||||
if (NULL == display->display_buffer) {
|
||||
char *new_buffer;
|
||||
size_t new_size;
|
||||
|
||||
@@ -677,13 +680,13 @@ bool pv_format(pvstate_t state, bool final)
|
||||
if (NULL == new_buffer) {
|
||||
pv_error(state, "%s: %s", _("buffer allocation failed"), strerror(errno));
|
||||
state->status.exit_status |= PV_ERROREXIT_MEMORY;
|
||||
state->display.display_buffer = NULL;
|
||||
display->display_buffer = NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
state->display.display_buffer = new_buffer;
|
||||
state->display.display_buffer_size = new_size;
|
||||
state->display.display_buffer[0] = '\0';
|
||||
display->display_buffer = new_buffer;
|
||||
display->display_buffer_size = new_size;
|
||||
display->display_buffer[0] = '\0';
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -713,14 +716,14 @@ bool pv_format(pvstate_t state, bool final)
|
||||
show_percentage = true;
|
||||
|
||||
msg_timer[0] = '\0';
|
||||
if (state->display.component[PV_COMPONENT_TIMER].required) {
|
||||
if (display->component[PV_COMPONENT_TIMER].required) {
|
||||
(void) pv_snprintf(msg_timer, sizeof(msg_timer), "%s%.4Lf", first_item ? "" : " ",
|
||||
state->transfer.elapsed_seconds);
|
||||
first_item = false;
|
||||
}
|
||||
|
||||
msg_bytes[0] = '\0';
|
||||
if (state->display.component[PV_COMPONENT_BYTES].required) {
|
||||
if (display->component[PV_COMPONENT_BYTES].required) {
|
||||
(void) pv_snprintf(msg_bytes, sizeof(msg_bytes),
|
||||
"%s%lld", first_item ? "" : " ",
|
||||
(long long) ((state->control.bits ? 8 : 1) * state->transfer.transferred));
|
||||
@@ -729,7 +732,7 @@ bool pv_format(pvstate_t state, bool final)
|
||||
}
|
||||
|
||||
msg_rate[0] = '\0';
|
||||
if (state->display.component[PV_COMPONENT_RATE].required) {
|
||||
if (display->component[PV_COMPONENT_RATE].required) {
|
||||
(void) pv_snprintf(msg_rate, sizeof(msg_rate),
|
||||
"%s%.4Lf", first_item ? "" : " ",
|
||||
((state->control.bits ? 8.0 : 1.0) * state->calc.transfer_rate));
|
||||
@@ -744,11 +747,11 @@ bool pv_format(pvstate_t state, bool final)
|
||||
first_item = false;
|
||||
}
|
||||
|
||||
(void) pv_snprintf(state->display.display_buffer,
|
||||
state->display.display_buffer_size, "%.39s%.39s%.39s%.39s\n", msg_timer, msg_bytes,
|
||||
(void) pv_snprintf(display->display_buffer,
|
||||
display->display_buffer_size, "%.39s%.39s%.39s%.39s\n", msg_timer, msg_bytes,
|
||||
msg_rate, msg_percent);
|
||||
|
||||
state->display.display_string_len = strlen(state->display.display_buffer); /* flawfinder: ignore */
|
||||
display->display_string_len = strlen(display->display_buffer); /* flawfinder: ignore */
|
||||
/* flawfinder: always \0 terminated by pv_snprintf(). */
|
||||
|
||||
return true;
|
||||
@@ -771,7 +774,7 @@ bool pv_format(pvstate_t state, bool final)
|
||||
struct tm *time_ptr;
|
||||
char *time_format;
|
||||
|
||||
if (!state->display.component[component_type].required)
|
||||
if (!display->component[component_type].required)
|
||||
continue;
|
||||
|
||||
/*
|
||||
@@ -781,12 +784,12 @@ bool pv_format(pvstate_t state, bool final)
|
||||
*/
|
||||
if (state->control.size < 1
|
||||
&& ((component_type == PV_COMPONENT_ETA) || (component_type == PV_COMPONENT_FINETA))) {
|
||||
state->display.component[component_type].content[0] = '\0';
|
||||
state->display.component[component_type].length = 0;
|
||||
display->component[component_type].content[0] = '\0';
|
||||
display->component[component_type].length = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
component_content = state->display.component[component_type].content;
|
||||
component_content = display->component[component_type].content;
|
||||
component_content[0] = '\0';
|
||||
component_buf_size = PV_SIZEOF_COMPONENT_STR;
|
||||
|
||||
@@ -879,8 +882,8 @@ bool pv_format(pvstate_t state, bool final)
|
||||
case PV_COMPONENT_ETA:
|
||||
/* Estimated time remaining until completion - if size is known. */
|
||||
eta =
|
||||
pv__seconds_remaining((state->transfer.transferred - state->display.initial_offset),
|
||||
state->control.size - state->display.initial_offset,
|
||||
pv__seconds_remaining((state->transfer.transferred - display->initial_offset),
|
||||
state->control.size - display->initial_offset,
|
||||
state->calc.current_avg_rate);
|
||||
|
||||
/*
|
||||
@@ -934,8 +937,8 @@ bool pv_format(pvstate_t state, bool final)
|
||||
*/
|
||||
|
||||
eta =
|
||||
pv__seconds_remaining(state->transfer.transferred - state->display.initial_offset,
|
||||
state->control.size - state->display.initial_offset,
|
||||
pv__seconds_remaining(state->transfer.transferred - display->initial_offset,
|
||||
state->control.size - display->initial_offset,
|
||||
state->calc.current_avg_rate);
|
||||
|
||||
/*
|
||||
@@ -1012,9 +1015,9 @@ bool pv_format(pvstate_t state, bool final)
|
||||
|
||||
case PV_COMPONENT_OUTPUTBUF:
|
||||
/* Recently transferred bytes. */
|
||||
for (buf_idx = 0; buf_idx < state->display.lastoutput_length; buf_idx++) {
|
||||
for (buf_idx = 0; buf_idx < display->lastoutput_length; buf_idx++) {
|
||||
int display_char;
|
||||
display_char = (int) (state->display.lastoutput_buffer[buf_idx]);
|
||||
display_char = (int) (display->lastoutput_buffer[buf_idx]);
|
||||
component_content[buf_idx] = isprint(display_char) ? (char) display_char : '.';
|
||||
}
|
||||
component_content[buf_idx] = '\0';
|
||||
@@ -1025,7 +1028,7 @@ bool pv_format(pvstate_t state, bool final)
|
||||
}
|
||||
|
||||
/* Record the string length for this component. */
|
||||
state->display.component[component_type].length = strlen(component_content); /* flawfinder: ignore */
|
||||
display->component[component_type].length = strlen(component_content); /* flawfinder: ignore */
|
||||
/* flawfinder: always bounded by \0 either explicitly or by pv_snprintf(). */
|
||||
}
|
||||
|
||||
@@ -1036,11 +1039,11 @@ bool pv_format(pvstate_t state, bool final)
|
||||
* (i.e. the progress bar).
|
||||
*/
|
||||
static_portion_size = 0;
|
||||
for (segment = 0; segment < state->display.format_segment_count; segment++) {
|
||||
if (state->display.format[segment].type == PV_COMPONENT_STRING) {
|
||||
static_portion_size += state->display.format[segment].str_length;
|
||||
} else if (state->display.format[segment].type != PV_COMPONENT_PROGRESS) {
|
||||
static_portion_size += state->display.component[state->display.format[segment].type].length;
|
||||
for (segment = 0; segment < display->format_segment_count; segment++) {
|
||||
if (display->format[segment].type == PV_COMPONENT_STRING) {
|
||||
static_portion_size += display->format[segment].str_length;
|
||||
} else if (display->format[segment].type != PV_COMPONENT_PROGRESS) {
|
||||
static_portion_size += display->component[display->format[segment].type].length;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1049,13 +1052,13 @@ bool pv_format(pvstate_t state, bool final)
|
||||
/*
|
||||
* Assemble the progress bar now we know how big it should be.
|
||||
*/
|
||||
if (state->display.component[PV_COMPONENT_PROGRESS].required) {
|
||||
if (display->component[PV_COMPONENT_PROGRESS].required) {
|
||||
char *component_content;
|
||||
size_t component_buf_size;
|
||||
char after_bar[32]; /* flawfinder: ignore - only populated by pv_snprintf(). */
|
||||
int available_width, bar_length, pad_count;
|
||||
|
||||
component_content = state->display.component[PV_COMPONENT_PROGRESS].content;
|
||||
component_content = display->component[PV_COMPONENT_PROGRESS].content;
|
||||
component_content[0] = '\0';
|
||||
component_buf_size = PV_SIZEOF_COMPONENT_STR;
|
||||
|
||||
@@ -1179,16 +1182,16 @@ bool pv_format(pvstate_t state, bool final)
|
||||
}
|
||||
|
||||
/* Record the string length for this component. */
|
||||
state->display.component[PV_COMPONENT_PROGRESS].length = strlen(component_content); /* flawfinder: ignore */
|
||||
display->component[PV_COMPONENT_PROGRESS].length = strlen(component_content); /* flawfinder: ignore */
|
||||
/* flawfinder: always bounded with \0 by pv_strlcat(). */
|
||||
|
||||
/*
|
||||
* If the progress bar won't fit, drop it.
|
||||
*/
|
||||
if ((unsigned int) (state->display.component[PV_COMPONENT_PROGRESS].length + static_portion_size) >
|
||||
if ((unsigned int) (display->component[PV_COMPONENT_PROGRESS].length + static_portion_size) >
|
||||
state->control.width) {
|
||||
component_content[0] = '\0';
|
||||
state->display.component[PV_COMPONENT_PROGRESS].length = 0;
|
||||
display->component[PV_COMPONENT_PROGRESS].length = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1196,18 +1199,18 @@ bool pv_format(pvstate_t state, bool final)
|
||||
* We can now build the output string using the format structure.
|
||||
*/
|
||||
|
||||
memset(state->display.display_buffer, 0, state->display.display_buffer_size);
|
||||
memset(display->display_buffer, 0, display->display_buffer_size);
|
||||
new_display_string_len = 0;
|
||||
for (segment = 0; segment < state->display.format_segment_count; segment++) {
|
||||
for (segment = 0; segment < display->format_segment_count; segment++) {
|
||||
const char *segment_content;
|
||||
size_t segment_length;
|
||||
|
||||
if (state->display.format[segment].type == PV_COMPONENT_STRING) {
|
||||
segment_content = &(formatstr[state->display.format[segment].str_start]);
|
||||
segment_length = state->display.format[segment].str_length;
|
||||
if (display->format[segment].type == PV_COMPONENT_STRING) {
|
||||
segment_content = &(format_used[display->format[segment].str_start]);
|
||||
segment_length = display->format[segment].str_length;
|
||||
} else {
|
||||
segment_content = state->display.component[state->display.format[segment].type].content;
|
||||
segment_length = state->display.component[state->display.format[segment].type].length;
|
||||
segment_content = display->component[display->format[segment].type].content;
|
||||
segment_length = display->component[display->format[segment].type].length;
|
||||
}
|
||||
|
||||
/* Skip empty segments. */
|
||||
@@ -1218,8 +1221,8 @@ bool pv_format(pvstate_t state, bool final)
|
||||
* Truncate the segment if it would make the display string
|
||||
* overflow the buffer.
|
||||
*/
|
||||
if (segment_length + new_display_string_len > state->display.display_buffer_size - 2)
|
||||
segment_length = state->display.display_buffer_size - new_display_string_len - 2;
|
||||
if (segment_length + new_display_string_len > display->display_buffer_size - 2)
|
||||
segment_length = display->display_buffer_size - new_display_string_len - 2;
|
||||
if (segment_length < 1)
|
||||
break;
|
||||
|
||||
@@ -1228,7 +1231,7 @@ bool pv_format(pvstate_t state, bool final)
|
||||
break;
|
||||
|
||||
/* Append the segment to the output string. */
|
||||
strncat(state->display.display_buffer, segment_content, segment_length); /* flawfinder: ignore */
|
||||
strncat(display->display_buffer, segment_content, segment_length); /* flawfinder: ignore */
|
||||
/* flawfinder: length is checked above, and buffer is \0 terminated already. */
|
||||
|
||||
new_display_string_len += segment_length;
|
||||
@@ -1237,7 +1240,7 @@ bool pv_format(pvstate_t state, bool final)
|
||||
debug("%s: %d", "display string length counted by format segments", (int) new_display_string_len);
|
||||
|
||||
/* Recalculate display string length with strlen() in case of miscounting. */
|
||||
new_display_string_len = strlen(state->display.display_buffer); /* flawfinder: ignore */
|
||||
new_display_string_len = strlen(display->display_buffer); /* flawfinder: ignore */
|
||||
/* flawfinder: \0 terminated by memset() above and then by segment bounds checking. */
|
||||
debug("%s: %d", "display string length from strlen()", (int) new_display_string_len);
|
||||
|
||||
@@ -1245,12 +1248,12 @@ bool pv_format(pvstate_t state, bool final)
|
||||
* If the size of our output shrinks, we need to keep appending
|
||||
* spaces at the end, so that we don't leave dangling bits behind.
|
||||
*/
|
||||
if ((new_display_string_len < state->display.display_string_len)
|
||||
&& (state->control.width >= state->display.prev_screen_width)) {
|
||||
if ((new_display_string_len < display->display_string_len)
|
||||
&& (state->control.width >= display->prev_screen_width)) {
|
||||
char spaces[32]; /* flawfinder: ignore - terminated, bounded */
|
||||
int spaces_to_add;
|
||||
|
||||
spaces_to_add = (int) (state->display.display_string_len - new_display_string_len);
|
||||
spaces_to_add = (int) (display->display_string_len - new_display_string_len);
|
||||
/* Upper boundary on number of spaces */
|
||||
if (spaces_to_add > 15) {
|
||||
spaces_to_add = 15;
|
||||
@@ -1260,11 +1263,11 @@ bool pv_format(pvstate_t state, bool final)
|
||||
while (--spaces_to_add >= 0) {
|
||||
spaces[spaces_to_add] = ' ';
|
||||
}
|
||||
(void) pv_strlcat(state->display.display_buffer, spaces, state->display.display_buffer_size);
|
||||
(void) pv_strlcat(display->display_buffer, spaces, display->display_buffer_size);
|
||||
}
|
||||
|
||||
state->display.display_string_len = new_display_string_len;
|
||||
state->display.prev_screen_width = state->control.width;
|
||||
display->display_string_len = new_display_string_len;
|
||||
display->prev_screen_width = state->control.width;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1278,6 +1281,8 @@ bool pv_format(pvstate_t state, bool final)
|
||||
*/
|
||||
void pv_display(pvstate_t state, bool final)
|
||||
{
|
||||
bool reinitialise = false;
|
||||
|
||||
if (NULL == state)
|
||||
return;
|
||||
|
||||
@@ -1285,9 +1290,23 @@ void pv_display(pvstate_t state, bool final)
|
||||
|
||||
pv_calculate_transfer_rate(state, final);
|
||||
|
||||
if (!pv_format(state, final))
|
||||
/*
|
||||
* If the display options need reparsing, do so to generate new
|
||||
* formatting parameters.
|
||||
*/
|
||||
if (0 != state->flag.reparse_display) {
|
||||
reinitialise = true;
|
||||
state->flag.reparse_display = 0;
|
||||
}
|
||||
|
||||
if (!pv_format(state, state->control.format_string, &(state->display), reinitialise, final))
|
||||
return;
|
||||
|
||||
if (0 != state->control.extra_displays) {
|
||||
if (!pv_format(state, state->control.extra_format_string, &(state->extra_display), reinitialise, final))
|
||||
return;
|
||||
}
|
||||
|
||||
if (NULL == state->display.display_buffer)
|
||||
return;
|
||||
|
||||
@@ -1307,4 +1326,23 @@ void pv_display(pvstate_t state, bool final)
|
||||
}
|
||||
|
||||
debug("%s: [%s]", "display", state->display.display_buffer);
|
||||
|
||||
if ((0 != (PV_DISPLAY_WINDOWTITLE & state->control.extra_displays))
|
||||
&& (state->control.force || pv_in_foreground())
|
||||
&& (NULL != state->extra_display.display_buffer)
|
||||
) {
|
||||
pv_tty_write(state, "\e]2;", 4);
|
||||
pv_tty_write(state, state->extra_display.display_buffer, state->extra_display.display_string_len);
|
||||
pv_tty_write(state, "\e\\", 2);
|
||||
state->extra_display.display_visible = true;
|
||||
debug("%s: [%s]", "windowtitle display", state->extra_display.display_buffer);
|
||||
}
|
||||
|
||||
if ((0 != (PV_DISPLAY_PROCESSTITLE & state->control.extra_displays))
|
||||
&& (NULL != state->extra_display.display_buffer)
|
||||
) {
|
||||
setproctitle("%s", state->extra_display.display_buffer);
|
||||
state->extra_display.display_visible = true;
|
||||
debug("%s: [%s]", "processtitle display", state->extra_display.display_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Functions for setting the process title.
|
||||
*
|
||||
* Copyright 2024 Andrew Wood
|
||||
*
|
||||
* License GPLv3+: GNU GPL version 3 or later; see `docs/COPYING'.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "pv.h"
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if ! HAVE_SETPROCTITLE
|
||||
extern char **environ;
|
||||
|
||||
/*@null@*/ static char **base_argv = NULL;
|
||||
static size_t space_available = 0;
|
||||
|
||||
|
||||
/*
|
||||
* Assuming the environment comes after the command line arguments, we make
|
||||
* a duplicate of the environment array and all its values, so we can use
|
||||
* the space the environment used to occupy for the process title.
|
||||
*
|
||||
* The logic for this was derived from util-linux-ng.
|
||||
*/
|
||||
/*@-mustfreefresh@ */
|
||||
/*@-nullstate@ */
|
||||
void initproctitle(int argc, char **argv)
|
||||
{
|
||||
char **original_environment = environ;
|
||||
char **new_environment;
|
||||
size_t env_array_size, env_index;
|
||||
|
||||
/* Find the number of entries in the environment array. */
|
||||
for (env_array_size = 0; environ[env_array_size] != NULL; env_array_size++)
|
||||
continue;
|
||||
|
||||
/* Allocate a new environment array. */
|
||||
new_environment = (char **) malloc(sizeof(char *) * (env_array_size + 1));
|
||||
if (NULL == new_environment)
|
||||
return;
|
||||
|
||||
/* Duplicate the strings in the environment. */
|
||||
for (env_index = 0; original_environment[env_index] != NULL; env_index++) {
|
||||
new_environment[env_index] = pv_strdup(original_environment[env_index]);
|
||||
if (NULL == new_environment[env_index])
|
||||
return;
|
||||
}
|
||||
new_environment[env_index] = NULL;
|
||||
|
||||
base_argv = argv;
|
||||
|
||||
/* Work out how much room we have. */
|
||||
if (env_index > 0) {
|
||||
/* From argv[0] to the end of the last environment value. */
|
||||
space_available = (size_t)
|
||||
(original_environment[env_index - 1] + strlen(original_environment[env_index - 1]) - argv[0]); /* flawfinder: ignore */
|
||||
} else if (argc > 0) {
|
||||
/* No environment; from argv[0] to the end of the last argument. */
|
||||
space_available = (size_t) (argv[argc - 1] + strlen(argv[argc - 1]) - argv[0]); /* flawfinder: ignore */
|
||||
}
|
||||
|
||||
/*
|
||||
* flawfinder - we have to trust that the environment and argument
|
||||
* strings are null-terminated, since that's what the OS is supposed
|
||||
* to guarantee.
|
||||
*/
|
||||
|
||||
environ = new_environment;
|
||||
}
|
||||
|
||||
/*@+nullstate@ */
|
||||
/*@+mustfreefresh@ */
|
||||
|
||||
|
||||
/*
|
||||
* Set the process title visible to ps(1), by overwriting argv[0] with the
|
||||
* given printf() format string.
|
||||
*/
|
||||
void setproctitle(const char *format, ...)
|
||||
{
|
||||
char title[1024]; /* flawfinder: ignore */
|
||||
size_t length;
|
||||
va_list ap;
|
||||
|
||||
/* flawfinder - buffer is zeroed and users of it are bounded. */
|
||||
|
||||
if (NULL == base_argv)
|
||||
return;
|
||||
|
||||
memset(title, 0, sizeof(title));
|
||||
|
||||
va_start(ap, format);
|
||||
(void) vsnprintf(title, sizeof(title)-1, format, ap); /* flawfinder: ignore */
|
||||
va_end(ap);
|
||||
|
||||
/*
|
||||
* flawfinder - the format is explicitly caller-supplied. Callers
|
||||
* of this function are all passing fixed format strings and not
|
||||
* user-supplied formats.
|
||||
*/
|
||||
|
||||
length = strlen(title); /* flawfinder: ignore */
|
||||
/* flawfinder - we left a byte at the end to force null-termination. */
|
||||
|
||||
if (length > space_available - 2)
|
||||
length = space_available - 2;
|
||||
|
||||
(void) pv_snprintf(base_argv[0], space_available, "%s -- %s", PACKAGE_NAME, title);
|
||||
if (space_available > length)
|
||||
memset(base_argv[0] + length, 0, space_available - length);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -61,6 +61,9 @@ void pv_state_reset(pvstate_t state)
|
||||
state->display.initial_offset = 0;
|
||||
state->display.display_visible = false;
|
||||
|
||||
state->extra_display.initial_offset = 0;
|
||||
state->extra_display.display_visible = false;
|
||||
|
||||
/*
|
||||
* Explicitly set important floating point values to 0, as memset()
|
||||
* is not recommended for this.
|
||||
@@ -190,6 +193,10 @@ void pv_state_free(pvstate_t state)
|
||||
free(state->display.display_buffer);
|
||||
state->display.display_buffer = NULL;
|
||||
|
||||
if (NULL != state->extra_display.display_buffer)
|
||||
free(state->extra_display.display_buffer);
|
||||
state->extra_display.display_buffer = NULL;
|
||||
|
||||
if (NULL != state->control.name) {
|
||||
free(state->control.name);
|
||||
state->control.name = NULL;
|
||||
@@ -200,6 +207,11 @@ void pv_state_free(pvstate_t state)
|
||||
state->control.format_string = NULL;
|
||||
}
|
||||
|
||||
if (NULL != state->control.extra_format_string) {
|
||||
free(state->control.extra_format_string);
|
||||
state->control.extra_format_string = NULL;
|
||||
}
|
||||
|
||||
/*@-keeptrans@ */
|
||||
if (NULL != state->transfer.transfer_buffer)
|
||||
free(state->transfer.transfer_buffer);
|
||||
@@ -427,6 +439,57 @@ void pv_state_format_string_set(pvstate_t state, /*@null@ */ const char *val)
|
||||
state->control.format_string = pv_strdup(val);
|
||||
}
|
||||
|
||||
void pv_state_extra_display_set(pvstate_t state, /*@null@ */ const char *val)
|
||||
{
|
||||
const char *word_start;
|
||||
size_t offset;
|
||||
|
||||
if (NULL != state->control.extra_format_string) {
|
||||
free(state->control.extra_format_string);
|
||||
state->control.extra_format_string = NULL;
|
||||
}
|
||||
|
||||
state->control.extra_displays = 0;
|
||||
if (NULL == val)
|
||||
return;
|
||||
|
||||
word_start = val;
|
||||
while (NULL != word_start && '\0' != word_start[0]) {
|
||||
offset = 0;
|
||||
while ('\0' != word_start[offset] && ',' != word_start[offset] && ':' != word_start[offset])
|
||||
offset++;
|
||||
if (((11 == offset) && (0 == strncmp(word_start, "windowtitle", 11)))
|
||||
|| ((6 == offset) && (0 == strncmp(word_start, "window", 6)))
|
||||
) {
|
||||
debug("%s", "enabling windowtitle");
|
||||
state->control.extra_displays |= PV_DISPLAY_WINDOWTITLE;
|
||||
} else if (((12 == offset) && (0 == strncmp(word_start, "processtitle", 12)))
|
||||
|| ((9 == offset) && (0 == strncmp(word_start, "proctitle", 9)))
|
||||
|| ((7 == offset) && (0 == strncmp(word_start, "process", 7)))
|
||||
|| ((4 == offset) && (0 == strncmp(word_start, "proc", 4)))
|
||||
) {
|
||||
debug("%s", "enabling processtitle");
|
||||
state->control.extra_displays |= PV_DISPLAY_PROCESSTITLE;
|
||||
}
|
||||
switch (word_start[offset]) {
|
||||
case ',':
|
||||
offset++;
|
||||
break;
|
||||
case ':':
|
||||
offset++;
|
||||
debug("%s: [%s]", "setting extra_format_string", word_start + offset);
|
||||
state->control.extra_format_string = pv_strdup(word_start + offset);
|
||||
word_start = NULL;
|
||||
break;
|
||||
default:
|
||||
word_start = NULL;
|
||||
break;
|
||||
}
|
||||
if (NULL != word_start)
|
||||
word_start += offset;
|
||||
}
|
||||
}
|
||||
|
||||
void pv_state_watch_pid_set(pvstate_t state, pid_t val)
|
||||
{
|
||||
state->control.watch_pid = val;
|
||||
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Run valgrind's memory checker against a process that sets is process
|
||||
# title.
|
||||
|
||||
true "${sourcePath:?not set - call this from 'make check'}"
|
||||
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'}"
|
||||
true "${workFile4:?not set - call this from 'make check'}"
|
||||
|
||||
# Load the valgrind function.
|
||||
. "${sourcePath}/tests/run-valgrind.sh"
|
||||
|
||||
# Without an extra format string.
|
||||
(dd if=/dev/zero bs=100 count=1 2>/dev/null;
|
||||
sleep 1;
|
||||
dd if=/dev/zero bs=110 count=1 2>/dev/null;
|
||||
sleep 1;
|
||||
) | { runWithValgrind -f -i 0.5 -a -x processtitle >/dev/null 2>"${workFile1}"; } 4>&1 || exit 1
|
||||
|
||||
# With an extra format string.
|
||||
(dd if=/dev/zero bs=100 count=1 2>/dev/null;
|
||||
sleep 1;
|
||||
dd if=/dev/zero bs=110 count=1 2>/dev/null;
|
||||
sleep 1;
|
||||
) | { runWithValgrind -f -i 0.5 -a -x 'processtitle:%t %b' >/dev/null 2>"${workFile1}"; } 4>&1 || exit 1
|
||||
|
||||
exit 0
|
||||
+14
-1
@@ -23,6 +23,7 @@ valgrindOutputFile="valgrind.out"
|
||||
|
||||
true "${testSubject:?not set - call this from 'make check'}"
|
||||
true "${workFile4:?not set - call this from 'make check'}"
|
||||
true "${workFile5:?not set - call this from 'make check'}"
|
||||
|
||||
if ! command -v valgrind >/dev/null 2>&1; then
|
||||
echo "test requires \`valgrind'"
|
||||
@@ -36,9 +37,21 @@ done
|
||||
|
||||
runWithValgrind () {
|
||||
|
||||
cat > "${workFile5}" <<EOF
|
||||
{
|
||||
ignore-initproctitle-leak
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:initproctitle
|
||||
fun:main
|
||||
}
|
||||
EOF
|
||||
|
||||
true > "${workFile4}"
|
||||
valgrind --tool=memcheck \
|
||||
--verbose --show-error-list=yes \
|
||||
--verbose \
|
||||
--show-error-list=yes \
|
||||
--suppressions="${workFile5}" \
|
||||
--log-file="${workFile4}" \
|
||||
--error-exitcode=125 \
|
||||
--track-fds=yes \
|
||||
|
||||
+3
-2
@@ -22,9 +22,10 @@ workFile1=$(mktemp 2>/dev/null) || workFile1="./.tmp1"
|
||||
workFile2=$(mktemp 2>/dev/null) || workFile2="./.tmp2"
|
||||
workFile3=$(mktemp 2>/dev/null) || workFile3="./.tmp3"
|
||||
workFile4=$(mktemp 2>/dev/null) || workFile4="./.tmp4"
|
||||
workFile5=$(mktemp 2>/dev/null) || workFile4="./.tmp5"
|
||||
|
||||
# Clean up the temporary files on exit, in case we are interrupted.
|
||||
trap 'rm -f "${workFile1}" "${workFile2}" "${workFile3}" "${workFile4}"' EXIT
|
||||
trap 'rm -f "${workFile1}" "${workFile2}" "${workFile3}" "${workFile4}" "${workFile5}"' EXIT
|
||||
|
||||
# Variables used by the test scripts.
|
||||
export testSubject sourcePath workFile1 workFile2 workFile3 workFile4
|
||||
export testSubject sourcePath workFile1 workFile2 workFile3 workFile4 workFile5
|
||||
|
||||
Reference in New Issue
Block a user