mirror of
https://github.com/atuinsh/atuin.git
synced 2024-11-22 00:03:49 +01:00
Do not crash if the history timestamp is in the future (#250)
Resolve #189 We were throwing an OutOfRangeError. This occurs when you attempt to convert to a duration, and your input is <0. A value in the future would have done this. This is especially noticeable during DST...
This commit is contained in:
parent
8d215060a1
commit
7fa3e1c0f4
@ -42,7 +42,16 @@ impl State {
|
||||
let duration: Vec<&str> = duration.split(' ').collect();
|
||||
|
||||
let ago = chrono::Utc::now().sub(h.timestamp);
|
||||
let ago = humantime::format_duration(ago.to_std().unwrap()).to_string();
|
||||
|
||||
// Account for the chance that h.timestamp is "in the future"
|
||||
// This would mean that "ago" is negative, and the unwrap here
|
||||
// would fail.
|
||||
// If the timestamp would otherwise be in the future, display
|
||||
// the time ago as 0.
|
||||
let ago = humantime::format_duration(
|
||||
ago.to_std().unwrap_or_else(|_| Duration::new(0, 0)),
|
||||
)
|
||||
.to_string();
|
||||
let ago: Vec<&str> = ago.split(' ').collect();
|
||||
|
||||
(
|
||||
|
Loading…
Reference in New Issue
Block a user