tweak sendmail and makemime help texts

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/include/usage.h b/include/usage.h
index f654062..4e05516 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -2541,12 +2541,17 @@
 #define makemime_trivial_usage \
        "[OPTIONS] [FILE]..."
 #define makemime_full_usage "\n\n" \
-       "Create MIME-encoded message\n" \
+       "Create multipart MIME-encoded message from FILEs.\n" \
+/*     "Transfer encoding is base64, disposition is inline (not attachment)\n" */ \
      "\nOptions:" \
-     "\n	-C      Charset" \
-     "\n	-e	Transfer encoding. Ignored. base64 is assumed" \
+     "\n	-o FILE	Output. Default: stdout" \
+     "\n	-a HDR	Add header. Examples:" \
+     "\n		\"From: user@host.org\", \"Date: `date -R`\"" \
+     "\n	-c CT	Content type. Default: text/plain" \
+     "\n	-C CS   Charset. Default: " CONFIG_FEATURE_MIME_CHARSET \
+/*   "\n	-e ENC	Transfer encoding. Ignored. base64 is assumed" */ \
      "\n" \
-     "\nOther options are silently ignored." \
+     "\nOther options are silently ignored" \
 
 #define man_trivial_usage \
        "[OPTIONS] [MANPAGE]..."
@@ -3776,17 +3781,17 @@
 #define selinuxenabled_full_usage ""
 
 #define sendmail_trivial_usage \
-       "[OPTIONS] [rcpt]..."
+       "[OPTIONS] [RECIPIENT_EMAIL]..."
 #define sendmail_full_usage "\n\n" \
-       "Send an email\n" \
+       "Read email from stdin and send it\n" \
      "\nStandard options:" \
-     "\n	-t		Read recipients from message body, add them to those on cmdline" \
-     "\n	-f sender	Sender. REQUIRED!" \
-     "\n	-o options	various options. -oi IMPLIED! others are IGNORED!" \
+     "\n	-t		Read additional recipients from message body" \
+     "\n	-f sender	Sender (required)" \
+     "\n	-o options	Various options. -oi implied, others are ignored" \
      "\n" \
      "\nBusybox specific options:" \
      "\n	-w seconds	Network timeout" \
-     "\n	-H 'prog args'	Run connection helper" \
+     "\n	-H 'PROG ARGS'	Run connection helper" \
      "\n			Examples:" \
      "\n			-H 'exec openssl s_client -quiet -tls1 -starttls smtp" \
      "\n				-connect smtp.gmail.com:25' <email.txt" \
@@ -3797,9 +3802,12 @@
      "\n	-S server[:port] Server" \
      "\n	-au<username>	Username for AUTH LOGIN" \
      "\n	-ap<password>	Password for AUTH LOGIN" \
-     "\n	-am<method>	Authentication method. Ignored. login is implied." \
+     "\n	-am<method>	Authentication method. Ignored. LOGIN is implied" \
      "\n" \
      "\nOther options are silently ignored; -oi -t is implied" \
+	IF_MAKEMIME( \
+     "\nUse makemime applet to create message with attachments" \
+	)
 
 #define seq_trivial_usage \
        "[-w] [-s SEP] [FIRST [INC]] LAST"
diff --git a/mailutils/mime.c b/mailutils/mime.c
index d309d7f..358f4e9 100644
--- a/mailutils/mime.c
+++ b/mailutils/mime.c
@@ -35,12 +35,68 @@
                     -c auto to set Content-Type: to text/plain or
                     application/octet-stream based on picked encoding.
   -j file1 file2  - join mime section file2 to multipart section file1.
-  -o file         - write ther result to file, instead of stdout (not
+  -o file         - write the result to file, instead of stdout (not
                     allowed in child processes).
   -a header       - prepend an additional header to the output.
 
   @file - read all of the above options from file, one option or
           value on each line.
+  {which version of makemime is this? What do we support?}
+*/
+
+
+/* In busybox 1.15.0.svn, makemime generates output like this
+ * (empty lines are shown exactly!):
+{headers added with -a HDR}
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary="24269534-2145583448-1655890676"
+
+--24269534-2145583448-1655890676
+Content-Type: {set by -c, e.g. text/plain}; charset={set by -C, e.g. us-ascii}
+Content-Disposition: inline; filename="A"
+Content-Transfer-Encoding: base64
+
+...file A contents...
+--24269534-2145583448-1655890676
+Content-Type: {set by -c, e.g. text/plain}; charset={set by -C, e.g. us-ascii}
+Content-Disposition: inline; filename="B"
+Content-Transfer-Encoding: base64
+
+...file B contents...
+--24269534-2145583448-1655890676--
+
+*/
+
+
+/* For reference: here is an example email to LKML which has
+ * 1st unnamed part (so it serves as an email body)
+ * and one attached file:
+...other headers...
+Content-Type: multipart/mixed; boundary="=-tOfTf3byOS0vZgxEWcX+"
+...other headers...
+Mime-Version: 1.0
+...other headers...
+
+
+--=-tOfTf3byOS0vZgxEWcX+
+Content-Type: text/plain
+Content-Transfer-Encoding: 7bit
+
+...email text...
+...email text...
+
+
+--=-tOfTf3byOS0vZgxEWcX+
+Content-Disposition: attachment; filename="xyz"
+Content-Type: text/plain; name="xyz"; charset="UTF-8"
+Content-Transfer-Encoding: 7bit
+
+...file contents...
+...file contents...
+
+--=-tOfTf3byOS0vZgxEWcX+--
+
+...random junk added by mailing list robots and such...
 */
 
 int makemime_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
@@ -86,7 +142,8 @@
 
 	// make a random string -- it will delimit message parts
 	srand(monotonic_us());
-	boundary = xasprintf("%d-%d-%d", rand(), rand(), rand());
+	boundary = xasprintf("%u-%u-%u",
+			(unsigned)rand(), (unsigned)rand(), (unsigned)rand());
 
 	// put multipart header
 	printf(