Change the formatter functions to take their 6 arguments as one struct pointer, making it less messy.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22: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"
|
||||
@@ -411,7 +411,7 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "selhala alokace vyrovnávací paměti"
|
||||
|
||||
@@ -443,34 +443,34 @@ msgstr "(žádný)"
|
||||
msgid "(stdin)"
|
||||
msgstr "(stdin)"
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22: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"
|
||||
@@ -434,7 +434,7 @@ msgstr "yzafpnµm kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnµm KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "Speicherzuweisung für den Puffer fehlgeschlagen"
|
||||
|
||||
@@ -466,34 +466,34 @@ msgstr "(keine)"
|
||||
msgid "(stdin)"
|
||||
msgstr "(stdin)"
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
msgstr "Endzeit"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22:09+0000\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -403,7 +403,7 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr ""
|
||||
|
||||
@@ -435,34 +435,34 @@ msgstr ""
|
||||
msgid "(stdin)"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22: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"
|
||||
@@ -438,7 +438,7 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "échec de l'allocation de mémoire tampon"
|
||||
|
||||
@@ -470,34 +470,34 @@ msgstr "(aucun)"
|
||||
msgid "(stdin)"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "O/s"
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr "O"
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -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-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22: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"
|
||||
@@ -429,7 +429,7 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "nie udało się zaalokować bufora"
|
||||
|
||||
@@ -462,34 +462,34 @@ msgstr "(brak)"
|
||||
msgid "(stdin)"
|
||||
msgstr "(stdin)"
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
|
||||
@@ -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-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22: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"
|
||||
@@ -417,7 +417,7 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "erro alocando o buffer"
|
||||
|
||||
@@ -449,34 +449,34 @@ msgstr ""
|
||||
msgid "(stdin)"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22: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"
|
||||
@@ -412,7 +412,7 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "не удалось выделить память для буфера"
|
||||
|
||||
@@ -444,34 +444,34 @@ msgstr "(нет)"
|
||||
msgid "(stdin)"
|
||||
msgstr "(стд. ввод)"
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "бит/с"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr "/с"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "байт/с"
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr "бит"
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr "байт"
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr "ОЖИД"
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
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-10 22:03+0000\n"
|
||||
"POT-Creation-Date: 2024-12-12 22: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"
|
||||
@@ -413,7 +413,7 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:891 src/pv/transfer.c:1056
|
||||
#: src/pv/display.c:914 src/pv/transfer.c:1056
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "arabellek tahsisi başarısız oldu"
|
||||
|
||||
@@ -445,34 +445,34 @@ msgstr "(yok)"
|
||||
msgid "(stdin)"
|
||||
msgstr "(stdin)"
|
||||
|
||||
#: src/pv/format/averagerate.c:31 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:33 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:30 src/pv/format/progressbar.c:59
|
||||
#: src/pv/format/rate.c:32 src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/format/averagerate.c:35 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:37 src/pv/loop.c:549
|
||||
#: src/pv/format/averagerate.c:34 src/pv/format/progressbar.c:63
|
||||
#: src/pv/format/rate.c:36 src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/format/bytes.c:32
|
||||
#: src/pv/format/bytes.c:31
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/format/bytes.c:35 src/pv/transfer.c:594
|
||||
#: src/pv/format/bytes.c:34 src/pv/transfer.c:594
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/format/eta.c:53 src/pv/format/eta.c:57
|
||||
#: src/pv/format/eta.c:52 src/pv/format/eta.c:56
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/format/fineta.c:81
|
||||
#: src/pv/format/fineta.c:80
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
|
||||
+28
-15
@@ -355,9 +355,22 @@ struct pvstate_s {
|
||||
typedef struct pvdisplay_s *pvdisplay_t;
|
||||
typedef struct pvdisplay_segment_s *pvdisplay_segment_t;
|
||||
|
||||
/*
|
||||
* Structure containing the parameters used by formatters.
|
||||
*/
|
||||
struct pvformatter_args_s {
|
||||
/*@dependent@*/ pvstate_t state; /* overall state */
|
||||
/*@dependent@*/ pvdisplay_t display; /* the display being updated */
|
||||
/*@dependent@*/ pvdisplay_segment_t segment; /* the segment of the display */
|
||||
/*@dependent@*/ char *buffer; /* buffer to write formatted segments into */
|
||||
size_t buffer_size; /* size of the buffer */
|
||||
size_t offset; /* current write position in the buffer */
|
||||
};
|
||||
typedef struct pvformatter_args_s *pvformatter_args_t;
|
||||
|
||||
|
||||
/* Pointer to a formatter function. */
|
||||
typedef size_t (*pvdisplay_formatter_t)(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
typedef size_t (*pvdisplay_formatter_t)(pvformatter_args_t);
|
||||
|
||||
|
||||
/*
|
||||
@@ -399,7 +412,7 @@ long pv_seconds_remaining(const off_t, const off_t, const long double);
|
||||
void pv_si_prefix(long double *, char *, const long double, pvtransfercount_t);
|
||||
void pv_describe_amount(char *, size_t, char *, long double, char *, char *, pvtransfercount_t);
|
||||
|
||||
size_t pv_formatter_segmentcontent(char *, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_segmentcontent(char *, pvformatter_args_t);
|
||||
|
||||
/*
|
||||
* Formatting functions.
|
||||
@@ -422,19 +435,19 @@ size_t pv_formatter_segmentcontent(char *, pvdisplay_segment_t, char *, size_t,
|
||||
* If called with a buffer size of 0, only the side effects occur (such as
|
||||
* setting flags like display->showing_timer).
|
||||
*/
|
||||
size_t pv_formatter_progress(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_progress_bar_only(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_progress_amount_only(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_timer(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_eta(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_fineta(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_rate(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_average_rate(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_bytes(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_buffer_percent(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_last_written(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_previous_line(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_name(pvstate_t, pvdisplay_t, pvdisplay_segment_t, char *, size_t, size_t);
|
||||
size_t pv_formatter_progress(pvformatter_args_t);
|
||||
size_t pv_formatter_progress_bar_only(pvformatter_args_t);
|
||||
size_t pv_formatter_progress_amount_only(pvformatter_args_t);
|
||||
size_t pv_formatter_timer(pvformatter_args_t);
|
||||
size_t pv_formatter_eta(pvformatter_args_t);
|
||||
size_t pv_formatter_fineta(pvformatter_args_t);
|
||||
size_t pv_formatter_rate(pvformatter_args_t);
|
||||
size_t pv_formatter_average_rate(pvformatter_args_t);
|
||||
size_t pv_formatter_bytes(pvformatter_args_t);
|
||||
size_t pv_formatter_buffer_percent(pvformatter_args_t);
|
||||
size_t pv_formatter_last_written(pvformatter_args_t);
|
||||
size_t pv_formatter_previous_line(pvformatter_args_t);
|
||||
size_t pv_formatter_name(pvformatter_args_t);
|
||||
|
||||
bool pv_format(pvstate_t, /*@null@*/ const char *, pvdisplay_t, bool, bool);
|
||||
void pv_display(pvstate_t, bool);
|
||||
|
||||
+46
-22
@@ -429,26 +429,25 @@ void pv_describe_amount(char *buffer, size_t bufsize, char *format,
|
||||
* updating the segment's offset and bytes values and returning the bytes
|
||||
* value, or treating the byte count as zero if there's insufficient space.
|
||||
*/
|
||||
size_t pv_formatter_segmentcontent(char *content, pvdisplay_segment_t segment, char *buffer, size_t buffer_size,
|
||||
size_t offset)
|
||||
size_t pv_formatter_segmentcontent(char *content, pvformatter_args_t formatter_info)
|
||||
{
|
||||
size_t bytes;
|
||||
|
||||
bytes = strlen(content); /* flawfinder: ignore */
|
||||
/* flawfinder - caller is required to null-terminate the string. */
|
||||
|
||||
if (offset >= buffer_size)
|
||||
if (formatter_info->offset >= formatter_info->buffer_size)
|
||||
bytes = 0;
|
||||
if ((offset + bytes) >= buffer_size)
|
||||
if ((formatter_info->offset + bytes) >= formatter_info->buffer_size)
|
||||
bytes = 0;
|
||||
|
||||
segment->offset = offset;
|
||||
segment->bytes = bytes;
|
||||
formatter_info->segment->offset = formatter_info->offset;
|
||||
formatter_info->segment->bytes = bytes;
|
||||
|
||||
if (0 == bytes)
|
||||
return 0;
|
||||
|
||||
memmove(buffer + offset, content, bytes);
|
||||
memmove(formatter_info->buffer + formatter_info->offset, content, bytes);
|
||||
|
||||
return bytes;
|
||||
}
|
||||
@@ -781,6 +780,7 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp
|
||||
|
||||
} else {
|
||||
char dummy_buffer[4]; /* flawfinder: ignore - unused. */
|
||||
struct pvformatter_args_s formatter_info;
|
||||
|
||||
display->format[segment].offset = 0;
|
||||
display->format[segment].bytes = 0;
|
||||
@@ -796,10 +796,26 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp
|
||||
* the previous line, or numeric mode knowing which
|
||||
* additional display options are enabled.
|
||||
*/
|
||||
memset(&formatter_info, 0, sizeof(formatter_info));
|
||||
dummy_buffer[0] = '\0';
|
||||
(void) format_component_array[component_type].function(state, display,
|
||||
&(display->format[segment]),
|
||||
dummy_buffer, 0, 0);
|
||||
|
||||
formatter_info.state = state;
|
||||
formatter_info.display = display;
|
||||
formatter_info.segment = &(display->format[segment]);
|
||||
formatter_info.buffer = dummy_buffer;
|
||||
formatter_info.buffer_size = 0;
|
||||
formatter_info.offset = 0;
|
||||
|
||||
/*@-compmempass@ */
|
||||
(void) format_component_array[component_type].function(&formatter_info);
|
||||
/*@+compmempass@ */
|
||||
/*
|
||||
* splint - the buffer we point formatter_info to is
|
||||
* on the stack so doesn't match the "dependent"
|
||||
* annotation, but there's no other appropriate
|
||||
* annotation that doesn't make splint think there's
|
||||
* a leak here.
|
||||
*/
|
||||
}
|
||||
|
||||
display->format_segment_count++;
|
||||
@@ -829,13 +845,14 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
{
|
||||
struct pvdisplay_component_s *format_component_array;
|
||||
char display_segments[1024]; /* flawfinder: ignore - always bounded */
|
||||
size_t display_segment_offset;
|
||||
size_t segment_idx, dynamic_segment_count;
|
||||
const char *display_format;
|
||||
size_t static_portion_width, dynamic_segment_width;
|
||||
size_t display_buffer_offset, display_buffer_remaining;
|
||||
size_t new_display_string_bytes, new_display_string_width;
|
||||
struct pvformatter_args_s formatter_info;
|
||||
|
||||
memset(&formatter_info, 0, sizeof(formatter_info));
|
||||
display_segments[0] = '\0';
|
||||
|
||||
/* Quick safety check - state and display must exist. */
|
||||
@@ -844,6 +861,12 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
if (NULL == display)
|
||||
return false;
|
||||
|
||||
formatter_info.state = state;
|
||||
formatter_info.display = display;
|
||||
formatter_info.buffer = display_segments;
|
||||
formatter_info.buffer_size = sizeof(display_segments);
|
||||
formatter_info.offset = 0;
|
||||
|
||||
format_component_array = pv__format_components();
|
||||
|
||||
/* Populate the display's "final" flag, for formatters. */
|
||||
@@ -911,8 +934,6 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
* output, in two passes.
|
||||
*/
|
||||
|
||||
display_segment_offset = 0;
|
||||
|
||||
/* First pass - all components with a fixed width. */
|
||||
|
||||
static_portion_width = 0;
|
||||
@@ -942,16 +963,17 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
|
||||
segment->width = segment->chosen_size;
|
||||
|
||||
bytes_added =
|
||||
component->function(state, display, segment, display_segments, sizeof(display_segments),
|
||||
display_segment_offset);
|
||||
formatter_info.segment = segment;
|
||||
/*@-compmempass@ */
|
||||
bytes_added = component->function(&formatter_info);
|
||||
/*@+compmempass@ *//* see previous ->function() note. */
|
||||
|
||||
segment->width = 0;
|
||||
if (bytes_added > 0) {
|
||||
segment->width = pv_strwidth(&(display_segments[display_segment_offset]), bytes_added);
|
||||
segment->width = pv_strwidth(&(display_segments[formatter_info.offset]), bytes_added);
|
||||
}
|
||||
|
||||
display_segment_offset += bytes_added;
|
||||
formatter_info.offset += bytes_added;
|
||||
static_portion_width += segment->width;
|
||||
}
|
||||
|
||||
@@ -990,11 +1012,13 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
continue;
|
||||
|
||||
segment->width = dynamic_segment_width;
|
||||
bytes_added =
|
||||
component->function(state, display, segment, display_segments, sizeof(display_segments),
|
||||
display_segment_offset);
|
||||
|
||||
display_segment_offset += bytes_added;
|
||||
formatter_info.segment = segment;
|
||||
/*@-compmempass@ */
|
||||
bytes_added = component->function(&formatter_info);
|
||||
/*@+compmempass@ *//* see earlier ->function() note. */
|
||||
|
||||
formatter_info.offset += bytes_added;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -14,27 +14,26 @@
|
||||
/*
|
||||
* Average transfer rate.
|
||||
*/
|
||||
size_t pv_formatter_average_rate(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment, char *buffer,
|
||||
size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_average_rate(pvformatter_args_t args)
|
||||
{
|
||||
char content[128]; /* flawfinder: ignore - always bounded */
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
/*@-mustfreefresh@ */
|
||||
if (state->control.bits && !state->control.linemode) {
|
||||
if (args->state->control.bits && !args->state->control.linemode) {
|
||||
/* bits per second */
|
||||
pv_describe_amount(content, sizeof(content),
|
||||
"(%s)", 8 * state->calc.average_rate, "", _("b/s"), display->count_type);
|
||||
"(%s)", 8 * args->state->calc.average_rate, "", _("b/s"), args->display->count_type);
|
||||
} else {
|
||||
/* bytes or lines per second */
|
||||
pv_describe_amount(content,
|
||||
sizeof(content), "(%s)", state->calc.average_rate, _("/s"), _("B/s"), display->count_type);
|
||||
sizeof(content), "(%s)", args->state->calc.average_rate, _("/s"), _("B/s"), args->display->count_type);
|
||||
}
|
||||
/*@+mustfreefresh@ *//* splint: see above. */
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
@@ -14,27 +14,26 @@
|
||||
/*
|
||||
* Percentage transfer buffer utilisation.
|
||||
*/
|
||||
size_t pv_formatter_buffer_percent(pvstate_t state, /*@unused@ */ __attribute__((unused)) pvdisplay_t display,
|
||||
pvdisplay_segment_t segment, char *buffer, size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_buffer_percent(pvformatter_args_t args)
|
||||
{
|
||||
char content[16]; /* flawfinder: ignore - always bounded */
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
if (state->transfer.buffer_size > 0) {
|
||||
if (args->state->transfer.buffer_size > 0) {
|
||||
int pct_used = pv_percentage((off_t)
|
||||
(state->transfer.read_position - state->transfer.write_position),
|
||||
(args->state->transfer.read_position - args->state->transfer.write_position),
|
||||
(off_t)
|
||||
(state->transfer.buffer_size));
|
||||
(args->state->transfer.buffer_size));
|
||||
(void) pv_snprintf(content, sizeof(content), "{%3d%%}", pct_used);
|
||||
}
|
||||
#ifdef HAVE_SPLICE
|
||||
if (state->transfer.splice_used)
|
||||
if (args->state->transfer.splice_used)
|
||||
(void) pv_snprintf(content, sizeof(content), "{%s}", "----");
|
||||
#endif
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
@@ -14,27 +14,26 @@
|
||||
/*
|
||||
* Number of bytes or lines transferred.
|
||||
*/
|
||||
size_t pv_formatter_bytes(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment, char *buffer,
|
||||
size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_bytes(pvformatter_args_t args)
|
||||
{
|
||||
char content[128]; /* flawfinder: ignore - always bounded */
|
||||
|
||||
display->showing_bytes = true;
|
||||
args->display->showing_bytes = true;
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
/*@-mustfreefresh@ */
|
||||
if (state->control.bits && !state->control.linemode) {
|
||||
if (args->state->control.bits && !args->state->control.linemode) {
|
||||
pv_describe_amount(content, sizeof(content), "%s",
|
||||
(long double) (state->transfer.transferred * 8), "", _("b"), display->count_type);
|
||||
(long double) (args->state->transfer.transferred * 8), "", _("b"), args->display->count_type);
|
||||
} else {
|
||||
pv_describe_amount(content, sizeof(content), "%s",
|
||||
(long double) (state->transfer.transferred), "", _("B"), display->count_type);
|
||||
(long double) (args->state->transfer.transferred), "", _("B"), args->display->count_type);
|
||||
}
|
||||
/*@+mustfreefresh@ *//* splint - false positive from gettext(). */
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
+7
-8
@@ -14,8 +14,7 @@
|
||||
/*
|
||||
* Estimated time until completion.
|
||||
*/
|
||||
size_t pv_formatter_eta(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment, char *buffer,
|
||||
size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_eta(pvformatter_args_t args)
|
||||
{
|
||||
char content[128]; /* flawfinder: ignore - always bounded */
|
||||
long eta;
|
||||
@@ -25,15 +24,15 @@ size_t pv_formatter_eta(pvstate_t state, pvdisplay_t display, pvdisplay_segment_
|
||||
/*
|
||||
* Don't try to calculate this if the size is not known.
|
||||
*/
|
||||
if (state->control.size < 1)
|
||||
if (args->state->control.size < 1)
|
||||
return 0;
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
eta =
|
||||
pv_seconds_remaining((state->transfer.transferred - display->initial_offset),
|
||||
state->control.size - display->initial_offset, state->calc.current_avg_rate);
|
||||
pv_seconds_remaining((args->state->transfer.transferred - args->display->initial_offset),
|
||||
args->state->control.size - args->display->initial_offset, args->state->calc.current_avg_rate);
|
||||
|
||||
/*
|
||||
* Bounds check, so we don't overrun the suffix buffer. This means
|
||||
@@ -62,12 +61,12 @@ size_t pv_formatter_eta(pvstate_t state, pvdisplay_t display, pvdisplay_segment_
|
||||
* If this is the final update, show a blank space where the ETA
|
||||
* used to be.
|
||||
*/
|
||||
if (display->final_update) {
|
||||
if (args->display->final_update) {
|
||||
size_t erase_idx;
|
||||
for (erase_idx = 0; erase_idx < sizeof(content) && content[erase_idx] != '\0'; erase_idx++) {
|
||||
content[erase_idx] = ' ';
|
||||
}
|
||||
}
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
@@ -18,8 +18,7 @@
|
||||
/*
|
||||
* Estimated local time of completion.
|
||||
*/
|
||||
size_t pv_formatter_fineta(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment, char *buffer,
|
||||
size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_fineta(pvformatter_args_t args)
|
||||
{
|
||||
char content[128]; /* flawfinder: ignore - always bounded */
|
||||
time_t now, then;
|
||||
@@ -33,10 +32,10 @@ size_t pv_formatter_fineta(pvstate_t state, pvdisplay_t display, pvdisplay_segme
|
||||
/*
|
||||
* Don't try to calculate this if the size is not known.
|
||||
*/
|
||||
if (state->control.size < 1)
|
||||
if (args->state->control.size < 1)
|
||||
return 0;
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
now = time(NULL);
|
||||
@@ -48,8 +47,8 @@ size_t pv_formatter_fineta(pvstate_t state, pvdisplay_t display, pvdisplay_segme
|
||||
* lookup.
|
||||
*/
|
||||
|
||||
eta = pv_seconds_remaining(state->transfer.transferred - display->initial_offset,
|
||||
state->control.size - display->initial_offset, state->calc.current_avg_rate);
|
||||
eta = pv_seconds_remaining(args->state->transfer.transferred - args->display->initial_offset,
|
||||
args->state->control.size - args->display->initial_offset, args->state->calc.current_avg_rate);
|
||||
|
||||
/* Bounds check - see pv_formatter_eta(). */
|
||||
eta = pv_bound_long(eta, 0, (long) 360000000L);
|
||||
@@ -92,5 +91,5 @@ size_t pv_formatter_fineta(pvstate_t state, pvdisplay_t display, pvdisplay_segme
|
||||
}
|
||||
}
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
+17
-19
@@ -14,42 +14,40 @@
|
||||
/*
|
||||
* Display the last few bytes written.
|
||||
*
|
||||
* As a side effect, this sets display->lastwritten_bytes to the segment's
|
||||
* chosen_size, if it was previously smaller than that.
|
||||
* As a side effect, this sets args->display->lastwritten_bytes to
|
||||
* the segment's chosen_size, if it was previously smaller than that.
|
||||
*/
|
||||
size_t pv_formatter_last_written( /*@unused@ */
|
||||
__attribute__((unused)) pvstate_t state, pvdisplay_t display,
|
||||
pvdisplay_segment_t segment, char *buffer, size_t buffer_size,
|
||||
size_t offset)
|
||||
size_t pv_formatter_last_written(pvformatter_args_t args)
|
||||
{
|
||||
size_t bytes_to_show, read_offset, remaining;
|
||||
size_t bytes_to_show, read_offset, write_offset, remaining;
|
||||
|
||||
display->showing_last_written = true;
|
||||
args->display->showing_last_written = true;
|
||||
|
||||
bytes_to_show = segment->chosen_size;
|
||||
bytes_to_show = args->segment->chosen_size;
|
||||
if (0 == bytes_to_show)
|
||||
bytes_to_show = segment->width;
|
||||
bytes_to_show = args->segment->width;
|
||||
if (0 == bytes_to_show)
|
||||
return 0;
|
||||
|
||||
if (bytes_to_show > PV_SIZEOF_LASTWRITTEN_BUFFER)
|
||||
bytes_to_show = PV_SIZEOF_LASTWRITTEN_BUFFER;
|
||||
if (bytes_to_show > display->lastwritten_bytes)
|
||||
display->lastwritten_bytes = bytes_to_show;
|
||||
if (bytes_to_show > args->display->lastwritten_bytes)
|
||||
args->display->lastwritten_bytes = bytes_to_show;
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
if (offset + bytes_to_show >= buffer_size)
|
||||
if (args->offset + bytes_to_show >= args->buffer_size)
|
||||
return 0;
|
||||
|
||||
segment->offset = offset;
|
||||
segment->bytes = bytes_to_show;
|
||||
args->segment->offset = args->offset;
|
||||
args->segment->bytes = bytes_to_show;
|
||||
|
||||
read_offset = display->lastwritten_bytes - bytes_to_show;
|
||||
read_offset = args->display->lastwritten_bytes - bytes_to_show;
|
||||
write_offset = args->offset;
|
||||
for (remaining = bytes_to_show; remaining > 0; remaining--) {
|
||||
char display_char = display->lastwritten_buffer[read_offset++];
|
||||
buffer[offset++] = pv_isprint(display_char) ? display_char : '.';
|
||||
char display_char = args->display->lastwritten_buffer[read_offset++];
|
||||
args->buffer[write_offset++] = pv_isprint(display_char) ? display_char : '.';
|
||||
}
|
||||
|
||||
return bytes_to_show;
|
||||
|
||||
@@ -16,17 +16,16 @@
|
||||
/*
|
||||
* Display the transfer's name.
|
||||
*/
|
||||
size_t pv_formatter_name(pvstate_t state, /*@unused@ */ __attribute__((unused)) pvdisplay_t display,
|
||||
pvdisplay_segment_t segment, char *buffer, size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_name(pvformatter_args_t args)
|
||||
{
|
||||
char string_format[32]; /* flawfinder: ignore - always bounded */
|
||||
char content[512]; /* flawfinder: ignore - always bounded */
|
||||
size_t field_width;
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
field_width = segment->chosen_size;
|
||||
field_width = args->segment->chosen_size;
|
||||
if (field_width < 1)
|
||||
field_width = 9;
|
||||
if (field_width > 500)
|
||||
@@ -36,9 +35,9 @@ size_t pv_formatter_name(pvstate_t state, /*@unused@ */ __attribute__((unused))
|
||||
(void) pv_snprintf(string_format, sizeof(string_format), "%%%d.500s:", field_width);
|
||||
|
||||
content[0] = '\0';
|
||||
if (state->control.name) {
|
||||
(void) pv_snprintf(content, sizeof(content), string_format, state->control.name);
|
||||
if (args->state->control.name) {
|
||||
(void) pv_snprintf(content, sizeof(content), string_format, args->state->control.name);
|
||||
}
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
@@ -14,37 +14,35 @@
|
||||
/*
|
||||
* Display the previously written line.
|
||||
*/
|
||||
size_t pv_formatter_previous_line( /*@unused@ */
|
||||
__attribute__((unused)) pvstate_t state, pvdisplay_t display,
|
||||
pvdisplay_segment_t segment, char *buffer, size_t buffer_size,
|
||||
size_t offset)
|
||||
size_t pv_formatter_previous_line(pvformatter_args_t args)
|
||||
{
|
||||
size_t bytes_to_show, read_offset, remaining;
|
||||
size_t bytes_to_show, read_offset, write_offset, remaining;
|
||||
|
||||
display->showing_previous_line = true;
|
||||
args->display->showing_previous_line = true;
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
bytes_to_show = segment->chosen_size;
|
||||
bytes_to_show = args->segment->chosen_size;
|
||||
if (0 == bytes_to_show)
|
||||
bytes_to_show = segment->width;
|
||||
bytes_to_show = args->segment->width;
|
||||
if (0 == bytes_to_show)
|
||||
return 0;
|
||||
|
||||
if (bytes_to_show > PV_SIZEOF_PREVLINE_BUFFER)
|
||||
bytes_to_show = PV_SIZEOF_PREVLINE_BUFFER;
|
||||
|
||||
if (offset + bytes_to_show >= buffer_size)
|
||||
if (args->offset + bytes_to_show >= args->buffer_size)
|
||||
return 0;
|
||||
|
||||
segment->offset = offset;
|
||||
segment->bytes = bytes_to_show;
|
||||
args->segment->offset = args->offset;
|
||||
args->segment->bytes = bytes_to_show;
|
||||
|
||||
read_offset = 0;
|
||||
write_offset = args->offset;
|
||||
for (remaining = bytes_to_show; remaining > 0; remaining--) {
|
||||
char display_char = display->previous_line[read_offset++];
|
||||
buffer[offset++] = pv_isprint(display_char) ? display_char : ' ';
|
||||
char display_char = args->display->previous_line[read_offset++];
|
||||
args->buffer[write_offset++] = pv_isprint(display_char) ? display_char : ' ';
|
||||
}
|
||||
|
||||
return bytes_to_show;
|
||||
|
||||
+17
-20
@@ -233,82 +233,79 @@ static size_t pv_formatter_progress_unknownsize(pvstate_t state, /*@unused@ */
|
||||
/*
|
||||
* Progress bar.
|
||||
*/
|
||||
size_t pv_formatter_progress(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment, char *buffer,
|
||||
size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_progress(pvformatter_args_t args)
|
||||
{
|
||||
char content[1024]; /* flawfinder: ignore - always bounded */
|
||||
size_t bytes;
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
if (state->control.size > 0 || state->control.rate_gauge) {
|
||||
if (args->state->control.size > 0 || args->state->control.rate_gauge) {
|
||||
/* Known size or rate gauge - bar with percentage. */
|
||||
bytes =
|
||||
pv_formatter_progress_knownsize(state, display, content, sizeof(content), segment->width, true, true,
|
||||
pv_formatter_progress_knownsize(args->state, args->display, content, sizeof(content), args->segment->width, true, true,
|
||||
true);
|
||||
} else {
|
||||
/* Unknown size - back-and-forth moving indicator. */
|
||||
bytes = pv_formatter_progress_unknownsize(state, display, content, sizeof(content), segment->width, true);
|
||||
bytes = pv_formatter_progress_unknownsize(args->state, args->display, content, sizeof(content), args->segment->width, true);
|
||||
}
|
||||
|
||||
content[bytes] = '\0';
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Progress bar, without sides and without a number afterwards.
|
||||
*/
|
||||
size_t pv_formatter_progress_bar_only(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment,
|
||||
char *buffer, size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_progress_bar_only(pvformatter_args_t args)
|
||||
{
|
||||
char content[1024]; /* flawfinder: ignore - always bounded */
|
||||
size_t bytes;
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
if (state->control.size > 0 || state->control.rate_gauge) {
|
||||
if (args->state->control.size > 0 || args->state->control.rate_gauge) {
|
||||
/* Known size or rate gauge - bar with percentage. */
|
||||
bytes =
|
||||
pv_formatter_progress_knownsize(state, display, content, sizeof(content), segment->width, false, true,
|
||||
pv_formatter_progress_knownsize(args->state, args->display, content, sizeof(content), args->segment->width, false, true,
|
||||
false);
|
||||
} else {
|
||||
/* Unknown size - back-and-forth moving indicator. */
|
||||
bytes =
|
||||
pv_formatter_progress_unknownsize(state, display, content, sizeof(content), segment->width, false);
|
||||
pv_formatter_progress_unknownsize(args->state, args->display, content, sizeof(content), args->segment->width, false);
|
||||
}
|
||||
|
||||
content[bytes] = '\0';
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* The number after the progress bar.
|
||||
*/
|
||||
size_t pv_formatter_progress_amount_only(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment,
|
||||
char *buffer, size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_progress_amount_only(pvformatter_args_t args)
|
||||
{
|
||||
char content[256]; /* flawfinder: ignore - always bounded */
|
||||
size_t bytes;
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
if (state->control.size > 0 || state->control.rate_gauge) {
|
||||
if (args->state->control.size > 0 || args->state->control.rate_gauge) {
|
||||
/* Known size or rate gauge - percentage or rate. */
|
||||
bytes =
|
||||
pv_formatter_progress_knownsize(state, display, content, sizeof(content), segment->width, false,
|
||||
pv_formatter_progress_knownsize(args->state, args->display, content, sizeof(content), args->segment->width, false,
|
||||
false, true);
|
||||
} else {
|
||||
/* Unknown size - no number. */
|
||||
@@ -317,5 +314,5 @@ size_t pv_formatter_progress_amount_only(pvstate_t state, pvdisplay_t display, p
|
||||
|
||||
content[bytes] = '\0';
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
@@ -14,29 +14,28 @@
|
||||
/*
|
||||
* Transfer rate.
|
||||
*/
|
||||
size_t pv_formatter_rate(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment, char *buffer,
|
||||
size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_rate(pvformatter_args_t args)
|
||||
{
|
||||
char content[128]; /* flawfinder: ignore - always bounded */
|
||||
|
||||
display->showing_rate = true;
|
||||
args->display->showing_rate = true;
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
/*@-mustfreefresh@ */
|
||||
if (state->control.bits && !state->control.linemode) {
|
||||
if (args->state->control.bits && !args->state->control.linemode) {
|
||||
/* bits per second */
|
||||
pv_describe_amount(content, sizeof(content), "[%s]",
|
||||
8 * state->calc.transfer_rate, "", _("b/s"), display->count_type);
|
||||
8 * args->state->calc.transfer_rate, "", _("b/s"), args->display->count_type);
|
||||
} else {
|
||||
/* bytes or lines per second */
|
||||
pv_describe_amount(content, sizeof(content),
|
||||
"[%s]", state->calc.transfer_rate, _("/s"), _("B/s"), display->count_type);
|
||||
"[%s]", args->state->calc.transfer_rate, _("/s"), _("B/s"), args->display->count_type);
|
||||
}
|
||||
/*@+mustfreefresh@ *//* splint: see above. */
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
+14
-15
@@ -14,16 +14,15 @@
|
||||
/*
|
||||
* Elapsed time.
|
||||
*/
|
||||
size_t pv_formatter_timer(pvstate_t state, pvdisplay_t display, pvdisplay_segment_t segment, char *buffer,
|
||||
size_t buffer_size, size_t offset)
|
||||
size_t pv_formatter_timer(pvformatter_args_t args)
|
||||
{
|
||||
char content[128]; /* flawfinder: ignore - always bounded */
|
||||
|
||||
display->showing_timer = true;
|
||||
args->display->showing_timer = true;
|
||||
|
||||
content[0] = '\0';
|
||||
|
||||
if (0 == buffer_size)
|
||||
if (0 == args->buffer_size)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
@@ -31,29 +30,29 @@ size_t pv_formatter_timer(pvstate_t state, pvdisplay_t display, pvdisplay_segmen
|
||||
* mean that the timer will stop at a 100,000 hours, but since
|
||||
* that's 11 years, it shouldn't be a problem.
|
||||
*/
|
||||
if (state->transfer.elapsed_seconds > (long double) 360000000.0L)
|
||||
state->transfer.elapsed_seconds = (long double) 360000000.0L;
|
||||
if (args->state->transfer.elapsed_seconds > (long double) 360000000.0L)
|
||||
args->state->transfer.elapsed_seconds = (long double) 360000000.0L;
|
||||
|
||||
/*
|
||||
* If the elapsed time is more than a day, include a day count as
|
||||
* well as hours, minutes, and seconds.
|
||||
*/
|
||||
if (state->transfer.elapsed_seconds > (long double) 86400.0L) {
|
||||
if (args->state->transfer.elapsed_seconds > (long double) 86400.0L) {
|
||||
(void) pv_snprintf(content,
|
||||
sizeof(content),
|
||||
"%ld:%02ld:%02ld:%02ld",
|
||||
((long) (state->transfer.elapsed_seconds)) / 86400,
|
||||
(((long) (state->transfer.elapsed_seconds)) / 3600) %
|
||||
24, (((long) (state->transfer.elapsed_seconds)) / 60) % 60,
|
||||
((long) (state->transfer.elapsed_seconds)) % 60);
|
||||
((long) (args->state->transfer.elapsed_seconds)) / 86400,
|
||||
(((long) (args->state->transfer.elapsed_seconds)) / 3600) %
|
||||
24, (((long) (args->state->transfer.elapsed_seconds)) / 60) % 60,
|
||||
((long) (args->state->transfer.elapsed_seconds)) % 60);
|
||||
} else {
|
||||
(void) pv_snprintf(content,
|
||||
sizeof(content),
|
||||
"%ld:%02ld:%02ld",
|
||||
((long) (state->transfer.elapsed_seconds)) / 3600,
|
||||
(((long) (state->transfer.elapsed_seconds)) / 60) % 60,
|
||||
((long) (state->transfer.elapsed_seconds)) % 60);
|
||||
((long) (args->state->transfer.elapsed_seconds)) / 3600,
|
||||
(((long) (args->state->transfer.elapsed_seconds)) / 60) % 60,
|
||||
((long) (args->state->transfer.elapsed_seconds)) % 60);
|
||||
}
|
||||
|
||||
return pv_formatter_segmentcontent(content, segment, buffer, buffer_size, offset);
|
||||
return pv_formatter_segmentcontent(content, args);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user