From fd9af97e00d3bd8f6a76a85dc5dcf23f56d90845 Mon Sep 17 00:00:00 2001 From: Takayuki 'January June' Suwa Date: Tue, 17 May 2022 22:48:30 +0900 Subject: [PATCH] tools/sizes.py: Change Unicode box-drawing chars to that of double version (#8573) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Due to historical circumstances, some of light/heavy version of Unicode box-drawing chars may have twice width of others (aka. "Zen-Kaku" in Japanese, means full-square), eg. All of '─'(U+2500), '│'(U+2502), '└'(U+2514) and '├'(U+251C) correspond to that in Windows Japanese fonts and locale. Double versions, '═'(U+2550), '║'(U+2551), '╚'(U+255A) and '╠'(U+2560) are not like that. (See [Box Drawing, The Unicode Standard](https://www.unicode.org/charts/PDF/U2500.pdf)) --- tools/sizes.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/sizes.py b/tools/sizes.py index ee7219161..da57719a9 100755 --- a/tools/sizes.py +++ b/tools/sizes.py @@ -110,9 +110,9 @@ def safe_prefix(n, length): def prefix(n, length): if n == length: - return "└──" + return "╚══" - return "├──" + return "╠══" def filter_segments(segments): @@ -159,7 +159,10 @@ def main(): number, used, segments = filter_segments(segments) print(f". {group:<8}, used {used} / {total} bytes ({percentage(used, total)})") - print("| SEGMENT BYTES DESCRIPTION") + try: + print("║ SEGMENT BYTES DESCRIPTION") + except UnicodeEncodeError: + print("| SEGMENT BYTES DESCRIPTION") for n, segment, size in segments: try: print(f"{prefix(n, number)} ", end="")