From 0436631084cad581312b874c10cd33f29a74c63a Mon Sep 17 00:00:00 2001 From: desktop Date: Thu, 18 Jan 2024 00:10:53 +0300 Subject: [PATCH] Parse : Fix titlecase. --- .config/bash/module/Parse.sh | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/.config/bash/module/Parse.sh b/.config/bash/module/Parse.sh index 3aecbd3..589049b 100644 --- a/.config/bash/module/Parse.sh +++ b/.config/bash/module/Parse.sh @@ -113,21 +113,15 @@ function parse_uppercase() { # Usage: parse_titlecase function parse_titlecase() { local IFS=$'\n' - local parts=$(_parse_split ${*}) + local parts=($(_parse_split ${@})) local minors=("is" "at" "of" "to" "in" "for" "the" "a" "an" "and" "but" "or" "on" "was" "were" "been" "be" "do" "did" "does") - local is_first=true - for part in ${parts[@]}; do - if ${is_first}; then - echo -n "${part^}" - is_first=false - continue - fi - - if _contains $(echo ${part} | sed -e "s/[${_PARSE_SPLIT_CHARS}]//g") ${minors[@]}; then - echo -n "${part}" + echo -n "$(parse_sentencecase ${parts[0]})" + for part in ${parts[@]:1}; do + if _contains $(echo ${part,,} | sed -e "s/[${_PARSE_SPLIT_CHARS}]//g") ${minors[@]}; then + echo -n "${part,,}" else - echo -n "${part^}" + echo -n "$(parse_sentencecase ${part})" fi done