* gpg-mailkeys: (Closes: #545186)
[pgp-tools.git] / gpg-mailkeys / gpg-mailkeys
index cacaf1dfac3637ac23b29c69ce1f8341d085e063..7ba5139dfe6decf69a12ba012a8179561bd5cb5e 100755 (executable)
@@ -8,6 +8,33 @@ set -e
 
 VERSION='$Rev$'
 
+# Define the charset used in the text message of the mail
+LOCAL_CHARSET=""
+
+##
+# Get the local charset.
+#
+# The local charset is deduced from the charset used by both ~/.gpg-mailkeysrc
+# and ~/.signature. If none of these files exist, the local charset is assumed
+# to be us-ascii.
+
+get_local_charset ()
+{
+    local charset="us-ascii"
+    local file_list="$HOME/.signature $HOME/.gpg-mailkeysrc"
+
+    for filename in $file_list; do
+
+        if [ -e $filename ]; then
+            charset=`file --mime-encoding $filename | cut -d ' ' -f 2`
+            break
+        fi
+
+    done;
+
+    LOCAL_CHARSET=$charset
+}
+
 if [ -z "$*" ]; then
        printf "Send people their newly signed GPG key by mail.\n"
        printf "Usage: $0 keyid ...\n"
@@ -35,6 +62,8 @@ Enjoy,
 $NAME"
 fi
 
+get_local_charset
+
 FAILKEYS=
 
 while [ -n "$1" ]; do
@@ -66,18 +95,18 @@ Content-Disposition: inline
 
 
 --$BOUNDARY
-Content-Type: text/plain; charset=us-ascii
+Content-Type: text/plain; charset=$LOCAL_CHARSET
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
  
 
-$TEXT
+`echo "$TEXT" | qprint -e`
 
 EOM
 
 if [ -f ~/.signature ]; 
        then printf -- "--=20\n" >> $TEMPFILE 
-       cat ~/.signature >> $TEMPFILE
+       qprint -e ~/.signature >> $TEMPFILE
 fi
 
 cat << EOM >> $TEMPFILE