+list_attendance() {
+ id="$1"
+ sed -rn 's:'$id'\t(.+)$:\1:p' "$_DATA/mappings/attendance" |while read each; do
+ card="$_DATA/vcard/$each"
+ if [ -r "$card" ]; then
+ aname="$(sed -rn '
+ /^N(;.+)*:/{
+ h;
+ s;^N(\;.+)*:([^\;]*\;){3} *([^\;]*).*$;\3;p; g;
+ s;^N(\;.+)*:([^\;]*\;){1} *([^\;]*).*$;\3;p; g;
+ s;^N(\;.+)*:([^\;]*\;){2} *([^\;]*).*$;\3;p; g;
+ s;^N(\;.+)*:([^\;]*\;){0} *([^\;]*).*$;\3;p; g;
+ s;^N(\;.+)*:([^\;]*\;){4} *([^\;]*).*$;\3;p; g;
+ }' "$card" \
+ | sed -r ':X;N;$!bX; s;([\;\n\r,]| )+; ;g;; s;^ +| +$;;g;'
+ )"
+ fname="$(sed -rn 's;^FN(\;.+)*:(.+)\r?$;\2;g; s;([\;\n,]| )+; ;g;; s;^ +| +$;;g;' "$card")"
+ nname="$(sed -rn 's;^NICKNAME(\;.+)*:(.+)\r?$;\2;g; s;([\;\n,]| )+; ;g;; s;^ +| +$;;g;' "$card")"
+ byear="$(sed -rn 's:^BDAY(\;.+)*\:([0-9]{4})(-[0-9][0-9]){2}.*$:\2:p' "$_DATA/vcard/$each")"
+
+ printf '%s %s (*%04i)\n' "$each" "${aname:-${fname:-${nname}}}" "$byear"
+ fi
+ done
+}
+
+course_mail() {
+ id="$1"
+ coursemail=""
+ sed -rn 's:'$id'\t(.+)$:\1:p' "$_DATA/mappings/attendance" |while read each; do
+ coursemail="$coursemail$(sed -rn 's:^EMAIL(;.+)*\:(.+)\r$:\2,:p' "$_DATA/vcard/$each")"
+ done
+ echo "$coursemail"
+}
+