]> diplodocus.org Git - nmh/blobdiff - man/mhfixmsg.man
Cleaned up leaks from calls to content_charset() in mhfixmsg.
[nmh] / man / mhfixmsg.man
index 629014d6c68470a6c5de46e0e0689e9766a45bf4..81d069bab20112d05d009abbc972d2b441ab2d6d 100644 (file)
@@ -1,4 +1,4 @@
-.TH MHFIXMSG %manext1% "May 4, 2013" "%nmhversion%"
+.TH MHFIXMSG %manext1% "August 20, 2014" "%nmhversion%"
 .\"
 .\" %nmhwarning%
 .\"
 .\"
 .\" %nmhwarning%
 .\"
@@ -9,18 +9,20 @@ mhfixmsg \- rewrite MIME messages with various transformations
 .na
 .B mhfixmsg
 .RI [ +folder ]
 .na
 .B mhfixmsg
 .RI [ +folder ]
-.RI [ msgs ]
+.RI [ msgs " | "
+.IR "absolute pathname" " | "
+.RB \-file
+.IR file ]
 .RB [ \-decodetext
 8bit/7bit |
 .BR \-nodecodetext ]
 .RB [ \-decodetext
 8bit/7bit |
 .BR \-nodecodetext ]
-.RB [ \-textcodeset
-.I codeset
-.RB "| " \-notextcodeset ]
+.RB [ \-textcharset
+.I charset
+.RB "| " \-notextcharset ]
 .RB [ \-reformat " | " \-noreformat ]
 .RB [ \-reformat " | " \-noreformat ]
+.RB [ \-replacetextplain " | " \-noreplacetextplain ]
 .RB [ \-fixboundary " | " \-nofixboundary ]
 .RB [ \-fixcte " | " \-nofixcte ]
 .RB [ \-fixboundary " | " \-nofixboundary ]
 .RB [ \-fixcte " | " \-nofixcte ]
-.RB [ \-file
-.IR file ]
 .RB [ \-outfile
 .IR outfile ]
 .RB [ \-rmmproc
 .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
 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
 .PP
 The
-.B \-textcodeset
+.B \-textcharset
 switch specifies that all text/plain parts of the message(s)
 should be converted to
 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
 .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
 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
 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
 .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
 .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
 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.
 .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
 .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
 .RS 5
 mhfixmsg -outfile - | \\
 .RS 0
-%libdir%/rcvstore +folder
+%nmhlibexecdir%/rcvstore +folder
 .RE
 .RE
 .SS Summary of Applicability
 .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
 .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
 \-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
 .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
 .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
 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.
 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
 .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`
 .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 -'
 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
 * ^TOnmh-workers@nongnu.org
-| tee `$MKTEMP` | $MHFIXMSG | $STORE +nmh-workers
+| tee `$MKSTEMP` | $MHFIXMSG | $STORE +nmh-workers
 .fi
 .RE
 .PP
 .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
 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
 is checked.
 .PP
 .fc ^ ~
 .nf
-.ta \w'%etcdir%/mhn.defaults  'u
+.ta \w'%nmhetcdir%/mhn.defaults  'u
 ^$HOME/\&.mh\(ruprofile~^The user profile
 ^$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 ^ ~
 .fi
 .SH "PROFILE COMPONENTS"
 .fc ^ ~
@@ -284,11 +324,14 @@ is checked.
 ^rmmproc:~^Program to delete original messages or files
 .fi
 .SH "SEE ALSO"
 ^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 mh-profile (5),
 .IR mhbuild (1),
 .IR mhlist (1),
+.IR mhparam (1),
 .IR mhshow (1),
 .IR mhshow (1),
-.IR mkstemp (3),
+.IR mh-mkstemp (1),
 .IR procmail (1),
 .IR procmailrc (5),
 .IR rcvstore (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 ` +folder "' defaults to the current folder"
 .RB ` msgs "' defaults to cur"
 .RB ` "\-decodetext 8bit"'
-.RB ` \-notextcodeset '
+.RB ` \-notextcharset '
 .RB ` \-reformat '
 .RB ` \-reformat '
+.RB ` \-noreplacetextplain '
 .RB ` \-fixboundary '
 .RB ` \-fixcte '
 .RB ` \-noverbose '
 .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
 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.