#!/bin/bash # Given a decimal number start and end print all unicode codepoint. # If $3 is specified, it's used as the current column number. function print-decimal-unicode-range() { #local start="$1" #local end="$2" local originalSequence=("$@") #local continuedCount="$3" echo "1 is:" echo "${1}" #echo "2 is $2" #echo "3 is $3" local counter=0 # Paramater substitution: use zero if not set #local count="${continuedCount:-0}" #echo "count is $count" # Use alternating colors to see which symbols extend out of the bounding # box. #local bgColor='\033[48;2;54;11;0m' #local alternateBgColor='\033[48;2;0;54;11m' local bgColorBorder='\033[48;5;8m' local bgColorCode='\033[48;5;246m' local alternateBgColorCode='\033[48;5;240m' local bgColorChar='\033[48;5;66m' local alternateBgColorChar='\033[48;5;60m' local underline='\033[4m' #local bgColor='\e[48;5;124m%03d' #local alternateBgColor='\e[48;5;202m%03d' local currentColorCode="${bgColorCode}" local currentColorChar="${bgColorChar}" local reset_color='\033[0m' #local allChars="${currentColor}" #local allCodes="${currentColor}" local allChars="" local allCodes="" local wrapAt=5 local topLine="${bgColorBorder}╔══════╦══════╦══════╦══════╦══════╗${reset_color}" local bottomLine="${bgColorBorder}╚══════╩══════╩══════╩══════╩══════╝${reset_color}" local line="${bgColorBorder}╠══════╬══════╬══════╬══════╬══════╣${reset_color}" local bar="${bgColorBorder}║${reset_color}" #local originalSequence=($(seq "${start}" "${end}")) local originalSequenceLength=${#originalSequence[@]} local leftoverSpaces=$((wrapAt - (originalSequenceLength % wrapAt))) #printf "\nleftover is %s\n" "$leftoverSpaces" # add fillers to array to maintain table: if [[ "$leftoverSpaces" < "$wrapAt" ]]; then for i in $(seq 1 $leftoverSpaces); do #printf "adding a leftover\n" originalSequence+=(0) done fi local sequenceLength=${#originalSequence[@]} #printf "orig seq len %s" "$originalSequenceLength" #printf "\n" #printf "leftover is %s" "$leftoverSpaces" #printf "\n" #printf "seq len %s" "$sequenceLength" #printf "\n" #exit #printf "hey" printf "$topLine\n" #printf "║" for decimalCode in "${originalSequence[@]}"; do local hexCode=$(printf '%x' "${decimalCode}") local code="${hexCode}" local char="\u${hexCode}" #echo "hexcode was $hexCode" #echo -e "char was ${char}" # fill in placeholder cells properly formatted: if [ "${char}" = "\u0" ]; then #echo "IN IF char was '$char'" char=" " code=" " #else #echo "IN ELSE char was '$char'" fi allCodes+="${currentColorCode} ${underline}${code}${reset_color}${currentColorCode} ${reset_color}$bar" allChars+="${currentColorChar} ${char} ${reset_color}$bar" #echo -e "\ncount was $count" counter=$((counter + 1)) count=$(( (count + 1) % wrapAt)) #echo -e "\ncount was $count" #echo -e "\nwrap was $wrapAt" #echo -e "\nwrap-1 was $((wrapAt - 1))" #leftoverSpaces=$((wrapAt - count)) if [[ $count -eq 0 ]]; then #printf "║" #echo -e "\ncount is at zero\n" #echo -e "\nleftoversSpaces is $leftoverSpaces\n" if [[ "${currentColorCode}" = "${alternateBgColorCode}" ]]; then currentColorCode="${bgColorCode}" currentColorChar="${bgColorChar}" else currentColorCode="${alternateBgColorCode}" currentColorChar="${alternateBgColorChar}" fi #allCodes+="${currentColor}" #allChars+="${currentColor}" printf "%b%b%b" "$bar" "$allCodes" "$reset_color" printf "\n" printf "%b%b%b" "$bar" "$allChars" "$reset_color" printf "\n" #printf "counter is %s" "$counter" if [ "$counter" != "$sequenceLength" ]; then printf "%b\n" "$line" fi allCodes="" allChars="" fi done printf "$bottomLine\n" # print left-overs: #leftoverSpaces=$((wrapAt - count)) # printf "${allCodes}${reset_color}" # printf "\n║${allChars}${reset_color}" # printf "\n" #printf "$bottomLine\n" #printf "count was %s" $count #printf "\nleftovers was %s" $leftoverSpaces #printf "${allChars}${reset_color}" } function print-unicode-ranges() { echo '' #local count=0 local arr=($@) local len=$# local combinedRanges=() #echo "len was $len" for ((j=0; j