1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

Merge pull request #5136 from shinhs0506/seq-neg-zero

seq: display -0
This commit is contained in:
Daniel Hofstetter 2023-08-07 15:11:06 +02:00 committed by GitHub
commit 2b69803450
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 16 deletions

View file

@ -65,11 +65,7 @@ impl Display for ExtendedBigInt {
Self::BigInt(n) => n.fmt(f),
Self::Infinity => f32::INFINITY.fmt(f),
Self::MinusInfinity => f32::NEG_INFINITY.fmt(f),
Self::MinusZero => {
// FIXME Come up with a way of formatting this with a
// "-" prefix.
0.fmt(f)
}
Self::MinusZero => "-0".fmt(f),
Self::Nan => "nan".fmt(f),
}
}
@ -206,13 +202,9 @@ mod tests {
#[test]
fn test_display() {
assert_eq!(format!("{}", ExtendedBigInt::BigInt(BigInt::zero())), "0");
assert_eq!(format!("{}", ExtendedBigInt::MinusZero), "-0");
assert_eq!(format!("{}", ExtendedBigInt::Infinity), "inf");
assert_eq!(format!("{}", ExtendedBigInt::MinusInfinity), "-inf");
assert_eq!(format!("{}", ExtendedBigInt::Nan), "nan");
// FIXME Come up with a way of displaying negative zero as
// "-0". Currently it displays as just "0".
//
// assert_eq!(format!("{}", ExtendedBigInt::MinusZero), "-0");
//
}
}

View file

@ -223,16 +223,13 @@ fn write_value_int(
value: &ExtendedBigInt,
width: usize,
pad: bool,
is_first_iteration: bool,
) -> std::io::Result<()> {
let value_as_str = if pad {
if *value == ExtendedBigInt::MinusZero && is_first_iteration {
format!("-{value:>0width$}", width = width - 1)
if *value == ExtendedBigInt::MinusZero {
format!("{value:0<width$}")
} else {
format!("{value:>0width$}")
}
} else if *value == ExtendedBigInt::MinusZero && is_first_iteration {
format!("-{value}")
} else {
format!("{value}")
};
@ -347,7 +344,7 @@ fn print_seq_integers(
exit(1);
}
}
None => write_value_int(&mut stdout, &value, padding, pad, is_first_iteration)?,
None => write_value_int(&mut stdout, &value, padding, pad)?,
}
// TODO Implement augmenting addition.
value = value + increment.clone();