sdiff: fix the layout of unchanged rows, blank lines and cut tabs
维护者通常 1 天内回复
评估
调研方向
Work is already claimed by open PR 301. The issue names src/side_diff.rs and confines the change to process_half_line and push_output: print each half’s text, keep the column where output stopped, and pad from that column to the marker and to column two. Compare against GNU diff -y with --width and --expand-tabs using the given L/R examples; done when unchanged rows, blank lines, and cut tabs match GNU layout.
由索引模型根据 Issue 内容生成。
描述
src/side_diff.rs pads the left half up to a fixed column and writes the right half after it, instead of padding from the column where the text ended. Three rows come out different from GNU diff:
- The right half of an unchanged row starts at
half_width + 3instead of column two. The two are the same at the default--width=130, so it only shows at other widths and with--expand-tabs. - A blank line common to both files is padded up to column two instead of left empty.
- A tab that reaches the end of the half is dropped, and the text after it is still printed. GNU diff cuts the row at that tab.
Tabs are shown as ^I and line ends as $:
$ diff -y --width=40 L R | cat -A # L: a,(blank),b,c R: a,(blank),c
a^I^I a$
^I^I $
b^I^I <$
c^I^I c$
$ diff -y --width=10 L R | cat -A # L: a<TAB>b,c R: c
ab <$
c c$
GNU diff 3.10 prints:
a^I^I^Ia$
$
b^I^I <$
c^I^I^Ic$
a <$
c^Ic$
So the change is confined to process_half_line and push_output. Print only the text of each half, keep the column where the output stopped, and pad from that column to the marker and to column two.
- 主要语言
- Rust
- 星标
- 276
- 派生
- 43
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 8
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
uutils/diffutils 的其他 Issue
-
cmp: quiet mode compares full file sizes before applying -n可能已有人在做 @SichenLiang 于 6 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
diff: `-y --tabsize=<huge>` overflows the column arithmetic (overflow-checks only)可能已有人在做 @sami-daniel 于 57 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
diff panics on an oversized inline context count (`-c`/`-u`/`-C`/`-U`): parse overflow and capacity overflow可能已有人在做 @MsfPablo 于 53 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
uutils/diffutils#245 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 35/100
维护者通常 1 天内回复
相似的 Issue
-
[Feature]: [P3] engine-rs: the package source hash should ignore line endings and untracked files未关闭
难度 2/5 1-3 小时 新手友好度 70/100
maniator/verticopolis#880 ·
维护者通常 1 天内回复
-
IO.get_env on Node truncates names at embedded NUL可能已有人在做 @Yi-111-a 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
HigherOrderCO/Bend#1449 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
documentation
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复