'
}
view_attendee() { #Parameter: Cardfile
id="$1"
cardfile="vcard/$id"
cachefile="cache/${id}.cache"
unset key
if [ "$cachefile" -nt "$cardfile" ]; then
cat "$cachefile"
else
declare -A tags
declare -A values
vcf_parse "$cardfile" |while read -r line; do
declare -A tag
case "$line" in
value*) eval "$line";;
tag*) eval "$line";;
key*)
if [ -z "$key" ]; then
eval "$line"
else
values[$key]="$value"
for t in ${(k)tag}; do
tags[${key}_$t]="$tag[$t]"
done
eval "$line"
if [ -n "$values[$key]" ]; then
n=0
while [ -n "$values[$key$n]" ]; do n=$(($n + 1)); done
key=$key$n
fi
unset value
unset tag
fi
;;
esac
done
print_card |tee "$cachefile"
fi
}