git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[GSoC Patch 0/2] add unicode support to git repo structure

From
K Jayatheerth <jayatheerthkulkarni2005@gmail.com>
Date
Aug 21, 2026, 13:53 UTC
Message-ID
<20260821135410.429698-1-jayatheerthkulkarni2005@gmail.com>

Currently, `git repo structure` always renders its table output using plain ASCII characters (`|`, `-`, `*`), regardless of the user's locale. This series introduces Unicode box-drawing characters (`│`, `├`, `─`, `┼`, `┤`) and bullet points (`•`) when a UTF-8 locale is detected, providing a cleaner and more visually distinct hierarchical output on modern terminals while gracefully falling back to the existing ASCII formatting otherwise.

Summary of changes:
- Patch 1 (gettext: fall back to env-derived charset when unset):
  Fixes an issue where `is_utf8_locale()` would leave `charset` unset (NULL)
  when `git_setup_gettext()` returns early upon missing the locale directory
  (such as in uninstalled development builds). Because `is_encoding_utf8(NULL)`
  defaults to 1, `is_utf8_locale()` would mistakenly report a UTF-8 locale
  even under non-UTF-8 environments like `LC_ALL=C`. This patch enables the
  environment-derived fallback (`LC_ALL`, `LC_CTYPE`, `LANG`) whenever `charset`
  is unset, regardless of `NO_GETTEXT`.
- Patch 2 (repo: add Unicode support for `repo structure` output):
  Updates `builtin/repo.c` (`stats_table_setup_structure()` and
  `stats_table_print_structure()`) to query `is_utf8_locale()` and emit
  Unicode box-drawing borders and bullets when running under a UTF-8 locale,
  falling back to ASCII when not in UTF-8. In `t/t1901-repo-structure.sh`,
  tests follow the established `t/lib-git-svn.sh` convention for discovering
  `GIT_TEST_UTF8_LOCALE` to define a `UTF8_LOCALE` test prerequisite, existing
  tests are pinned to `LC_ALL=C` to reliably test the ASCII fallback path,
  and new tests are added to verify the UTF-8 output rendering (including
  when running with a missing locale directory).
K Jayatheerth (2):
  gettext: fall back to env-derived charset when unset
  repo: add Unicode support for `repo structure` output
 builtin/repo.c            | 110 ++++++++++++++++-------------
 gettext.c                 |  32 +++++----
 t/t1901-repo-structure.sh | 141 +++++++++++++++++++++++++++++++++++++-
 3 files changed, 221 insertions(+), 62 deletions(-)
-- 
2.55.GIT
Next: K Jayatheerth
Message 1 of 7 in “add unicode support to git repo structure”
  1. 0/2 add unicode support to git repo structureK Jayatheerth, Aug 21, 2026
  2. 1/2 gettext: fall back to env-derived charset when unsetK Jayatheerth, Aug 21, 2026
  3. 2/2 repo: add Unicode support for `repo structure` outputK Jayatheerth, Aug 21, 2026
  4. Junio C HamanoAug 21, 2026
  5. Oswald BuddenhagenAug 23, 2026
  6. Junio C HamanoAug 23, 2026
  7. Tuomas AholaAug 23, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.