diff --git a/po/cs.po b/po/cs.po index ce59008..915d86d 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "FIN" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "b" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "B" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "selhala alokace vyrovnávací paměti" diff --git a/po/de.po b/po/de.po index 3429842..0bbba59 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "Endzeit" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "b" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "B" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "Speicherzuweisung für den Puffer fehlgeschlagen" diff --git a/po/es.po b/po/es.po index 3b9ef9f..8e63ad2 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "" diff --git a/po/fr.po b/po/fr.po index 6007ace..931a35d 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "O/s" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "O" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "échec de l'allocation de mémoire tampon" diff --git a/po/pl.po b/po/pl.po index 1bf6369..23c7068 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "FIN" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "b" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "B" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "nie udało się zaalokować bufora" diff --git a/po/pt.po b/po/pt.po index 3a8c211..85f055a 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "erro alocando o buffer" diff --git a/po/ru.po b/po/ru.po index a4717a8..c5939b2 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "бит/с" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "/с" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "байт/с" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "ОЖИД" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "ЗАВЕРШ" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "бит" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "байт" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "не удалось выделить память для буфера" diff --git a/po/tr.po b/po/tr.po index 96d217c..8d2d2f7 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-08 17:31+0000\n" +"POT-Creation-Date: 2024-12-08 17:39+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:515 src/pv/display.c:894 src/pv/display.c:923 +#: src/pv/display.c:515 src/pv/display.c:893 src/pv/display.c:922 #: src/pv/loop.c:549 msgid "b/s" msgstr "b/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 msgid "/s" msgstr "/s" -#: src/pv/display.c:519 src/pv/display.c:898 src/pv/display.c:927 +#: src/pv/display.c:519 src/pv/display.c:897 src/pv/display.c:926 #: src/pv/loop.c:549 msgid "B/s" msgstr "B/s" -#: src/pv/display.c:771 src/pv/display.c:775 +#: src/pv/display.c:770 src/pv/display.c:774 msgid "ETA" msgstr "ETA" -#: src/pv/display.c:857 +#: src/pv/display.c:856 msgid "FIN" msgstr "FIN" -#: src/pv/display.c:953 +#: src/pv/display.c:952 msgid "b" msgstr "b" -#: src/pv/display.c:956 src/pv/transfer.c:594 +#: src/pv/display.c:955 src/pv/transfer.c:594 msgid "B" msgstr "B" -#: src/pv/display.c:1497 src/pv/transfer.c:1056 +#: src/pv/display.c:1495 src/pv/transfer.c:1056 msgid "buffer allocation failed" msgstr "arabellek tahsisi başarısız oldu" diff --git a/src/include/pv.h b/src/include/pv.h index e4f4fc0..035b360 100644 --- a/src/include/pv.h +++ b/src/include/pv.h @@ -115,6 +115,11 @@ extern size_t pv_strlcat(char *, const char *, size_t); */ /*@null@ */ /*@temp@ */ extern void *pv_memrchr(const void *, int, size_t); +/* + * Return the displayed width of a string. + */ +extern size_t pv_strwidth(const char *, size_t); + /* * Functions relating to elapsed time. */ diff --git a/src/pv/display.c b/src/pv/display.c index 0b8b3b5..5478d49 100644 --- a/src/pv/display.c +++ b/src/pv/display.c @@ -523,8 +523,7 @@ static size_t pv__format_progress_knownsize(pvstate_t state, pvdisplay_t display after_bar_bytes = strlen(after_bar); /* flawfinder: ignore */ /* flawfinder: always \0-terminated by pv_snprintf() and the earlier memset(). */ - /* TODO: calculate display width rather than just bytes */ - after_bar_width = after_bar_bytes; + after_bar_width = pv_strwidth(after_bar, after_bar_bytes); if (width < (after_bar_width + 2)) return 0; @@ -1386,9 +1385,8 @@ static void pv__format_init(pvstate_t state, /*@null@ */ const char *format_supp display->format[segment].offset = str_start; display->format[segment].bytes = str_bytes; + display->format[segment].width = pv_strwidth(&(display_format[str_start]), str_bytes); - /* TODO: calculate display width rather than just bytes */ - display->format[segment].width = str_bytes; } else { char dummy_buffer[4]; /* flawfinder: ignore - unused. */ @@ -1554,8 +1552,7 @@ bool pv_format(pvstate_t state, /*@null@ */ const char *format_supplied, pvdispl segment->width = 0; if (bytes_added > 0) { - /* TODO: calculate display width rather than just bytes */ - segment->width = bytes_added; + segment->width = pv_strwidth(&(display_segments[display_segment_offset]), bytes_added); } display_segment_offset += bytes_added; diff --git a/src/pv/string.c b/src/pv/string.c index 14381a6..2f11762 100644 --- a/src/pv/string.c +++ b/src/pv/string.c @@ -151,6 +151,7 @@ char *pv_strdup(const char *original) return duplicate; } + /* * Return a pointer to the last matching character in the buffer, or NULL if * not found. @@ -179,3 +180,17 @@ void *pv_memrchr(const void *buffer, int match, size_t length) return NULL; #endif } + + +/* + * Return the displayed width of a string. + */ +size_t pv_strwidth(const char *string, size_t bytes) +{ + if (NULL == string) + return 0; + if (0 == bytes) + return 0; + /* TODO: actually calculate displayed width rather than assuming. */ + return bytes; +}