From 8adc869823fb59416f247e8ea911558b127ffe97 Mon Sep 17 00:00:00 2001 From: Pierre Ambroise Date: Wed, 27 Mar 2024 10:54:01 +0100 Subject: [PATCH 1/2] Fix TypeError on ProgressBar --- Helper/ProgressBar.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Helper/ProgressBar.php b/Helper/ProgressBar.php index f4eec051c..b406292b4 100644 --- a/Helper/ProgressBar.php +++ b/Helper/ProgressBar.php @@ -183,9 +183,9 @@ public function setMessage(string $message, string $name = 'message'): void $this->messages[$name] = $message; } - public function getMessage(string $name = 'message'): string + public function getMessage(string $name = 'message'): ?string { - return $this->messages[$name]; + return $this->messages[$name] ?? null; } public function getStartTime(): int From a2708a5da5c87d1d0d52937bdeac625df659e11f Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 29 Mar 2024 00:13:55 +0100 Subject: [PATCH 2/2] respect multi-byte characters when rendering vertical-style tables --- Helper/Table.php | 5 +++-- Tests/Helper/TableTest.php | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Helper/Table.php b/Helper/Table.php index 6aad9e95b..1f026dc50 100644 --- a/Helper/Table.php +++ b/Helper/Table.php @@ -371,8 +371,9 @@ public function render() if ($headers && !$containsColspan) { if (0 === $idx) { $rows[] = [sprintf( - '%s: %s', - str_pad($headers[$i] ?? '', $maxHeaderLength, ' ', \STR_PAD_LEFT), + '%s%s: %s', + str_repeat(' ', $maxHeaderLength - Helper::width(Helper::removeDecoration($formatter, $headers[$i] ?? ''))), + $headers[$i] ?? '', $part )]; } else { diff --git a/Tests/Helper/TableTest.php b/Tests/Helper/TableTest.php index 728ea847f..4af12e34c 100644 --- a/Tests/Helper/TableTest.php +++ b/Tests/Helper/TableTest.php @@ -1649,6 +1649,28 @@ public static function provideRenderVerticalTests(): \Traversable $books, ]; + yield 'With multibyte characters in some headers (the "í" in "Títle") and cells (the "í" in "Dívíne")' => [ + << [ <<