Allow my_var assignments to reference the $my_var in the value.

This is important for MuttLisp, where the current value could be used
to determine the new assignment.
Fix MuttLisp extract_token() call to remove trailing whitespace.

MoreArgs() doesn't look for whitespace, and so assumes
mutt_extract_token() will remove trailing whitespace too.
7fe1aaad — Olaf Hering 3 months ago
refresh de.po

Signed-off-by: Olaf Hering <olaf@aepfle.de>
0b3fc03c — Maxim Tarasov 4 months ago
Fix man section in reference to mutt_dotlock
661bd665 — Maxim Tarasov 4 months ago
Update mutt.1 manpage

* Change the wording for some options to be imperative.

* Rename parameters to be descriptive ("draft" instead of "file").

* Mention possible values for -m parameter.

* Change "file [...]" to "file ..." as ellipsis already implies it's

* Format entries in the SYNOPSIS to avoid wrapping inside square

* Space out examples in -a description.

* Use consistent formatting everywhere: options using B, paths and
  option values using I, manual references using BR.

* Group together descriptions of EDITOR and VISUAL environment
  variables since they're closely related. Mention the default editor.

* Add references to these environment variables: EGDSOCKET, RANDFILE,

* Clarify the way TMPDIR is used.

* Add ~/.muttdebug0 to the FILES section.

* Add missing manual pages to the SEE ALSO section. Sort the list.

* Add line breaks after sentences (this is recommended in roff manual
  to enable sentence processing; sentences are double spaced
be906781 — Asif Talybov 4 months ago
Update russian translation - add a missing character and fix typo
Fix a few typos in the manual.
Add missing commands in the muttrc.man page.
Add empty-request lines to muttrc.man for spacing.

Adding them makes it a bit easier to see where the different commands
stop and start.
Change POP3 oauth to not use initial response.

The Microsoft documents indicate their implementation requires a
  < +
  > token

I don't have their services configured to test, but it's safer to
assume not all implementations will support initial response.

I did test Gmail's and they are fine with the second round trip.
Improve w3m invocation for manual.txt generation.

This fix is also from Ambrose Li (@gniw).  The invocation makes sure
w3m won't attempt a remote connection if manual.html doesn't exist and
a proxy is configured, by using manual.txt as stdin.

It also gives a non-zero exit status in that case, and makes sure
input is processed as utf-8.
daab98e3 — Maxim Tarasov 4 months ago
Change \fC to \fB during muttrc.man generation

\fC is not actually a valid escape sequence. Using it results in
misplaced underlined formatting.
Merge branch 'stable'
Prevent lynx from dumping a remote site if manual.txt is missing.

Ambrose Li reported that if the xsltproc step fails in manual
generation, lynx will dump a *remote* site to manual.txt, because
manual.html does not exist.  w3m and elinks appear not to have this

Prevent lynx from doing this by adding '-localhost' flag.

Ambrose also suggested prefixing './manual.html' instead should fix
the problem, but to be conservative about not breaking anything I'm
just adding the '-localhost' flag.
6479ec5c — Maxim Tarasov 4 months ago
Mention $XDG_CONFIG_HOME in the manpage

Mutt supported processing $XDG_CONFIG_HOME/mutt/muttrc for a while
now, but mutt(1) man page hasn't been updated to reflect that.

This will also replace .IP with .TP to use one line per file name and
highlight file names with .I which is common practice in manual
Fix redraw_motion() redraw bug.

Commit e2a28006 moved the cur_color assignment so that $arrow_cursor
could also use the value for overlays.

Unfortunately, it at the same time moved the call *after* the call to
mutt_window_move(), which would introduce a drawing bug if
menu->color() went across IMAP.

The previous commit removed overlays for $arrow_cursor, also removing
the need for cur_color to be assigned for both.  Move it back to where
it was before.
12ff55e2 — Maxim Tarasov 4 months ago
Add color overlay to print_enriched_string().

It is called by main menu drawing routines and contains its own
conditional coloring of a tree component. As is, everything in there
gets overwritten by the indicator. Furthermore, do_color parameter
specifically disables any coloring in order for indicator highlight to
overwrite everything else.

We need to merge three colors here:

1) index color;
2) tree color, that is drawn within menu using its own color;
3) indicator color, that, if active, is drawn over both of them.

Combining these colors is implemented in that order.

After some testing, I think it doesn't make sense to merge colors when
$arrow_cursor is on. This part is reverted to the original behavior.

Make print_enriched_string() coloring behavior self-contained, instead
of assuming the proper base_color is already set.  This makes the
callers simpler and allows them to only handle $arrow_cursor logic.
aa8e6d4c — Maxim Tarasov 4 months ago
Fix cursor overlay logic.

Attributes should always be merged, not only when indicator background
or foreground is set.
Don't increment color refcount for overlays.

Add a ref parameter, setting to 0 for the overlays.

The pager also allocates temporary colors, but seems to take the
trouble to try and free them too.
Add $cursor_overlay, default unset, to control overlaying.

Although I think the new behavior is desirable, experience has shown
that changes need to be controlled by an option and usually defaulting
the same as before.
e2a28006 — Maxim Tarasov 4 months ago
Add cursor overlay capability.

Currently, when the indicator line is over an unread message, full
indicator color definition is used, and the line is no longer
displayed bold. It's harder to notice when using default reverse style
for the indicator, but it becomes much more prominent when you have
black on white display and only subtle change in the indicator

We could improve this by merging indicator color definition with color
definition of the underlying menu item. Here is how it's done:

1. First color definitions for the indicator and underlying menu item
are taken and split back to foreground, background and attributes
(meaning bold, underline, etc.).
2. If indicator does not specify foreground or background color, new
color pair is created by using underlying menu item as base. Else
indicator's own foreground and background are used (current behavior).
3. Then attributes of both colors are combined together. For example,
if indicator has 'underline' and menu item has 'bold' result will be
highlighted as 'bold underline'.
4. The resulting color is used in place of MT_COLOR_INDICATOR when
highlighting things in menu.c.

Combining attributes this way makes sense to me, because indicator is
meant to _indicate_, meaning increasing information density. It also
looks better when moving through the list containing differently
styled items.

This patch affects indicator, sidebar_highlight, and sidebar_indicator
color objects.