1
0
forked from pool/mutt

Accepting request 850273 from server:mail

OBS-URL: https://build.opensuse.org/request/show/850273
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mutt?expand=0&rev=97
This commit is contained in:
Dominique Leuenberger 2020-11-24 21:11:46 +00:00 committed by Git OBS Bridge
commit a93a62fc4d
16 changed files with 135 additions and 67 deletions

View File

@ -3,12 +3,12 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
---
init.h | 7 +++++++
mutt.h | 1 +
send.c | 18 ++++++++++++++++++
3 files changed, 26 insertions(+)
send.c | 17 +++++++++++++++++
3 files changed, 25 insertions(+)
--- init.h
+++ init.h 2020-01-14 13:35:13.352604037 +0000
@@ -1819,6 +1819,13 @@ struct option_t MuttVars[] = {
@@ -1864,6 +1864,13 @@ struct option_t MuttVars[] = {
** from your spool mailbox to your $$mbox mailbox, or as a result of
** a ``$mbox-hook'' command.
*/
@ -24,7 +24,7 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
** .pp
--- mutt.h
+++ mutt.h 2020-01-14 13:32:27.595685455 +0000
@@ -337,6 +337,7 @@ enum
@@ -341,6 +341,7 @@ enum
#endif
OPT_SUBJECT,
OPT_VERIFYSIG, /* verify PGP signatures */
@ -34,15 +34,7 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
OPT_MAX
--- send.c
+++ send.c 2020-01-14 13:32:27.599685379 +0000
@@ -567,6 +567,7 @@ static int include_reply (CONTEXT *ctx,
static int default_to (ADDRESS **to, ENVELOPE *env, int flags, int hmfupto)
{
char prompt[STRING];
+ struct Address *tmp;
if (flags && env->mail_followup_to && hmfupto == MUTT_YES)
{
@@ -580,6 +581,23 @@ static int default_to (ADDRESS **to, ENV
@@ -582,6 +582,23 @@ static int default_to (ADDRESS **to, ENV
if (flags & SENDLISTREPLY)
return 0;
@ -51,12 +43,12 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
+ */
+ if (!(flags & (SENDGROUPREPLY|SENDGROUPCHATREPLY)) && mutt_is_list_cc (0, env->to, env->cc)) {
+ switch (query_quadoption (OPT_LISTREPLY,
+ _("Message came from a mailing list. Reply to author only?")))
+ _("Message came from a mailing list. Reply to author only?")))
+ {
+ case MUTT_NO:
+ tmp = find_mailing_lists (env->to, env->cc);
+ rfc822_append (to, tmp, 0);
+ rfc822_free_address (&tmp);
+ default_addr = find_mailing_lists (env->to, env->cc);
+ rfc822_append (to, default_addr, 0);
+ rfc822_free_address (&default_addr);
+ return 0;
+ case -1:
+ return -1; /* abort */
@ -65,4 +57,4 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
+
if (!option(OPTREPLYSELF) && mutt_addr_is_user (env->from))
{
/* mail is from the user, assume replying to recipients */
default_addr = env->to;

View File

@ -5,7 +5,7 @@
--- mh.c
+++ mh.c 2020-01-14 13:31:51.368358811 +0000
@@ -1814,9 +1814,9 @@ static int mh_rewrite_message (CONTEXT *
@@ -1818,9 +1818,9 @@ static int mh_rewrite_message (CONTEXT *
BUFFER *newpath = NULL;
BUFFER *partpath = NULL;
@ -20,7 +20,7 @@
return -1;
--- mutt.h
+++ mutt.h 2020-01-14 13:31:51.368358811 +0000
@@ -766,7 +766,7 @@ typedef struct body
@@ -782,7 +782,7 @@ typedef struct body
PARAMETER *parameter; /* parameters of the content-type */
char *description; /* content-description */
char *form_name; /* Content-Disposition form-data name param */

View File

@ -4,7 +4,7 @@
--- browser.c
+++ browser.c 2020-01-14 14:51:44.927127369 +0000
@@ -974,6 +974,16 @@ void _mutt_buffer_select_file (BUFFER *f
@@ -979,6 +979,16 @@ void _mutt_buffer_select_file (BUFFER *f
mutt_buffer_strcpy (f, state.entry[menu->current].full_path);

View File

@ -7,7 +7,7 @@
--- configure.ac
+++ configure.ac 2020-01-14 13:04:28.102878757 +0000
@@ -295,7 +295,7 @@ main ()
@@ -297,7 +297,7 @@ main ()
mutt_cv_slang=$withval
if test -d $withval/include/slang; then
CPPFLAGS="$CPPFLAGS -I${withval}/include/slang"
@ -16,7 +16,7 @@
CPPFLAGS="$CPPFLAGS -I${withval}/include"
fi
LDFLAGS="$LDFLAGS -L${withval}/lib"
@@ -799,8 +799,12 @@ AC_ARG_WITH(ssl, AS_HELP_STRING([--with-
@@ -801,8 +801,12 @@ AC_ARG_WITH(ssl, AS_HELP_STRING([--with-
else
if test "$with_ssl" != "yes"
then
@ -31,7 +31,7 @@
fi
saved_LIBS="$LIBS"
@@ -887,8 +891,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with
@@ -889,8 +893,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with
if test "$with_sasl" != "yes"
then
@ -59,7 +59,7 @@
# note: these macros have been subsumed by the <browse-mailboxes> function.
--- imap/auth.c
+++ imap/auth.c 2020-01-14 13:04:28.102878757 +0000
@@ -73,6 +73,25 @@ int imap_authenticate (IMAP_DATA* idata)
@@ -74,6 +74,25 @@ int imap_authenticate (IMAP_DATA* idata)
dprint (2, (debugfile, "imap_authenticate: Trying method %s\n", method));
authenticator = imap_authenticators;
@ -85,7 +85,7 @@
while (authenticator->authenticate)
{
if (!authenticator->method ||
@@ -87,7 +106,9 @@ int imap_authenticate (IMAP_DATA* idata)
@@ -88,7 +107,9 @@ int imap_authenticate (IMAP_DATA* idata)
authenticator++;
}
}
@ -98,7 +98,7 @@
else
--- mx.c
+++ mx.c 2020-01-14 13:04:28.102878757 +0000
@@ -1474,6 +1474,9 @@ void mx_update_context (CONTEXT *ctx, in
@@ -1476,6 +1476,9 @@ void mx_update_context (CONTEXT *ctx, in
{
h = ctx->hdrs[msgno];

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e4f507b133253cb5eef27996b8668956cdf9caac622cf8adad13f0f9a4eda864
size 5009968

View File

@ -6,8 +6,8 @@ Index: init.h
--- init.h
+++ init.h 2020-01-14 13:28:27.408149074 +0000
@@ -4423,6 +4423,7 @@ struct option_t MuttVars[] = {
** printing, or replying to messages.
@@ -4534,6 +4534,7 @@ struct option_t MuttVars[] = {
** Also see $$copy_decode_weed, $$pipe_decode_weed, $$print_decode_weed.
*/
{ "wrap", DT_NUM, R_PAGER, {.p=&Wrap}, {.l=0} },
+ { "wrapcolumn", DT_SYN, R_NONE, {.p="wrap"}, {.p=0} },

View File

@ -6,7 +6,7 @@
--- init.h
+++ init.h 2020-01-14 13:12:26.725982952 +0000
@@ -3155,6 +3155,13 @@ struct option_t MuttVars[] = {
@@ -3235,6 +3235,13 @@ struct option_t MuttVars[] = {
** .pp
** Also see the $$force_name variable.
*/
@ -22,7 +22,7 @@
** .pp
--- mutt.h
+++ mutt.h 2020-01-14 13:07:33.727426389 +0000
@@ -515,6 +515,7 @@ enum
@@ -524,6 +524,7 @@ enum
OPTSAVEADDRESS,
OPTSAVEEMPTY,
OPTSAVENAME,
@ -32,7 +32,7 @@
OPTSIDEBAR,
--- send.c
+++ send.c 2020-01-14 13:07:33.727426389 +0000
@@ -681,9 +681,12 @@ int mutt_fetch_recips (ENVELOPE *out, EN
@@ -695,9 +695,12 @@ int mutt_fetch_recips (ENVELOPE *out, EN
(!in->mail_followup_to || hmfupto != MUTT_YES))
{
/* if (!mutt_addr_is_user(in->to)) */

View File

@ -9,7 +9,7 @@ Index: mutt-1.5.21/init.c
--- init.c
+++ init.c 2019-01-02 13:25:20.795634552 +0000
@@ -3620,7 +3620,7 @@ void mutt_init (int skip_sys_rc, LIST *c
@@ -3717,7 +3717,7 @@ void mutt_init (int skip_sys_rc, LIST *c
else
{
/* Default search path from RFC1524 */

View File

@ -19,7 +19,7 @@
}
--- lib.c
+++ lib.c 2019-11-13 13:42:00.245189313 +0000
@@ -722,6 +722,17 @@ int mutt_strcmp(const char *a, const cha
@@ -684,6 +684,17 @@ int mutt_strcmp(const char *a, const cha
return strcmp(NONULL(a), NONULL(b));
}
@ -49,7 +49,7 @@
int mutt_strcoll (const char *, const char *);
--- pager.c
+++ pager.c 2019-11-13 13:48:32.257845120 +0000
@@ -829,7 +829,7 @@ resolve_types (char *buf, char *raw, str
@@ -840,7 +840,7 @@ resolve_types (char *buf, char *raw, str
lineInfo[n].type = MT_COLOR_NORMAL;
else if (check_attachment_marker ((char *) raw) == 0)
lineInfo[n].type = MT_COLOR_ATTACHMENT;
@ -69,7 +69,7 @@
break;
if (armor_header)
@@ -446,14 +446,14 @@ int pgp_application_pgp_handler (BODY *m
@@ -448,11 +448,11 @@ int pgp_application_pgp_handler (BODY *m
could_not_decrypt = 0;
decrypt_okay_rc = 0;
@ -78,16 +78,13 @@
needpass = 1;
- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
{
clearsign = 1;
needpass = 0;
}
- else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
+ else if (!mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
{
needpass = 0;
pgp_keyblock = 1;
@@ -486,10 +486,10 @@ int pgp_application_pgp_handler (BODY *m
else
{
@@ -482,10 +482,10 @@ int pgp_application_pgp_handler (BODY *m
fputs (buf, tmpfp);
@ -101,7 +98,7 @@
break;
/* remember optional Charset: armor header as defined by RfC4880 */
if (mutt_strncmp ("Charset: ", buf, 9) == 0)
@@ -751,11 +751,11 @@ static int pgp_check_traditional_one_bod
@@ -748,11 +748,11 @@ static int pgp_check_traditional_one_bod
{
if (mutt_strncmp ("-----BEGIN PGP ", buf, 15) == 0)
{
@ -116,7 +113,7 @@
key = 1;
}
}
@@ -1303,9 +1303,9 @@ BODY *pgp_sign_message (BODY *a)
@@ -1300,9 +1300,9 @@ BODY *pgp_sign_message (BODY *a)
*/
while (fgets (buffer, sizeof (buffer) - 1, pgpout) != NULL)
{

View File

@ -19,7 +19,7 @@
postpone.c query.c recvattach.c recvcmd.c \
rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
score.c send.c sendlib.c signal.c sort.c \
@@ -94,7 +94,7 @@ mutt_dotlock_SOURCES = mutt_dotlock.c
@@ -96,7 +96,7 @@ mutt_dotlock_SOURCES = mutt_dotlock.c
mutt_dotlock_LDADD = $(LIBOBJS)
mutt_dotlock_DEPENDENCIES = $(LIBOBJS)
@ -30,7 +30,7 @@
--- mbox.c
+++ mbox.c 2020-01-14 13:30:35.969760118 +0000
@@ -891,8 +891,13 @@ static int mbox_sync_mailbox (CONTEXT *c
@@ -893,8 +893,13 @@ static int mbox_sync_mailbox (CONTEXT *c
/* Create a temporary file to write the new version of the mailbox in. */
tempfile = mutt_buffer_pool_get ();
mutt_buffer_mktemp (tempfile);
@ -73,7 +73,7 @@
{
--- mutt.h
+++ mutt.h 2020-01-14 13:28:45.787807571 +0000
@@ -1183,4 +1183,7 @@ typedef struct
@@ -1199,4 +1199,7 @@ typedef struct
#include "lib.h"
#include "globals.h"
@ -83,7 +83,7 @@
#endif /*MUTT_H*/
--- muttlib.c
+++ muttlib.c 2020-01-14 13:28:45.787807571 +0000
@@ -2496,6 +2496,10 @@ int safe_open (const char *path, int fla
@@ -2599,6 +2599,10 @@ int safe_open (const char *path, int fla
BUFFER *safe_file = NULL;
BUFFER *safe_dir = NULL;
@ -94,7 +94,7 @@
if (flags & O_EXCL)
{
safe_file = mutt_buffer_pool_get ();
@@ -2524,7 +2528,7 @@ int safe_open (const char *path, int fla
@@ -2627,7 +2631,7 @@ int safe_open (const char *path, int fla
if ((fd = open (path, flags & ~O_EXCL, 0600)) < 0)
goto cleanup;
@ -230,7 +230,7 @@
+}
--- sendlib.c
+++ sendlib.c 2020-01-14 13:28:45.787807571 +0000
@@ -2496,7 +2496,11 @@ send_msg (const char *path, char **args,
@@ -2517,7 +2517,11 @@ send_msg (const char *path, char **args,
if (SendmailWait >= 0 && tempfile && *tempfile)
{
/* *tempfile will be opened as stdout */

3
mutt-2.0.2.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:471218babe97968a45704f1e1e17523c4620ad1f92bae4143a4c9749ab1411c8
size 5293613

View File

@ -16,7 +16,7 @@ Signed-off-by: Michal Suchanek <msuchanek@suse.de>
--- signal.c
+++ signal.c 2019-11-14 08:40:31.823464569 +0000
@@ -132,6 +132,7 @@ static void sighandler (int sig)
@@ -170,6 +170,7 @@ static void sighandler (int sig)
break;
#endif
@ -24,7 +24,7 @@ Signed-off-by: Michal Suchanek <msuchanek@suse.de>
case SIGINT:
SigInt = 1;
break;
@@ -159,7 +160,6 @@ void mutt_signal_init (void)
@@ -199,7 +200,6 @@ void mutt_signal_init (void)
act.sa_handler = exit_handler;
sigaction (SIGTERM, &act, NULL);
sigaction (SIGHUP, &act, NULL);
@ -32,7 +32,7 @@ Signed-off-by: Michal Suchanek <msuchanek@suse.de>
/* we want to avoid race conditions */
sigaddset (&act.sa_mask, SIGTSTP);
@@ -179,6 +179,7 @@ void mutt_signal_init (void)
@@ -219,6 +219,7 @@ void mutt_signal_init (void)
sigaction (SIGCONT, &act, NULL);
sigaction (SIGTSTP, &act, NULL);
@ -40,7 +40,7 @@ Signed-off-by: Michal Suchanek <msuchanek@suse.de>
sigaction (SIGINT, &act, NULL);
#if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM)
sigaction (SIGWINCH, &act, NULL);
@@ -213,6 +214,7 @@ void mutt_block_signals (void)
@@ -258,6 +259,7 @@ void mutt_block_signals (void)
sigaddset (&Sigset, SIGTERM);
sigaddset (&Sigset, SIGHUP);
sigaddset (&Sigset, SIGTSTP);
@ -48,7 +48,7 @@ Signed-off-by: Michal Suchanek <msuchanek@suse.de>
sigaddset (&Sigset, SIGINT);
#if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM)
sigaddset (&Sigset, SIGWINCH);
@@ -287,5 +289,6 @@ void mutt_allow_interrupt (int dispositi
@@ -332,5 +334,6 @@ void mutt_allow_interrupt (int dispositi
if (disposition == 0)
sa.sa_flags |= SA_RESTART;
#endif

View File

@ -1,3 +1,80 @@
-------------------------------------------------------------------
Fri Nov 20 22:13:06 UTC 2020 - Andreas Stieger <andreas.stieger@gmx.de>
- update to 2.0.2:
* CVE-2020-28896: Ensure IMAP connection is closed after a
connection error to avoid sending credentials over an
unencrypted connection boo#1179035
-------------------------------------------------------------------
Tue Nov 10 09:10:53 UTC 2020 - Dr. Werner Fink <werner@suse.de>
- update to 2.0.0 (2020-11-07):
+ Domain-literal support for email addresses, e.g user@[IPv6:fcXX:...]
! Buffy completion only occurs for the "change-folder" set of functions.
It has been disabled for <attach-message>, <write-fcc>, the fcc
mailbox prompt, and the autocrypt scan mailbox prompt.
! The "save/copy message to mailbox" set of functions use the "mailbox"
history list, instead of the "filename" list.
! Message-ID extraction permits values missing angle brackets and '@'
to allow properly threading the garbage sent by some providers.
Mutt will add missing angle brackets when sending out replies, however.
! When adding multiple attachments, via <attach-file> in the compose menu,
the browser menu can be exiting via <quit> after tagging the files.
Previously, <select-entry> had to be used.
! ctrl-p/ctrl-n are by default bound to <history-up>/<history-down> in the
editor menu.
+ The "cd" command allows changing the current working directory.
As part of this, Mutt expands relative paths internally. There
may be a change to some "prettified" relative paths because of this.
! Some configuration variable default values are localizable by
translators. Currently these are: $attribution, $compose_format,
$forward_attribution_intro, $forward_attribution_trailer, $status_format,
$ts_icon_format, $ts_status_format.
+ Mutt will try to automatically reconnect to an IMAP mailbox on error,
and will merge unsync'ed changes if possible.
! $crypt_protected_headers_subject defaults to "...", following the
protected headers revised specification.
! Date, From, To, Cc, and Reply-To headers are stored as protected headers.
+ XOAUTH2 support. Please see the manual, contrib script mutt_oauth2.py,
and mutt_oauth.py.README for more details.
+ $tunnel_is_secure, default set, assumes a connection via $tunnel is
encrypted. Unsetting this will cause $ssl_starttls and $ssl_force_tls
to be respected.
+ Patterns are tab-completable in the editor menu.
! $reply_to is consulted before $reply_self.
+ $copy_decode_weed, default unset, controls header weeding for <decode-copy>
and <decode-save>.
+ $pipe_decode_weed, default set, enables header weeding for <pipe-message>.
+ $print_decode_weed, default set, enables header weeding for <print-message>.
! format=flowed attachments are space-unstuffed when viewed, saved,
piped, and printed.
+ The "run" command will execute MuttLisp. $muttlisp_inline_eval, if set, will
execute unquoted parenthesized command arguments as MuttLisp. Please see
the manual for more details about both.
+ $cursor_overlay, when set, will overlay the indicator, tree,
sidebar_highlight, and sidebar_indicator colors onto the current line.
"default" colors will be overridden and attributes will be merged.
! The message-id generation algorithm uses a random number instead of
the step counter and PID.
! $ssl_force_tls defaults set. (Trying this again for 2.0).
! $hostname is set *after* muttrc processing. It can be manually set
in the muttrc to avoid using DNS calls to obtain the FQDN.
+ $attach_save_dir specifies a directory to use when saving attachments.
- Port the patches to mutt 2.0.0
* aw.listreply.diff
* bug-676388-largefile.patch
* mutt-1.10.1-imap.patch
* mutt-1.13.3.dif
* mutt-1.5.15-wrapcolumn.diff
* mutt-1.5.20-sendgroupreplyto.diff
* mutt-1.5.21-mailcap.diff
* mutt-1.5.23-carriage-return.path
* mutt-1.6.1-opennfs.dif
* mutt-Fix-SIGQUIT-handling.patch
* patch-1.5.24.vk.pgp_verbose_mime
* widechar.sidebar.dif
-------------------------------------------------------------------
Thu Sep 17 19:00:58 UTC 2020 - Dirk Mueller <dmueller@suse.com>

View File

@ -20,7 +20,7 @@
%bcond_with mutt_openssl
%bcond_without mutt_gnutls
Name: mutt
Version: 1.14.7
Version: 2.0.2
Release: 0
Summary: Mail Program
# ftp://ftp.mutt.org/mutt/devel/
@ -345,6 +345,8 @@ rm -f %{_localstatedir}/adm/update-messages/%{name}-%{version}-%{release}-notify
%doc %{_docdir}/%{name}/samples/ca-bundle.crt
%doc %{_docdir}/%{name}/samples/colors.*
%doc %{_docdir}/%{name}/samples/markdown2html
%doc %{_docdir}/%{name}/samples/mutt_oauth2.py
%doc %{_docdir}/%{name}/samples/mutt_oauth2.py.README
%doc %{_docdir}/%{name}/samples/mutt_xtitle
%doc %{_docdir}/%{name}/samples/sample.*
%doc %{_docdir}/%{name}/samples/smime_keys_test.pl

View File

@ -6,7 +6,7 @@
--- globals.h
+++ globals.h 2020-01-14 13:37:00.770606718 +0000
@@ -275,6 +275,8 @@ WHERE char *PgpDefaultKey;
@@ -277,6 +277,8 @@ WHERE char *PgpDefaultKey;
WHERE char *PgpSignAs;
WHERE long PgpTimeout;
WHERE char *PgpEntryFormat;
@ -17,7 +17,7 @@
WHERE char *PgpVerifyCommand;
--- init.h
+++ init.h 2020-01-14 13:41:15.145875625 +0000
@@ -3538,9 +3538,18 @@ struct option_t MuttVars[] = {
@@ -3618,9 +3618,18 @@ struct option_t MuttVars[] = {
** a line quoted text if it also matches $$smileys. This mostly
** happens at the beginning of a line.
*/
@ -41,7 +41,7 @@
** .pp
--- pgp.c
+++ pgp.c 2020-01-14 13:42:29.880485319 +0000
@@ -1366,7 +1366,8 @@ BODY *pgp_sign_message (BODY *a)
@@ -1363,7 +1363,8 @@ BODY *pgp_sign_message (BODY *a)
t->disposition = DISPNONE;
t->encoding = ENC7BIT;
t->unlink = 1; /* ok to remove this file after sending. */

View File

@ -4,7 +4,7 @@
--- handler.c
+++ handler.c 2018-07-04 13:48:57.285110213 +0000
@@ -780,7 +780,7 @@ static void enriched_set_flags (const wc
@@ -781,7 +781,7 @@ static void enriched_set_flags (const wc
static int text_enriched_handler (BODY *a, STATE *s)
{
enum {
@ -13,7 +13,7 @@
} state = TEXT;
long bytes = a->length;
@@ -810,7 +810,7 @@ static int text_enriched_handler (BODY *
@@ -811,7 +811,7 @@ static int text_enriched_handler (BODY *
{
if (state != ST_EOF)
{
@ -22,7 +22,7 @@
state = ST_EOF;
else
bytes--;
@@ -818,6 +818,8 @@ static int text_enriched_handler (BODY *
@@ -819,6 +819,8 @@ static int text_enriched_handler (BODY *
switch (state)
{
@ -31,7 +31,7 @@
case TEXT :
switch (wc)
{
@@ -879,9 +881,8 @@ static int text_enriched_handler (BODY *
@@ -880,9 +882,8 @@ static int text_enriched_handler (BODY *
enriched_flush (&stte, 1);
else
{
@ -42,7 +42,7 @@
}
break;
@@ -1588,7 +1588,7 @@ void mutt_decode_attachment (BODY *b, ST
@@ -1589,7 +1590,7 @@ void mutt_decode_attachment (BODY *b, ST
* strip all trailing spaces to improve interoperability;
* if $text_flowed is unset, simply verbatim copy input
*/