diff --git a/src/crabcode b/src/crabcode index 0936be5..1ff4a78 100755 --- a/src/crabcode +++ b/src/crabcode @@ -71,6 +71,11 @@ command_exists() { command -v "$1" &>/dev/null } +# Treat "n" and "no" as explicit negative responses. +is_negative_response() { + [[ "$1" =~ ^[Nn]([Oo])?$ ]] +} + # ============================================================================= # Agent Abstraction Layer # ============================================================================= @@ -9469,13 +9474,13 @@ review_quick() { local sessions_dir=$(get_sessions_dir) if [ -d "$sessions_dir/$name" ]; then echo -e "${YELLOW}Review session already exists: $name${NC}" - read -p "Resume it? [Y/n] " resume - if [[ ! "$resume" =~ ^[Nn]$ ]]; then + read -r -p "Resume it? [Y/n] " resume + if ! is_negative_response "$resume"; then session_resume "$name" return fi - read -p "Start fresh? (deletes existing session) [Y/n] " fresh - if [[ "$fresh" =~ ^[Nn]$ ]]; then + read -r -p "Start fresh? (deletes existing session) [Y/n] " fresh + if is_negative_response "$fresh"; then return 1 fi rm -rf "$sessions_dir/$name" @@ -9599,13 +9604,13 @@ review_court() { local sessions_dir=$(get_sessions_dir) if [ -d "$sessions_dir/$name" ]; then echo -e "${YELLOW}Court review session already exists: $name${NC}" - read -p "Resume it? [Y/n] " resume - if [[ ! "$resume" =~ ^[Nn]$ ]]; then + read -r -p "Resume it? [Y/n] " resume + if ! is_negative_response "$resume"; then session_resume "$name" return fi - read -p "Start fresh? (deletes existing session) [Y/n] " fresh - if [[ "$fresh" =~ ^[Nn]$ ]]; then + read -r -p "Start fresh? (deletes existing session) [Y/n] " fresh + if is_negative_response "$fresh"; then return 1 fi rm -rf "$sessions_dir/$name"