X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/fbcd71b31868c9969836b00a90a0bf32b13111ef..b2719c1d2bbfad9aea3c441e9e1996857490adf2:/man/mhfixmsg.man?ds=inline diff --git a/man/mhfixmsg.man b/man/mhfixmsg.man index 629014d6..81d069ba 100644 --- a/man/mhfixmsg.man +++ b/man/mhfixmsg.man @@ -1,4 +1,4 @@ -.TH MHFIXMSG %manext1% "May 4, 2013" "%nmhversion%" +.TH MHFIXMSG %manext1% "August 20, 2014" "%nmhversion%" .\" .\" %nmhwarning% .\" @@ -9,18 +9,20 @@ mhfixmsg \- rewrite MIME messages with various transformations .na .B mhfixmsg .RI [ +folder ] -.RI [ msgs ] +.RI [ msgs " | " +.IR "absolute pathname" " | " +.RB \-file +.IR file ] .RB [ \-decodetext 8bit/7bit | .BR \-nodecodetext ] -.RB [ \-textcodeset -.I codeset -.RB "| " \-notextcodeset ] +.RB [ \-textcharset +.I charset +.RB "| " \-notextcharset ] .RB [ \-reformat " | " \-noreformat ] +.RB [ \-replacetextplain " | " \-noreplacetextplain ] .RB [ \-fixboundary " | " \-nofixboundary ] .RB [ \-fixcte " | " \-nofixcte ] -.RB [ \-file -.IR file ] .RB [ \-outfile .IR outfile ] .RB [ \-rmmproc @@ -63,17 +65,23 @@ is enabled). When the .B \-decodetext switch is enabled, each carriage return character that precedes a -linefeed character is removed from ASCII-encoded text parts. +linefeed character is removed from text parts encoded in ASCII, +ISO-8859-x, UTF-8, or Windows-12xx. .PP The -.B \-textcodeset +.B \-textcharset switch specifies that all text/plain parts of the message(s) should be converted to -.IR codeset . -Codeset conversions require that +.IR charset . +Charset conversions require that .B nmh be built with -.IR iconv (3). +.IR iconv (3); +see the +.BR mhparam (1) +man page for how determine whether your +.B nmh +installation includes that. To convert text parts other than text/plain, an external program can be used, via the .B \-reformat @@ -93,6 +101,16 @@ inserts that text/plain part at the beginning of the containing multipart/alternative part, if present. If not, it creates a multipart/alternative part. .PP +The +.B \-replacetextplain +switch broadens the applicability of +.B \-reformat +by always replacing a corresponding text/plain part, if one exists. +If +.B \-verbose +if enabled, the replacement will be shown as two steps: a removal of +the text/plain part followed by the usual insertion of a new part. +.PP .B \-reformat requires a profile entry for each text part subtype to be reformatted. The mhfixmsg-format-text/subtype profile entries are based on external @@ -102,7 +120,7 @@ uses its mhshow-show-text/subtype entries. When .B nmh is installed, it searches for a conversion program for text/html content, and if one is found, inserts a mhfixmsg-format-text/html -entry in %etcdir%/mhn.defaults. An entry of the same name in the +entry in %nmhetcdir%/mhn.defaults. An entry of the same name in the user's profile takes precedence. The user can add entries for other text subtypes to their profile. .PP @@ -143,7 +161,12 @@ switch directs .B mhfixmsg to use the specified file as the source message, rather than a message from a folder. -If this file is \*(lq-\*(rq, then +Only one file argument may be provided. The +.B \-file +switch is implied if +.I file +is an absolute pathname. +If the file is \*(lq-\*(rq, then .B mhfixmsg accepts the source message on the standard input stream. If the @@ -185,7 +208,7 @@ to add a single transformed message to a different folder, e.g., .RS 5 mhfixmsg -outfile - | \\ .RS 0 -%libdir%/rcvstore +folder +%nmhlibexecdir%/rcvstore +folder .RE .RE .SS Summary of Applicability @@ -196,7 +219,7 @@ content type and/or encoding as follows: .nf .ta \w'\-fixboundary 'u \-decodetext base64 and quoted-printable encoded text parts -\-textcodeset text/plain parts +\-textcharset text/plain parts \-reformat text parts that are not text/plain \-fixboundary outermost multipart part \-fixcte multipart part @@ -226,6 +249,24 @@ profile component and negates all prior .B \-rmmproc switches. .PP +.SS "Integration with inc" +.B mhfixmsg +can be used as an add-hook, as described in %docdir%/README-HOOKS. +Note that add-hooks are called from all +.B nmh +programs that add a message to a folder, not just +.BR inc . +Alternatively, a simple shell alias or function can be used to +call +.B mhfixmsg +immediately after a successful invocation of +.BR inc . +For example, with bash: +.PP +.RS 5 +alias inc='inc && mhfixmsg' +.RE +.PP .SS "Integration with procmail" By way of example, here is an excerpt from a procmailrc file that filters messages through @@ -235,11 +276,9 @@ before storing them in the user's folder. It also stores the incoming message in the .I Backups folder in a filename generated by -.BR mktemp , +.BR mkstemp , which is a non-POSIX utility to generate a temporary file. -If you do not have that utility, then the -.BR mkstemp (3) -function could form the basis for a substitute. Or, +Alternatively, .B mhfixmsg could be called on the message after it is stored. .PP @@ -248,13 +287,14 @@ could be called on the message after it is stored. .ta \w'\-fixboundary 'u PATH = %bindir%:$PATH MAILDIR = `mhparam path` -MKTEMP = 'mktemp Backups/mhfixmsg.XXXXXXXX' +#### The Backups directory is relative to MAILDIR. +MKSTEMP = 'mkstemp -directory Backups -prefix mhfixmsg' MHFIXMSG = 'mhfixmsg -noverbose -file - -outfile -' -STORE = %libdir%/rcvstore +STORE = %nmhlibexecdir%/rcvstore -:0 w: nmh-worker/procmail.$LOCKEXT +:0 w: nmh-workers/procmail.$LOCKEXT * ^TOnmh-workers@nongnu.org -| tee `$MKTEMP` | $MHFIXMSG | $STORE +nmh-workers +| tee `$MKSTEMP` | $MHFIXMSG | $STORE +nmh-workers .fi .RE .PP @@ -265,14 +305,14 @@ accessed directly, tilde expansion is done on usernames, and files are searched for in the user's .I Mail directory as specified in their profile. If not found there, the directory -.RI \*(lq %etcdir% \*(rq +.RI \*(lq %nmhetcdir% \*(rq is checked. .PP .fc ^ ~ .nf -.ta \w'%etcdir%/mhn.defaults 'u +.ta \w'%nmhetcdir%/mhn.defaults 'u ^$HOME/\&.mh\(ruprofile~^The user profile -^%etcdir%/mhn.defaults~^Default mhfixmsg conversion entries +^%nmhetcdir%/mhn.defaults~^Default mhfixmsg conversion entries .fi .SH "PROFILE COMPONENTS" .fc ^ ~ @@ -284,11 +324,14 @@ is checked. ^rmmproc:~^Program to delete original messages or files .fi .SH "SEE ALSO" +.IR inc (1), +.IR iconv (3), .IR mh-profile (5), .IR mhbuild (1), .IR mhlist (1), +.IR mhparam (1), .IR mhshow (1), -.IR mkstemp (3), +.IR mh-mkstemp (1), .IR procmail (1), .IR procmailrc (5), .IR rcvstore (1), @@ -298,8 +341,9 @@ is checked. .RB ` +folder "' defaults to the current folder" .RB ` msgs "' defaults to cur" .RB ` "\-decodetext 8bit"' -.RB ` \-notextcodeset ' +.RB ` \-notextcharset ' .RB ` \-reformat ' +.RB ` \-noreplacetextplain ' .RB ` \-fixboundary ' .RB ` \-fixcte ' .RB ` \-noverbose ' @@ -309,4 +353,5 @@ If a folder is given, it will become the current folder. The last message selected from a folder will become the current message. If the .B \-file -switch is used, the context will not be modified. +switch or an absolute pathname is used, the context will not be +modified.