userid="`mhparam pgpkey`"
fi
if [ -z "$userid" ] ; then
- userid="`gpg --list-secret-keys --with-colons 2>/dev/null |
+ userid="`gpg --list-secret-keys --with-colons --fixed-list-mode \
+ 2>/dev/null |
grep '^sec' | sort -t: -k3,3nr -k 6,6nr |
awk -F: '
- $7=="" || $7 > "'"\`date +%Y-%m-%d\`"'" {
+ $7=="" || $7 > "'"\`date +%s\`"'" {
print $5; exit;
}
'`"
return 0
}
+### Do a best guess at FQDN
+mh_hostname()
+{
+ hostname -f 2>/dev/null || uname -n
+}
+
### lookupkeys file -- set $KL to list of recipient keys
lookupkeys() {
KL=
return 1
fi
- whom -ali -tocc -nobcc "$1" | while read i ; do
+ # extract the actual address
+ format='%<{error}%{error}: %{text}%|%(addr{text})%>'
+ addresses=`whom -ali -tocc -nobcc "$1" |sed 's_$_,_'`
+ addresses=`%libdir%/ap -form "=$format" "$addresses"`
+
+ for i in $addresses ; do
case "$i" in
'|'*) echo "Ignoring pipe address" >&2
continue ;;
*@*) ;;
- *) i="$i@`hostname -f`" ;;
+ *) i="$i@`mh_hostname`" ;;
esac
- # extract the actual address
- format='%<{error}%{error}: %{text}%|%(addr{text})%>'
- i=`%libdir%/ap -form "=$format" "$i"`
if k=`lookupkeyfile "$i"` ; then
KL="$KL $k"
elif k=`lookupkeyring "$i"` ; then