sort --debug: key underlines are misaligned with control and multibyte characters
维护者通常 1 天内回复
评估
调研方向
Start with the sort --debug implementation and the sort-debug-keys test in test_sort.rs; compare the annotation widths for control characters and multibyte characters under C and UTF-8 locales. The issue points to EXPECTED_DEBUG_KEY_ANNOTATION_LOCALE and LOCALE_FR_UTF8 as relevant test references. Done means debug underlines and indents match display-column behavior; an open linked pull request (#16079) already addresses this issue.
由索引模型根据 Issue 内容生成。
描述
sort --debug measures the key underline and its indent in bytes (ignoring only NUL). GNU measures them in display columns: control characters take no column, the tab (printed as >) takes one, and in a UTF-8 locale each character takes its display width.
$ printf 'a\x01b\n' | LC_ALL=C sort --debug 2>/dev/null
a^Ab
__ # GNU
___ # uutils
$ printf 'é日 b\n' | LC_ALL=en_US.UTF-8 sort --debug -k2 -k1,1 2>/dev/null
é日 b
__ # GNU: indent 3 (é=1, 日=2)
___
_____
# uutils counts bytes: the key-2 underline is indented 5,
# and the next two underlines are 5 and 7 wide
The UTF-8 case is what GNU's sort-debug-keys test expects for 1² in fr_FR.UTF-8 (EXPECTED_DEBUG_KEY_ANNOTATION_LOCALE in test_sort.rs has a 23-wide underline where the C locale has 24). That test only runs when LOCALE_FR_UTF8 is set.
Checked on uutils main 824cdb271 against GNU coreutils 8.32.
- 主要语言
- Rust
- 星标
- 24.3k
- 派生
- 2.1k
- 平均合并
- 2 天 6 小时
- 30 天内合并 PR
- 399
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
uutils/coreutils 的其他 Issue
-
难度 2/5 半天 新手友好度 62/100
维护者通常 1 天内回复
-
nl: section delimiters reset --join-blank-lines grouping可能已有人在做 @coracoracora 今天认领。 未关闭U - nl
难度 2/5 1-3 小时 新手友好度 74/100
uutils/coreutils#16130 · 1 条评论 ·
维护者通常 1 天内回复
-
uniq: overflowing -f/-s/-w values with trailing garbage are silently accepted可能已有人在做 @huuan26 于 2 天前认领。 未关闭U - uniq
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 72/100
维护者通常 1 天内回复
-
fold: tab after an 8 KiB buffer flush exceeds the requested width可能已有人在做 @gibkim 于 3 天前认领。 未关闭U - fold
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 77/100
near/near-sdk-rs#1676 ·
维护者通常 2 天内回复
-
auto:producer auto:security
难度 2/5 1-3 小时 新手友好度 66/100
fritzprix/libr-agent#2595 ·
维护者通常 1 天内回复
-
area:fs type:fix
难度 2/5 1-3 小时 新手友好度 76/100
Tripstack-Corp/spyc#1002 ·
维护者通常 1 天内回复
-
github_actions security
难度 2/5 1-3 小时 新手友好度 85/100
dekobon/big-code-analysis#1815 ·
维护者通常 1 天内回复
-
[Detail Bug] Request logs can be forged via control characters in fetch object keys (log injection)未关闭
难度 2/5 1-3 小时 新手友好度 82/100
s2-streamstore/cachey#211 ·
维护者通常 1 天内回复