pr: -n repeats line numbers after a form feed
Maintainer thường phản hồi trong vòng 1 ngày
Một pull request liên quan đã được merge.
- #16170 của @1kailas — đã merge
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 78/100
Hướng nghiên cứu
Lỗi nằm ở get_pages trong src/uu/pr/src/pr.rs, khoảng dòng 1153-1156: nhánh form feed thêm một FileLine mà không tăng line_num, trong khi nhánh xuống dòng tăng biến này gần dòng 1183. Tái tạo bằng printf 'a\fb\nc\n' | target/debug/pr -T -n:1 sau khi chạy cargo build --locked -p uu_pr. Hoàn thành khi đầu ra là 1:a, 2:b, 3:c, khớp với GNU, và việc đánh số -n vẫn đúng khi có hoặc không có ký tự xuống dòng ở cuối, cũng như khi dùng -N10.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
pr -n does not advance the line counter when a form feed ends a line. The next line receives the same number, and later line numbers are too small.
Reproduced on Linux x86_64 (Debian 13), using uutils 0.13.0 from main at 43eb6205c20c551480057cdee98e6e7529cd984d, with LC_ALL=C LANG=C. GNU coreutils 9.12 (the reference package linked in CONTRIBUTING.md) and 9.7 both produce the expected result.
From the repository root:
cargo build --locked -p uu_pr
export LC_ALL=C LANG=C
printf 'a\fb\nc\n' | target/debug/pr -T -n:1
Actual output:
1:a
1:b
2:c
Expected output (GNU 9.12 and 9.7):
1:a
2:b
3:c
Both exit 0 with empty stderr. -T removes pagination, making the numbering difference visible without headers or page separators.
The problem also occurs without a trailing newline and with -N10. With a\fb\fc\n, all three lines receive number 1. As controls, a\nb\nc\n and a\n\fb\nc\n produce 1, 2, 3 in both implementations.
In get_pages, pr.rs:1153–1156, the form-feed branch pushes a FileLine without incrementing line_num. The newline branch increments it at line 1183.
No matching report was found in searches of open and closed issues and related PRs for pr numbering and form feeds. Existing #12313 and #14334 describe column formatting and page padding, rather than repeated line numbers.
- Ngôn ngữ chính
- Rust
- Star
- 24.3k
- Fork
- 2.1k
- Merge trung bình
- 2 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 396
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của uutils/coreutils
-
pr: -o/--indent does not pad the header lineCó thể đã có người làm @emirmrkaljevic đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
realpath: empty operand aborts with a garbled error instead of being reported as missingCó thể đã có người làm @emirmrkaljevic đã nhận hôm nay. Đang mởU - realpath
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Unhelpful manual page(s)Đang mở
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
nl: section delimiters reset --join-blank-lines groupingCó thể đã có người làm @coracoracora đã nhận 1 ngày trước. Đang mởU - nl
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
uutils/coreutils#16130 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
uniq: overflowing -f/-s/-w values with trailing garbage are silently acceptedCó thể đã có người làm @huuan26 đã nhận 3 ngày trước. Đang mởU - uniq
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của uutils/coreutils
Issue tương tự
-
rust_analyzer flycheck: no CLI way to enable clippy from `check.overrideCommand`Có thể đã có người làm @TrapsterDK đã nhận hôm nay. Đang mởneeds-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
bazelbuild/rules_rust#4392 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
🐞 bug 🧩 bevy_gantz_egui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
nannou-org/gantz#500 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature]: Fedora 45 repoĐang mởenhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
metasequoiaime/msime#10989 ·
Maintainer thường phản hồi trong vòng 1 ngày