Skip to content

Commit

Permalink
[PR] #372 from ctcl-bregis: n/p for next/previous shorthand
Browse files Browse the repository at this point in the history
One-letter page selection and page number roll over on Rust version
  • Loading branch information
hykilpikonna authored Dec 22, 2024
2 parents 15fabbd + 79fc190 commit 916f727
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 916f727

Please sign in to comment.