Files
David Schroeder 741e2ad9e8 update
2026-07-28 20:41:57 -05:00

28 lines
434 B
Bash

#!/usr/bin/env bash
TAPM_READ_MASKED() {
local destination="$1"
local character=''
local value=''
while IFS= read -r -s -n 1 character; do
if [[ -z "$character" ]]; then
break
fi
case "$character" in
$'\177' | $'\b')
if [[ -n "$value" ]]; then
value="${value%?}"
printf '\b \b'
fi
;;
*)
value+="$character"
printf '*'
;;
esac
done
printf '\n'
printf -v "$destination" '%s' "$value"
}