Skip to content

Commit

Permalink
shorthand next and prev and page number roll over
Browse files Browse the repository at this point in the history
  • Loading branch information
ctcl-bregis committed Dec 17, 2024
1 parent 15fabbd commit 79fc190
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions crates/hyfetch/src/bin/hyfetch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -572,15 +572,14 @@ fn create_config(
print_flag_page(&pages[usize::from(page)], page).context("failed to print flag page")?;

let mut opts: Vec<&str> = <Preset as VariantNames>::VARIANTS.into();
if page < num_pages.checked_sub(1).unwrap() {
opts.push("next");
}
if page > 0 {
opts.push("prev");
}
opts.push("next");
opts.push("n");
opts.push("prev");
opts.push("p");

writeln!(
io::stdout(),
"Enter 'next' to go to the next page and 'prev' to go to the previous page."
"Enter '[n]ext' to go to the next page and '[p]rev' to go to the previous page."
)
.context("failed to write message to stdout")?;
let selection = literal_input(
Expand All @@ -595,10 +594,18 @@ fn create_config(
)
.context("failed to ask for choice input")
.context("failed to select preset")?;
if selection == "next" {
page = page.checked_add(1).unwrap();
} else if selection == "prev" {
page = page.checked_sub(1).unwrap();
if selection == "next" || selection == "n" {
if page == num_pages.checked_sub(1).unwrap() {
page = 0
} else {
page = page.checked_add(1).unwrap();
}
} else if selection == "prev" || selection == "p" {
if page == 0 {
page = num_pages.checked_sub(1).unwrap();
} else {
page = page.checked_sub(1).unwrap();
}
} else {
preset = selection.parse().expect("selected preset should be valid");
debug!(?preset, "selected preset");
Expand Down

0 comments on commit 79fc190

Please sign in to comment.