From 4e7422c4782c68805c9fabe069d688b4545f6a0a Mon Sep 17 00:00:00 2001 From: deadvey Date: Sun, 12 Jan 2025 02:19:05 +0000 Subject: [PATCH] made code a bit safer, harder to crash --- .gitignore | 2 ++ src/.main.rs.swp | Bin 0 -> 24576 bytes src/main.rs | 27 ++++++++++++++++++++------- 3 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 .gitignore create mode 100644 src/.main.rs.swp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa8d85a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +Cargo.lock +target diff --git a/src/.main.rs.swp b/src/.main.rs.swp new file mode 100644 index 0000000000000000000000000000000000000000..ff1a7bb84e7450360113fcd6c47fa5edab196fa9 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/src/main.rs b/src/main.rs index 7c682c4..e735c58 100644 --- a/src/main.rs +++ b/src/main.rs @@ -245,12 +245,14 @@ fn main() { // 'previous // host' let mut load_page: bool = true; + let mut links: Vec = Vec::new(); + 'mainloop: loop { - let mut links: Vec = Vec::new(); if load_page { + links = Vec::new(); links = render_page(host.clone(), port.clone(), path.clone()); - println!("Enter reference number to follow, h for help, or q to quit"); + println!("Enter reference number to follow, h for help, or q to quit "); } load_page = true; @@ -268,14 +270,25 @@ fn main() { } else if link_to_follow.chars().nth(0).unwrap() == 'o' { let number_str = &link_to_follow[1..]; - let number: usize = number_str.parse::().unwrap(); - println!("{}",links[number]); + if let Ok(number) = number_str.parse::() { + println!("{}", links[number]); + } else { + println!("error"); + } load_page = false; } else { - let number: usize = link_to_follow.parse::().unwrap(); - - (host, port, path) = parse_url(links[number].clone(), &host); + if let Ok(number) = link_to_follow.parse::() { + if number < links.len() { + (host, port, path) = parse_url(links[number].clone(), &host); + } else { + println!("Invalid reference id"); + load_page = false; + } + } else { + println!("Invalid input"); + load_page = false; + } } } }