Track the chosen size of format segments so that "%nA" can appear more than once, with different "n" values (#122).
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
### UNRELEASED
|
||||
|
||||
* *feature:* allow **--format** to include "%nA" more than once, with different "n" valeus (#122)
|
||||
* *fix:* add _configure_ script fallback for **--remote** check when cross-compiling (#120)
|
||||
* *fix:* allow **extra-display** to be changed by **--remote** (#123)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+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"
|
||||
@@ -403,37 +403,37 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "selhala alokace vyrovnávací paměti"
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+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"
|
||||
@@ -426,37 +426,37 @@ msgstr "yzafpnµm kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnµm KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "Speicherzuweisung für den Puffer fehlgeschlagen"
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
msgid "FIN"
|
||||
msgstr "Endzeit"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+0000\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -395,37 +395,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+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"
|
||||
@@ -430,37 +430,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "échec de l'allocation de mémoire tampon"
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "O"
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "O/s"
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
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-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+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"
|
||||
@@ -421,37 +421,37 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "nie udało się zaalokować bufora"
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
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-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+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"
|
||||
@@ -409,37 +409,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "erro alocando o buffer"
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
msgid "FIN"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: pv@ivarch.com\n"
|
||||
"POT-Creation-Date: 2024-12-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+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"
|
||||
@@ -404,37 +404,37 @@ msgstr ""
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr ""
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "не удалось выделить память для буфера"
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr "бит"
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "байт"
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "бит/с"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr "/с"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "байт/с"
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr "ОЖИД"
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
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-07 02:08+0000\n"
|
||||
"POT-Creation-Date: 2024-12-07 19:37+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"
|
||||
@@ -405,37 +405,37 @@ msgstr "yzafpnum kMGTPEZY"
|
||||
msgid "yzafpnum KMGTPEZY"
|
||||
msgstr "yzafpnum KMGTPEZY"
|
||||
|
||||
#: src/pv/display.c:681 src/pv/transfer.c:1011
|
||||
#: src/pv/display.c:686 src/pv/transfer.c:1011
|
||||
msgid "buffer allocation failed"
|
||||
msgstr "arabellek tahsisi başarısız oldu"
|
||||
|
||||
#: src/pv/display.c:810
|
||||
#: src/pv/display.c:815
|
||||
msgid "b"
|
||||
msgstr "b"
|
||||
|
||||
#: src/pv/display.c:813 src/pv/transfer.c:602
|
||||
#: src/pv/display.c:818 src/pv/transfer.c:602
|
||||
msgid "B"
|
||||
msgstr "B"
|
||||
|
||||
#: src/pv/display.c:857 src/pv/display.c:872 src/pv/display.c:1091
|
||||
#: src/pv/display.c:862 src/pv/display.c:877 src/pv/display.c:1099
|
||||
#: src/pv/loop.c:549
|
||||
msgid "b/s"
|
||||
msgstr "b/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
msgid "/s"
|
||||
msgstr "/s"
|
||||
|
||||
#: src/pv/display.c:861 src/pv/display.c:876 src/pv/display.c:1095
|
||||
#: src/pv/display.c:866 src/pv/display.c:881 src/pv/display.c:1103
|
||||
#: src/pv/loop.c:549
|
||||
msgid "B/s"
|
||||
msgstr "B/s"
|
||||
|
||||
#: src/pv/display.c:904 src/pv/display.c:908
|
||||
#: src/pv/display.c:909 src/pv/display.c:913
|
||||
msgid "ETA"
|
||||
msgstr "ETA"
|
||||
|
||||
#: src/pv/display.c:974
|
||||
#: src/pv/display.c:979
|
||||
msgid "FIN"
|
||||
msgstr "FIN"
|
||||
|
||||
|
||||
@@ -192,6 +192,7 @@ struct pvstate_s {
|
||||
struct { /* format string broken into display components */
|
||||
size_t str_start; /* for strings: start offset */
|
||||
size_t str_bytes; /* for strings: length in bytes */
|
||||
size_t chosen_size; /* "n" from %<n>A, or 0 */
|
||||
pv_display_component type; /* type of display component */
|
||||
} format[PV_FORMAT_ARRAY_MAX];
|
||||
|
||||
@@ -207,7 +208,7 @@ struct pvstate_s {
|
||||
size_t display_buffer_size; /* size allocated to display buffer */
|
||||
size_t display_string_len; /* length of string in display buffer */
|
||||
off_t initial_offset; /* offset when first opened (when watching fds) */
|
||||
size_t lastoutput_bytes; /* number of last-output bytes to show */
|
||||
size_t lastoutput_bytes; /* largest number of last-output bytes to show */
|
||||
|
||||
size_t format_segment_count; /* number of format string segments */
|
||||
|
||||
|
||||
+27
-4
@@ -477,7 +477,9 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp
|
||||
segment = 0;
|
||||
for (strpos = 0; format_used[strpos] != '\0' && segment < PV_FORMAT_ARRAY_MAX; strpos++, segment++) {
|
||||
pv_display_component seg_type;
|
||||
size_t str_start, str_bytes;
|
||||
size_t str_start, str_bytes, chosen_size;
|
||||
|
||||
chosen_size = 0;
|
||||
|
||||
if ('%' == format_used[strpos]) {
|
||||
unsigned long number_prefix;
|
||||
@@ -529,7 +531,9 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp
|
||||
number_prefix = PV_SIZEOF_LASTOUTPUT_BUFFER;
|
||||
if (number_prefix < 1)
|
||||
number_prefix = 1;
|
||||
display->lastoutput_bytes = (size_t) number_prefix;
|
||||
chosen_size = (size_t) number_prefix;
|
||||
if (display->lastoutput_bytes < chosen_size)
|
||||
display->lastoutput_bytes = chosen_size;
|
||||
break;
|
||||
case 'r':
|
||||
seg_type = PV_COMPONENT_RATE;
|
||||
@@ -590,6 +594,7 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp
|
||||
display->format[segment].type = seg_type;
|
||||
display->format[segment].str_start = str_start;
|
||||
display->format[segment].str_bytes = str_bytes;
|
||||
display->format[segment].chosen_size = chosen_size;
|
||||
display->format_segment_count++;
|
||||
}
|
||||
}
|
||||
@@ -1043,7 +1048,10 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
if (display->format[segment].type == PV_COMPONENT_STRING) {
|
||||
static_portion_size += display->format[segment].str_bytes;
|
||||
} else if (display->format[segment].type != PV_COMPONENT_PROGRESS) {
|
||||
static_portion_size += display->component[display->format[segment].type].bytes;
|
||||
size_t segment_width = display->format[segment].chosen_size;
|
||||
if (0 == segment_width)
|
||||
segment_width = display->component[display->format[segment].type].bytes;
|
||||
static_portion_size += segment_width;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1203,7 +1211,9 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
new_display_string_len = 0;
|
||||
for (segment = 0; segment < display->format_segment_count; segment++) {
|
||||
const char *segment_content;
|
||||
size_t segment_bytes;
|
||||
size_t segment_bytes, chosen_size;
|
||||
|
||||
chosen_size = display->format[segment].chosen_size;
|
||||
|
||||
if (display->format[segment].type == PV_COMPONENT_STRING) {
|
||||
segment_content = &(format_used[display->format[segment].str_start]);
|
||||
@@ -1211,6 +1221,19 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl
|
||||
} else {
|
||||
segment_content = display->component[display->format[segment].type].content;
|
||||
segment_bytes = display->component[display->format[segment].type].bytes;
|
||||
|
||||
/*
|
||||
* If the segment's chosen size is smaller than the
|
||||
* component, show only the last part of it. For
|
||||
* instance with "show N last output bytes" (%nA),
|
||||
* if one "n" was 16 and the other 8, then for the 8
|
||||
* one, we show the last 8 bytes of the 16-byte
|
||||
* buffer (issue #122).
|
||||
*/
|
||||
if (0 != chosen_size && chosen_size < segment_bytes) {
|
||||
segment_content += (segment_bytes - chosen_size);
|
||||
segment_bytes = chosen_size;
|
||||
}
|
||||
}
|
||||
|
||||
/* Skip empty segments. */
|
||||
|
||||
Reference in New Issue
Block a user