From 498c09eb50f645576ef2ce103d7865a3119c24d9 Mon Sep 17 00:00:00 2001 From: Tarasov Aleksandr <55220741+arabianq@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:36:46 +0300 Subject: [PATCH] fix(gui): remove unwrap() calls in input handling to prevent potential panics (#72) Replaced `.chars().next().unwrap()` with `.chars().next().is_some_and(...)` in `chord_from_event` and `parse_chord` functions in `src/gui/input.rs`. This ensures that even if the string is empty, the application will not panic, adhering to the project's safety guidelines and resolving a potential security vulnerability. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- src/gui/input.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/input.rs b/src/gui/input.rs index e01917a..d0bef9f 100644 --- a/src/gui/input.rs +++ b/src/gui/input.rs @@ -9,7 +9,7 @@ use std::path::PathBuf; fn chord_from_event(modifiers: &Modifiers, key: &Key) -> Option { let key_name = key.name(); let is_valid = (key_name.len() == 1 - && key_name.chars().next().unwrap().is_ascii_alphanumeric()) + && key_name.chars().next().is_some_and(|c| c.is_ascii_alphanumeric())) || (key_name.starts_with('F') && key_name.len() > 1 && key_name[1..].chars().all(|c| c.is_ascii_digit())); @@ -60,7 +60,7 @@ pub fn parse_chord(chord: &str) -> Option<(Modifiers, Key)> { let key_name = parts[parts.len() - 1]; let is_valid = (key_name.len() == 1 - && key_name.chars().next().unwrap().is_ascii_alphanumeric()) + && key_name.chars().next().is_some_and(|c| c.is_ascii_alphanumeric())) || (key_name.starts_with('F') && key_name.len() > 1 && key_name[1..].chars().all(|c| c.is_ascii_digit()));