diff --git a/po/cs.po b/po/cs.po index 1d89375..253e4e3 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: pv@ivarch.com\n" -"POT-Creation-Date: 2024-12-07 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+0000\n" "PO-Revision-Date: 2024-10-13 20:43+0000\n" "Last-Translator: mmatous \n" "Language-Team: Czech \n" @@ -403,37 +403,37 @@ msgstr "yzafpnum kMGTPEZY" msgid "yzafpnum KMGTPEZY" msgstr "yzafpnum KMGTPEZY" -#: src/pv/display.c:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "selhala alokace vyrovnávací paměti" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "b" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "B" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "FIN" diff --git a/po/de.po b/po/de.po index eb0ceec..668a4dc 100644 --- a/po/de.po +++ b/po/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: pv@ivarch.com\n" -"POT-Creation-Date: 2024-12-07 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+0000\n" "PO-Revision-Date: 2024-10-13 20:43+0000\n" "Last-Translator: fnetX \n" "Language-Team: German \n" @@ -426,37 +426,37 @@ msgstr "yzafpnµm kMGTPEZY" msgid "yzafpnum KMGTPEZY" msgstr "yzafpnµm KMGTPEZY" -#: src/pv/display.c:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "Speicherzuweisung für den Puffer fehlgeschlagen" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "b" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "B" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "Endzeit" diff --git a/po/es.po b/po/es.po index 9e1d418..6c79528 100644 --- a/po/es.po +++ b/po/es.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: pv@ivarch.com\n" -"POT-Creation-Date: 2024-12-07 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+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:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "" diff --git a/po/fr.po b/po/fr.po index bbb0dc5..8372054 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: pv@ivarch.com\n" -"POT-Creation-Date: 2024-12-07 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+0000\n" "PO-Revision-Date: 2024-10-12 11:13+0000\n" "Last-Translator: a-j-wood \n" "Language-Team: French \n" @@ -430,37 +430,37 @@ msgstr "" msgid "yzafpnum KMGTPEZY" msgstr "" -#: src/pv/display.c:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "échec de l'allocation de mémoire tampon" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "O" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "O/s" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "" diff --git a/po/pl.po b/po/pl.po index 9973f6c..ccdb636 100644 --- a/po/pl.po +++ b/po/pl.po @@ -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 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+0000\n" "PO-Revision-Date: 2024-10-20 14:07+0000\n" "Last-Translator: coralpink \n" "Language-Team: Polish \n" @@ -421,37 +421,37 @@ msgstr "yzafpnum kMGTPEZY" msgid "yzafpnum KMGTPEZY" msgstr "yzafpnum KMGTPEZY" -#: src/pv/display.c:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "nie udało się zaalokować bufora" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "b" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "B" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "FIN" diff --git a/po/pt.po b/po/pt.po index 543e021..b6e6336 100644 --- a/po/pt.po +++ b/po/pt.po @@ -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 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -409,37 +409,37 @@ msgstr "" msgid "yzafpnum KMGTPEZY" msgstr "" -#: src/pv/display.c:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "erro alocando o buffer" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "" diff --git a/po/ru.po b/po/ru.po index c69eb17..dee14ca 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: pv@ivarch.com\n" -"POT-Creation-Date: 2024-12-07 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+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 \n" @@ -404,37 +404,37 @@ msgstr "" msgid "yzafpnum KMGTPEZY" msgstr "" -#: src/pv/display.c:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "не удалось выделить память для буфера" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "бит" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "байт" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "бит/с" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "/с" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "байт/с" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "ОЖИД" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "ЗАВЕРШ" diff --git a/po/tr.po b/po/tr.po index 791b5ce..a359597 100644 --- a/po/tr.po +++ b/po/tr.po @@ -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 23:06+0000\n" +"POT-Creation-Date: 2024-12-08 10:22+0000\n" "PO-Revision-Date: 2024-10-12 23:51+0000\n" "Last-Translator: a-j-wood \n" "Language-Team: Turkish \n" @@ -405,37 +405,37 @@ msgstr "yzafpnum kMGTPEZY" msgid "yzafpnum KMGTPEZY" msgstr "yzafpnum KMGTPEZY" -#: src/pv/display.c:693 src/pv/transfer.c:1064 +#: src/pv/display.c:698 src/pv/transfer.c:1064 msgid "buffer allocation failed" msgstr "arabellek tahsisi başarısız oldu" -#: src/pv/display.c:822 +#: src/pv/display.c:827 msgid "b" msgstr "b" -#: src/pv/display.c:825 src/pv/transfer.c:602 +#: src/pv/display.c:830 src/pv/transfer.c:602 msgid "B" msgstr "B" -#: src/pv/display.c:869 src/pv/display.c:884 src/pv/display.c:1139 +#: src/pv/display.c:874 src/pv/display.c:889 src/pv/display.c:1144 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 msgid "/s" msgstr "/s" -#: src/pv/display.c:873 src/pv/display.c:888 src/pv/display.c:1143 +#: src/pv/display.c:878 src/pv/display.c:893 src/pv/display.c:1148 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:916 src/pv/display.c:920 +#: src/pv/display.c:921 src/pv/display.c:925 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:986 +#: src/pv/display.c:991 msgid "FIN" msgstr "FIN" diff --git a/src/include/pv-internal.h b/src/include/pv-internal.h index da5139a..155f3a4 100644 --- a/src/include/pv-internal.h +++ b/src/include/pv-internal.h @@ -222,6 +222,8 @@ struct pvstate_s { size_t format_segment_count; /* number of format string segments */ unsigned int prev_screen_width; /* screen width last time we were called */ + bool tracking_last_output; /* set if displaying the last few bytes output */ + bool tracking_previous_line; /* set if displaying the previously output line */ bool display_visible; /* set once anything written to terminal */ } display; diff --git a/src/pv/display.c b/src/pv/display.c index f5efee7..b796614 100644 --- a/src/pv/display.c +++ b/src/pv/display.c @@ -443,6 +443,9 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp memset(display->format, 0, PV_FORMAT_ARRAY_MAX * sizeof(display->format[0])); memset(display->component, 0, PV_COMPONENT__MAX * sizeof(display->component[0])); + display->tracking_last_output = false; + display->tracking_previous_line = false; + if (state->control.name) { (void) pv_snprintf(display->component[PV_COMPONENT_NAME].content, PV_SIZEOF_COMPONENT_STR, "%9.500s:", state->control.name); @@ -535,12 +538,14 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp chosen_size = (size_t) number_prefix; if (display->lastoutput_bytes < chosen_size) display->lastoutput_bytes = chosen_size; + display->tracking_last_output = true; break; case 'L': seg_type = PV_COMPONENT_PREVLINE; if (number_prefix > PV_SIZEOF_PREVLINE_BUFFER) number_prefix = PV_SIZEOF_PREVLINE_BUFFER; chosen_size = (size_t) number_prefix; + display->tracking_previous_line = true; break; case 'r': seg_type = PV_COMPONENT_RATE; diff --git a/src/pv/transfer.c b/src/pv/transfer.c index 96d7165..ccbd303 100644 --- a/src/pv/transfer.c +++ b/src/pv/transfer.c @@ -722,7 +722,7 @@ static int pv__transfer_write(pvstate_t state, bool *eof_in, bool *eof_out, long if ((state->control.linemode) && (lineswritten != NULL)) tracking_lines = true; - else if (state->display.component[PV_COMPONENT_PREVLINE].required) + else if (state->display.tracking_previous_line) tracking_lines = true; /* @@ -772,7 +772,7 @@ static int pv__transfer_write(pvstate_t state, bool *eof_in, bool *eof_out, long * line ("%L"), add to our line * buffer. */ - if (state->display.component[PV_COMPONENT_PREVLINE].required + if (state->display.tracking_previous_line && state->display.next_line_len < PV_SIZEOF_PREVLINE_BUFFER - 1) { state->display.next_line[state->display.next_line_len] = *ptr; state->display.next_line_len++; @@ -789,7 +789,7 @@ static int pv__transfer_write(pvstate_t state, bool *eof_in, bool *eof_out, long * with the line we just completed, and * start a new one. */ - if (state->display.component[PV_COMPONENT_PREVLINE].required) { + if (state->display.tracking_previous_line) { memset(state->display.previous_line, 0, PV_SIZEOF_PREVLINE_BUFFER); if (state->display.next_line_len > PV_SIZEOF_PREVLINE_BUFFER - 1) state->display.next_line_len = PV_SIZEOF_PREVLINE_BUFFER - 1; @@ -840,7 +840,7 @@ static int pv__transfer_write(pvstate_t state, bool *eof_in, bool *eof_out, long * If we're monitoring the output, update our copy of the * last few bytes we've written. */ - if (state->display.component[PV_COMPONENT_OUTPUTBUF].required && (nwritten > 0)) { + if (state->display.tracking_last_output && (nwritten > 0)) { size_t new_portion_size, old_portion_size; new_portion_size = (size_t) nwritten;