]> diplodocus.org Git - nmh/blobdiff - man/mhfixmsg.man
Added mhshow-suffix-text entry.
[nmh] / man / mhfixmsg.man
index eb9595de9547912fb4c7fa49162b4b465abe0112..af2880008cdc68949f588903a9f7ce3d95b5945d 100644 (file)
@@ -1,4 +1,4 @@
-.TH MHFIXMSG %manext1% "March 12, 2016" "%nmhversion%"
+.TH MHFIXMSG %manext1% "November 7, 2016" "%nmhversion%"
 .\"
 .\" %nmhwarning%
 .\"
@@ -8,13 +8,15 @@ mhfixmsg \- rewrite MIME messages with various transformations
 .HP 5
 .na
 .B mhfixmsg
+.RB [ \-help ]
+.RB [ \-version ]
 .RI [ +folder ]
 .RI [ msgs " | "
 .IR "absolute pathname" " | "
 .RB \-file
 .IR file ]
 .RB [ \-decodetext
-8bit/7bit |
+8bit|7bit|binary |
 .BR \-nodecodetext ]
 .RB [ \-decodetypes
 .IR "type/[subtype][,...]" ]
@@ -35,8 +37,6 @@ mhfixmsg \- rewrite MIME messages with various transformations
 .RB [ \-normmproc ]
 .RB [ \-changecur " | " \-nochangecur ]
 .RB [ \-verbose " | " \-noverbose ]
-.RB [ \-version ]
-.RB [ \-help ]
 .ad
 .SH DESCRIPTION
 .B mhfixmsg
@@ -61,14 +61,18 @@ can safely be run multiple times on a message.
 The
 .B \-decodetext
 switch enables a transformation to decode each base64 and
-quoted-printable text message part to the selected 8bit or 7bit
-encoding.  If 7bit is selected for a base64 part but it will only fit
+quoted-printable text message part to the selected 8bit, 7bit, or
+binary encoding.
+If 7bit is selected for a base64 part but it will only fit
 8bit, as defined by RFC 2045, then it will be decoded to 8bit
-quoted-printable.  Otherwise, if the decoded text would not fit the
-selected encoding, the part is not decoded (and a message will be
+quoted-printable.
+Similarly, with 8bit, if the decoded text would be binary,
+then the part is not decoded (and a message will be
 displayed if
 .B \-verbose
-is enabled).
+is enabled).  Note that
+.B \-decodetext
+binary can produce messages that are not RFC 2045 compliant.
 .PP
 When the
 .B \-decodetext
@@ -187,9 +191,9 @@ The
 .B \-fixcte
 switch enables a transformation to change the
 Content-Transfer-Encoding from an invalid value to 8bit in message
-parts with a Content-Type of multipart, as required by RFC 2045,
-§6.4.  That condition is indicated by a \*(lqmust be encoded in
-7bit, 8bit, or binary\*(rq error message from
+parts with a Content-Type of multipart and message, as required by
+RFC 2045, §6.4.  That condition is indicated by a \*(lqmust be
+encoded in 7bit, 8bit, or binary\*(rq error message from
 .B mhlist
 and other
 .B nmh
@@ -204,8 +208,12 @@ more descriptive MIME type.  It may not be used for multipart and
 message types.
 .PP
 .B mhfixmsg
-applies one transformation unconditionally:  it removes an extraneous
-trailing semicolon from the parameter lists of MIME header fields.
+applies two transformations unconditionally.
+The first removes an extraneous trailing semicolon from the parameter
+lists of MIME header field values.
+The second replaces RFC 2047 encoding with RFC 2231 encoding of name
+and filename parameters in Content-Type and Content-Disposition header
+field values, respectively.
 .PP
 The
 .B \-verbose
@@ -218,8 +226,10 @@ The return status of
 is 0 if all of the requested transformations are performed, or
 non-zero otherwise.
 .RB ( mhfixmsg
-will not decode to binary content, but a request to do so is
-not considered a failure, and is noted with
+will not decode to binary content with the default
+.B \-decodetext
+setting, but a request to do so is not considered a failure, and is noted
+with
 .BR \-verbose .)
 If a problem is detected with any one of multiple messages such that
 the return status is non-zero, then none of the messages will be
@@ -295,7 +305,7 @@ content type and/or encoding as follows:
 \-textcharset        text/plain parts
 \-reformat           text parts that are not text/plain
 \-fixboundary        outermost multipart part
-\-fixcte             multipart part
+\-fixcte             multipart or message part
 \-fixtype            all except multipart and message parts
 .fi
 .RE
@@ -366,6 +376,7 @@ could be called on the message after it is stored.
 .nf
 .ta \w'\-fixboundary 'u
 PATH = %bindir%:$PATH
+LANG = en_US.utf8
 MAILDIR = `mhparam path`
 #### The Backups directory is relative to MAILDIR.
 MKSTEMP = 'mkstemp -directory Backups -prefix mhfixmsg'
@@ -416,7 +427,7 @@ mhfixmsg -outfile - | mhlist -file -
 .RE
 .SS Search message without modification
 To search the current message, which possibly contains base64 or quoted printable encoded text parts,
-without modifiying it, use the -outfile switch:
+without modifying it, use the -outfile switch:
 .PP
 .RS
 .nf
@@ -438,17 +449,29 @@ mhfixmsg -textcharset utf-8
 .SS Fix all messages in a folder
 To run
 .B mhfixmsg
-on all of the messages in a folder, using a Bourne shell loop:
+on all of the messages in a folder:
 .PP
 .RS
 .nf
-for msg in `pick +folder`; do mhfixmsg $msg; done
+mhfixmsg +folder all
 .fi
 .RE
 .PP
+Alternatively,
 .B mhfixmsg
-can be run on more than one message, but on a large number of messages
-may attempt to open too many files.
+can be run on each message separately, e.g., using a Bourne shell loop:
+.PP
+.RS
+.nf
+for msg in `pick +folder`; do mhfixmsg +folder $msg; done
+.fi
+.RE
+.PP
+The two appearances of the
+.B +folder
+switch in that command protect against concurrent context changes by other
+.B nmh
+command invocations.
 .SS Run on newly incorporated messages
 To run
 .B mhfixmsg
@@ -525,17 +548,3 @@ switch is enabled.  If the
 .B \-file
 switch or an absolute pathname is used, the context will not be
 modified.
-.SH BUGS
-.B mhfixmsg
-opens files internally for decoding and character set conversion, and apparently does not
-close them expeditiously.  Until that is resolved, it is recommended that
-.B mhfixmsg
-not be run on a large number of messages at once, as noted in the EXAMPLES above.
-.PP
-As noted in the DESCRIPTION above,
-.B mhfixmsg
-will not decode to binary content.  This restriction should be removed at some point.  It's
-not due to any issue in
-.BR mhfixmsg ,
-but rather an observation of incorrect behavior by other nmh tools on messages with binary
-content.