mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
join: print unsorted line in error message
This expands the error message that is printed if either input file has an unsorted line. Both the program name (join) and the offending line are printed out with the message to match the behaviour of the GNU utility.
This commit is contained in:
parent
55a47f6fc0
commit
67878de379
2 changed files with 13 additions and 5 deletions
|
@ -235,6 +235,7 @@ impl Spec {
|
|||
|
||||
struct Line {
|
||||
fields: Vec<Vec<u8>>,
|
||||
string: Vec<u8>,
|
||||
}
|
||||
|
||||
impl Line {
|
||||
|
@ -247,10 +248,10 @@ impl Line {
|
|||
.map(Vec::from)
|
||||
.collect(),
|
||||
Sep::Char(sep) => string.split(|c| *c == sep).map(Vec::from).collect(),
|
||||
Sep::Line => vec![string],
|
||||
Sep::Line => vec![string.clone()],
|
||||
};
|
||||
|
||||
Line { fields }
|
||||
Line { fields, string }
|
||||
}
|
||||
|
||||
/// Get field at index.
|
||||
|
@ -444,9 +445,11 @@ impl<'a> State<'a> {
|
|||
|
||||
if diff == Ordering::Greater {
|
||||
eprintln!(
|
||||
"{}:{}: is not sorted",
|
||||
"{}: {}:{}: is not sorted: {}",
|
||||
uucore::execution_phrase(),
|
||||
self.file_name.maybe_quote(),
|
||||
self.line_num
|
||||
self.line_num,
|
||||
String::from_utf8_lossy(&line.string)
|
||||
);
|
||||
|
||||
// This is fatal if the check is enabled.
|
||||
|
|
|
@ -283,11 +283,16 @@ fn missing_format_fields() {
|
|||
|
||||
#[test]
|
||||
fn wrong_line_order() {
|
||||
let ts = TestScenario::new(util_name!());
|
||||
new_ucmd!()
|
||||
.arg("fields_2.txt")
|
||||
.arg("fields_4.txt")
|
||||
.fails()
|
||||
.stderr_is("fields_4.txt:5: is not sorted");
|
||||
.stderr_is(&format!(
|
||||
"{} {}: fields_4.txt:5: is not sorted: 11 g 5 gh",
|
||||
ts.bin_path.to_string_lossy(),
|
||||
ts.util_name
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue