]> granicus.if.org Git - mutt/log
mutt
8 years agoFix BODY->charset memory leaks.
Kevin McCarthy [Wed, 13 Jul 2016 00:46:09 +0000 (17:46 -0700)]
Fix BODY->charset memory leaks.

mutt_get_content_info() was directly setting charset without freeing the previous value.

mutt_free_body() was not freeing the charset.

8 years agoInitialize mutt windows even in batch mode. (closes #3853)
Kevin McCarthy [Tue, 12 Jul 2016 01:36:21 +0000 (18:36 -0700)]
Initialize mutt windows even in batch mode. (closes #3853)

mutt_select_fcc() calls mutt_addr_hook() -> mutt_make_string() which
refers to MuttIndexWindow->cols when calling mutt_FormatString().  In
batch mode, MuttIndexWindow hasn't been initialized, leading to a
segfault.

This might be the only overlap, but it seems wiser to just initialize
the mutt windows in case there are other references (now or in the
future) when processing format strings in batch mode.

8 years agoFix conststrings compiler version string generation. (closes #3852)
rich burridge [Sat, 9 Jul 2016 02:08:45 +0000 (19:08 -0700)]
Fix conststrings compiler version string generation. (closes #3852)

The Makefile.am tries compiler flags -v, --version, and -V but
neglected to filter error messages if these flags aren't recognized.

8 years agoChange sidebar highlighted mailbox behavior.
Kevin McCarthy [Sat, 9 Jul 2016 01:52:56 +0000 (18:52 -0700)]
Change sidebar highlighted mailbox behavior.

Delay selecting the highlighted mailbox until prepare_mailbox(), to
avoid a hidden mailbox being selected during the Buffy list population
(in mutt_sb_notify_mailbox()).

Change update_entries_visibility() to not automatically make the
highlighted mailbox visible.

Change prepare_sidebar() to (re)set the highlighted mailbox when the
current highlighted mailbox is hidden.

8 years agoFix sidebar pagedown/up when mailboxes on the end are hidden.
Kevin McCarthy [Sat, 9 Jul 2016 01:52:51 +0000 (18:52 -0700)]
Fix sidebar pagedown/up when mailboxes on the end are hidden.

The pageup/pagedown code was setting the highlighted mailbox to the
top and bottom index without checking if those were hidden.

8 years agoDon't overwrite imap_status->uidnext with a lower value. (closes #3771)
Kevin McCarthy [Sat, 9 Jul 2016 01:47:57 +0000 (18:47 -0700)]
Don't overwrite imap_status->uidnext with a lower value.  (closes #3771)

imap_read_headers() updates the idata and imap_status uidnext after
reading through all the new headers.

The idata is updated properly (only if its uidnext is below maxuid+1),
but the imap_status was always being set to maxuid.

This causes a problem with new mail checking if the most recent
messages are deleted.  Then the uidnext will be greater than maxuid+1
in the mailbox, and if there are any other unread messages it will
*always* report new mail even if $mail_check_recent is set.

8 years agoFix the sidebar TopIndex and BotIndex when $sidebar_new_mail_only is set.
Kevin McCarthy [Thu, 7 Jul 2016 19:00:37 +0000 (12:00 -0700)]
Fix the sidebar TopIndex and BotIndex when $sidebar_new_mail_only is set.

When set, some of the entries can be hidden, so a simple division by
page_size to find the correct top/bottom isn't correct.

Instead, manually partition into groups of page_size visible entries
and set top and bottom based on the interval around the highlighted
entry.

8 years agoFilter soft hypen from pager and headers. (closes #3848)
Kevin McCarthy [Thu, 7 Jul 2016 16:21:04 +0000 (09:21 -0700)]
Filter soft hypen from pager and headers.  (closes #3848)

Add U+00AD SOFT HYPHEN to the filtered characters in headers and the
pager.  In some terminals and situations it causes major display problems.

8 years agoFix sidebar crash for non-existent mailbox
Richard Russon [Wed, 6 Jul 2016 19:31:02 +0000 (12:31 -0700)]
Fix sidebar crash for non-existent mailbox

If you <change-folder> to a non-existent mailbox, there will be no
Context.

8 years agomerge stable
Kevin McCarthy [Wed, 6 Jul 2016 17:43:56 +0000 (10:43 -0700)]
merge stable

8 years agomutt-1.6.2 signed
Kevin McCarthy [Wed, 6 Jul 2016 17:41:54 +0000 (10:41 -0700)]
mutt-1.6.2 signed

8 years agoAdded tag mutt-1-6-2-rel for changeset 7ccd4417bd70
Kevin McCarthy [Wed, 6 Jul 2016 17:40:35 +0000 (10:40 -0700)]
Added tag mutt-1-6-2-rel for changeset 7ccd4417bd70

8 years agoautomatic post-release commit for mutt-1.6.2 mutt-1-6-2-rel
Kevin McCarthy [Wed, 6 Jul 2016 17:40:26 +0000 (10:40 -0700)]
automatic post-release commit for mutt-1.6.2

8 years agoFix the documented sort methods for sidebar_sort_method.
Kevin McCarthy [Sat, 2 Jul 2016 19:32:55 +0000 (12:32 -0700)]
Fix the documented sort methods for sidebar_sort_method.

Remove references to unused "date" and "size", and add "flagged".

8 years agoAdd R_SIDEBAR to redraw sidebar when its settings change.
Kevin McCarthy [Sat, 2 Jul 2016 19:25:59 +0000 (12:25 -0700)]
Add R_SIDEBAR to redraw sidebar when its settings change.

Add to the sidebar settings that control formatting of the sidebar.

8 years agoFix sidebar "unsorted" order to match Buffy list order.
Kevin McCarthy [Sat, 2 Jul 2016 19:24:25 +0000 (12:24 -0700)]
Fix sidebar "unsorted" order to match Buffy list order.

Since the previous commit decoupled the sidebar from the Buffy list,
we can now restore the order to match the buffy list when
sidebar_sort_method is set (back) to "unsorted".

8 years agoDecouple the sidebar from the Buffy list.
Kevin McCarthy [Sat, 2 Jul 2016 19:22:51 +0000 (12:22 -0700)]
Decouple the sidebar from the Buffy list.

Change the sidebar to use an array of SBENTRY* instead.  Move the
"is_hidden" into SBENTRY.  Remove the added "prev" pointer from BUFFY.

This way, sorting the sidebar doesn't affect the BUFFY list order, and
we don't need elements inside BUFFY just for the sidebar presentation.

Fix sidebar-next for the case where the mailboxes are unsorted and
$sidebar_new_mail_only is set.  Change sorting not to clump hidden
mailboxes at the bottom, instead simply skip over hidden mailboxes in
sidebar-next/prev.

8 years agomerge stable
Kevin McCarthy [Fri, 1 Jul 2016 20:39:51 +0000 (13:39 -0700)]
merge stable

8 years agoCheck $pgp_autoinline and $pgp_replyinline if oppenc is set. (closes #3846)
Kevin McCarthy [Fri, 1 Jul 2016 20:33:20 +0000 (13:33 -0700)]
Check $pgp_autoinline and $pgp_replyinline if oppenc is set. (closes #3846)

The first oppenc call takes place after the initial checks of
$pgp_autoline and $pgp_replyinline, and doesn't go through the pgp
menu.

Therefore, check for $pgp_autoline and $pgp_replyinline if oppenc is
set too, to avoid oppenc enabling encryption without INLINE being set
in those cases.

a6a4d6ed0f19 previously cleaned things up so that it is safe
to set INLINE even if encryption isn't enabled.

8 years agoFix missing sidebar documentation links. (closes #3847)
Kevin McCarthy [Thu, 30 Jun 2016 19:57:17 +0000 (12:57 -0700)]
Fix missing sidebar documentation links. (closes #3847)

USE_SIDEBAR needed to be set in doc/makedoc-defs.h so that the sidebar
option documentation is generated whether mutt is configured with the
sidebar or not.

8 years agoFix cppflags and muttlibs duplication with --with-gss.
Kevin McCarthy [Thu, 30 Jun 2016 01:58:53 +0000 (18:58 -0700)]
Fix cppflags and muttlibs duplication with --with-gss.

When krb5-config was found, MUTT_AM_PATH_GSSAPI included CFLAGS in
GSSAPI_CFLAGS and MUTTLIBS in GSSAPI_LIBS.  However, configure.ac
afterwards sets:
    CPPFLAGS="$CPPFLAGS $GSSAPI_CFLAGS"
    MUTTLIBS="$MUTTLIBS $GSSAPI_LIBS"
This caused the flags and libs to be duplicated.

8 years agoInclude ncurses tinfo library if found.
Kevin McCarthy [Thu, 30 Jun 2016 01:58:48 +0000 (18:58 -0700)]
Include ncurses tinfo library if found.

Thanks to Fabian Groffen for reporting this issue and providing a
couple possible patches.  From Fabian's report:

  For some time now, ncurses can be built in a mode where the low level
  terminfo functionality lives in a separate lib called libtinfo.
  Because some people do, this means Mutt needs to include this
  library in that case to avoid linking errors [...]

8 years agoClarify oppenc option documention. (closes #3846)
Kevin McCarthy [Wed, 29 Jun 2016 19:25:34 +0000 (12:25 -0700)]
Clarify oppenc option documention. (closes #3846)

Rephrase the option description to try and make it clearer what the
option does, and how to enable/disable it within a message.

8 years agoRemove unused SORT_DESC.
Kevin McCarthy [Tue, 28 Jun 2016 23:06:22 +0000 (16:06 -0700)]
Remove unused SORT_DESC.

This came over with the sidebar patch, but I believe is only used by
the notmuch extension.

8 years agoRemove $sidebar_refresh_time from Sample Sidebar Config
Fahri Cihan Demirci [Tue, 28 Jun 2016 22:59:09 +0000 (15:59 -0700)]
Remove $sidebar_refresh_time from Sample Sidebar Config

The $sidebar_refresh_time option was removed with the changeset
1f840760e6e0. Remove it from the sample sidebar configuration as well,
so that anyone using that file in its entirety won't have to deal with "unknown
variable" errors.

8 years agoChange sidebar to consistently use realpath for context and buffy comparison.
Kevin McCarthy [Thu, 23 Jun 2016 19:38:07 +0000 (12:38 -0700)]
Change sidebar to consistently use realpath for context and buffy comparison.

The original sidebar patch contained a half-implemented attempt to use
realpath() mailbox paths for comparison.  (Presumably so the open mailbox
remains highlighted despite symlink issues).

Add realpath to the Context, and set it when opening a mailbox.
Remove sidebar ifdef for the buffy member, and always set it there too.

Change the sidebar to use the realpath for comparison everywhere.

mutt_buffy_check() is using stat device and inode for comparison.
Perhaps this can be changed to use realpath instead, but that's beyond
the scope of this patch.

8 years agoChange sidebar next/prev-new to look at buffy->new too.
Kevin McCarthy [Wed, 22 Jun 2016 16:20:39 +0000 (09:20 -0700)]
Change sidebar next/prev-new to look at buffy->new too.

Look at new in addition to msg_unread count, to account for when
$mail_check_stats is unset or when the sidebar only shows the %n
status flag.

8 years agoAdd documentation to the "New Mail Detection" section of the manual.
Kevin McCarthy [Tue, 21 Jun 2016 03:09:52 +0000 (20:09 -0700)]
Add documentation to the "New Mail Detection" section of the manual.

Mention the behavior change with $mail_check_recent.

Add a section about $mail_check_stats.

8 years agoUpdated French translation.
Vincent Lefevre [Mon, 20 Jun 2016 08:11:36 +0000 (10:11 +0200)]
Updated French translation.

8 years agoadd commit_msg to struct mx_ops
Damien Riegel [Sat, 18 Jun 2016 20:36:25 +0000 (13:36 -0700)]
add commit_msg to struct mx_ops

8 years agoadd mmdf_commit_message function
Damien Riegel [Sat, 18 Jun 2016 20:36:22 +0000 (13:36 -0700)]
add mmdf_commit_message function

Move MMDF operations that were done in mx_commit_message to a dedicated
mmdf_commit_message function.

8 years agoadd mbox_commit_message function
Damien Riegel [Sat, 18 Jun 2016 20:36:22 +0000 (13:36 -0700)]
add mbox_commit_message function

Move mbox operations that were done in mx_commit_message to a dedicated
mbox_commit_message function.

8 years agoadd imap_commit_message function
Damien Riegel [Sat, 18 Jun 2016 20:36:21 +0000 (13:36 -0700)]
add imap_commit_message function

Move IMAP operations that were done in mx_commit_message to a dedicated
imap_commit_message function.

8 years agoadd maildir_commit_message function
Damien Riegel [Sat, 18 Jun 2016 20:36:19 +0000 (13:36 -0700)]
add maildir_commit_message function

This commit adds a maildir_commit_message with a prototype consistent
with other kind of mailboxes, to simplify upcoming refactoring.

8 years agoprepend maildir_commit_message function name with an underscore
Damien Riegel [Sat, 18 Jun 2016 20:36:18 +0000 (13:36 -0700)]
prepend maildir_commit_message function name with an underscore

Basically, rename maildir_commit_message to _maildir_commit_message.
This commit is preparatory to make the maildir_commit_message symbol
available for further use.

Symbols starting with underscore should be avoided but this one is long
enough to prevent collision.

8 years agoremove unused HEADER parameter in mh_commit_message
Damien Riegel [Sat, 18 Jun 2016 20:36:12 +0000 (13:36 -0700)]
remove unused HEADER parameter in mh_commit_message

mh_commit_message is only called in one place with the header parameter
set to NULL. To make the commit function consistent with other
mailboxes, which only takes ctx and msg as parameters, remove this
unused parameter.

8 years agoadd close_msg to struct mx_ops
Damien Riegel [Sat, 18 Jun 2016 19:41:45 +0000 (12:41 -0700)]
add close_msg to struct mx_ops

8 years agoRemove magic member in MESSAGE structure
Damien Riegel [Sat, 18 Jun 2016 19:41:43 +0000 (12:41 -0700)]
Remove magic member in MESSAGE structure

The "magic" was copied from the context to the message structure to be
able to determine which close function had to be called in
mx_close_message. Now that this function is context aware, there is no
need to store the magic in the MESSAGE structure and it can be safely
removed.

8 years agopass context in mx_close_message
Damien Riegel [Sat, 18 Jun 2016 19:41:42 +0000 (12:41 -0700)]
pass context in mx_close_message

The mx_close_message is one of the few mx_* functions that don't have a
context as parameter. To make them more consistent, pass the context.

8 years agoAdd open_msg to struct mx_ops
Damien Riegel [Sat, 18 Jun 2016 02:01:31 +0000 (19:01 -0700)]
Add open_msg to struct mx_ops

Add the callback to open an existing message to struct mx_ops. For mbox,
mmdf, maildir, and mh, the code was implemented directly into
mx_open_message, so it is moved in their respective source files. For
imap and pop, there were already <mailbox>_fetch_message functions, but
their argument order has been changed to pass the context as a first
argument.

8 years agofolder_file: remove struct stat
Olaf Hering [Fri, 17 Jun 2016 17:33:56 +0000 (10:33 -0700)]
folder_file: remove struct stat

Add and use new flag to indicate the folder is on local filesystem.
Add and use new gid, uid and nlink member.
Use existing ->mode member instead of stat->st_mode.
Use existing ->size member instead of stat->st_size.
Use existing ->mtime member instead of stat->st_mtime.
Remove struct stat, the used values were already duplicated in the struct.
This reduces memory usage.

8 years agoAdd real prototype for re_match_2_internal in regex.c
Olaf Hering [Fri, 17 Jun 2016 17:33:57 +0000 (10:33 -0700)]
Add real prototype for re_match_2_internal in regex.c

Fixes compilation warning with -Wunprototyped-calls

8 years agoCombine the basic and extended buffy functions.
Kevin McCarthy [Fri, 17 Jun 2016 17:30:30 +0000 (10:30 -0700)]
Combine the basic and extended buffy functions.

Add a check_stats parameter to the mbox, maildir, and mh buffy
functions.  Use that parameter to determine whether to also count
total, new, and flagged messages.

This makes the functions a bit more complicated, but improves
efficiency (for maildir and mh).

Also includes the following cleanup/fixes:
* Move the orig-value counter reset to the beginnining of the loop,
  (before tmp->new is set to 0).

* Change trashed maildir messages to not be counted in msg_count

* Remove an incorrect setting of mailbox->new based on msg_count in
  maildir.  (I missed this one for 1f840760e6e0)

* Change mbox to use the context->mtime for stats_last_checked,
  removing a race condition.

* Fix mh to actually count the messages in order to generate msg_count.
  mh_sequences only covers the range of messages with some sort of
  flag.

8 years agoUpdated French translation.
Vincent Lefevre [Wed, 15 Jun 2016 09:09:58 +0000 (11:09 +0200)]
Updated French translation.

8 years agoReset buffy->new for the current mailbox in IMAP.
Kevin McCarthy [Tue, 14 Jun 2016 20:11:56 +0000 (13:11 -0700)]
Reset buffy->new for the current mailbox in IMAP.

1f840760e6e0 moved the buffy->new reset inside the STATUS processor.
Since the current mailbox is not STATUS'ed, it needs to be reset in
imap_buffy_check().

Thanks to Aaron Schrab for reporting this issue (and for helping test
tip).

8 years agoFix the case of messages in OPS.MIX and OPS.SIDEBAR
Kevin McCarthy [Sun, 12 Jun 2016 20:49:18 +0000 (13:49 -0700)]
Fix the case of messages in OPS.MIX and OPS.SIDEBAR

Thanks to Vincent Lefèvre for spotting the discrepancy.

8 years agoMake extended buffy independent of the sidebar.
Kevin McCarthy [Tue, 7 Jun 2016 22:02:58 +0000 (15:02 -0700)]
Make extended buffy independent of the sidebar.

Add new boolean option $mail_check_stats (default off) and
$mail_check_stats_interval.  The first turns extended buffy on.  The
second sets the amount of time in between extended buffy checks
(defaulting to 60 seconds).

Remove the option $sidebar_refresh_time.

Change mutt_buffy_check() to only notify the sidebar to redraw if a
mailbox buffy value changes.

Remove the #ifdefs around the extended buffy functions.  The next
patch will merge these functions with the basic functions and pass a
parameter instead.

Imap is a special case, because it sends out the status in one batch.
Change this to perform the comparisons inside cmd_parse_status() and
flag the sidebar there.  It was previously directly assigning the
status counters (unsigned int) to the buffy->new (short).  Change this
to assign 1/0.

8 years agoChange the default for sidebar_format to use %n.
Kevin McCarthy [Wed, 8 Jun 2016 21:43:35 +0000 (14:43 -0700)]
Change the default for sidebar_format to use %n.

The next series of patches is going to create a new option,
$mail_check_stats defaulting off.  When off, the extended buffy which
calculates total/new/flagged messages won't be run.  To help reduce
"sidebar is broken" bug reports, this changes the default format to
something not requiring extended buffy.

The previous default is documented in the option and preserved in the
sample sidebar muttrc in contrib.

8 years agoAdd sidebar_format flag '%n' to display 'N' on new mail.
Kevin McCarthy [Wed, 8 Jun 2016 20:16:45 +0000 (13:16 -0700)]
Add sidebar_format flag '%n' to display 'N' on new mail.

8 years agoUpdated French translation.
Vincent Lefevre [Sat, 11 Jun 2016 15:59:37 +0000 (17:59 +0200)]
Updated French translation.

8 years agoFix alignment in the compose menu.
Richard Russon [Thu, 9 Jun 2016 19:06:10 +0000 (12:06 -0700)]
Fix alignment in the compose menu.

Several of the compose-panel labels didn't use the TITLE_FMT to align
themselves.  This causes formatting problems when the width is changed,
e.g. by the NNTP patch.

8 years agoCorrected OPS.SIDEBAR filename in EXTRA_DIST.
Vincent Lefevre [Wed, 8 Jun 2016 11:28:54 +0000 (13:28 +0200)]
Corrected OPS.SIDEBAR filename in EXTRA_DIST.

8 years agoSetting $sidebar_width to more than 128 would cause bad things to happen.
Richard Russon [Tue, 7 Jun 2016 20:40:04 +0000 (13:40 -0700)]
Setting $sidebar_width to more than 128 would cause bad things to happen.

First, give the users more than enough space.
Second, don't pad out short strings beyond the buffer

---
 sidebar.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

8 years agoFix columns used for $status_format and $pager_format in the pager.
Kevin McCarthy [Tue, 7 Jun 2016 20:27:45 +0000 (13:27 -0700)]
Fix columns used for $status_format and $pager_format in the pager.

The code was hardcoding use of MuttIndexWindow->cols in
mutt_make_string_info() and MuttStatusWindow->cols in
menu_status_line().

Add a parameter to mutt_make_info_string().  Change menu_status_line()
to use menu->statuswin->cols, falling back to MuttStatusWindow if no
menu is passed in.

Set menu->statuswin appropriately inside pager.c.

Thanks to Richard Russon for tracking down this problem, and for the initial patch.

8 years agoAdd warning in makedoc for unexpected prefices. (see #3845)
Kevin McCarthy [Mon, 6 Jun 2016 01:30:37 +0000 (18:30 -0700)]
Add warning in makedoc for unexpected prefices. (see #3845)

In case other types get renamed again in the future, add a warning
message to makedoc.c.

8 years agoFix sidebar buffy stats updating on mailbox close.
Kevin McCarthy [Mon, 6 Jun 2016 01:05:41 +0000 (18:05 -0700)]
Fix sidebar buffy stats updating on mailbox close.

Move the mutt_sb_set_buffystats() call from mx_fastclose_mailbox() to
the bottom of mx_close_mailbox().  Append-only mailboxes don't have
msgcount set, so fastclose was the wrong place to be doing these
updates.

8 years agoStart to fix sidebar buffy modifications.
Kevin McCarthy [Sat, 4 Jun 2016 18:32:12 +0000 (11:32 -0700)]
Start to fix sidebar buffy modifications.

The extended buffy for mh had incorrect placement of the loop
brackets.  The counters weren't being incremented in the loop.

Fix extended buffy for maildir to count a maildir message as new if it
doesn't have the info delimeter.

Remove shortcircuits added to the basic buffy stating there is new
mail when (msg_unread > 0).  This is not necessarily true, depending
on $mail_check_recent.

Note: the extended buffy still needs more fixes, which will be done
when it is refactored into its own option.

8 years agoVarious fixes to the sidebar logic.
Kevin McCarthy [Sat, 4 Jun 2016 18:32:09 +0000 (11:32 -0700)]
Various fixes to the sidebar logic.

Use strfcpy instead of strncpy.  The current logic could write past
the end of the buffer.

Don't mess with BUFFY next pointers during removal.  The
mutt_parse_mailboxes() is fine, but this is still not something that
should be done inside sidebar.c.

On removal, set next->prev since we can.

Fix unmailboxes logic:
  * only fix the prev pointers once.
  * if we unmailbox the open mailbox, set it to NULL.

Lastly, flag a redraw on mailboxes/unmailboxes.

8 years agoAdd "mutt_" prefix to global sidebar functions.
Kevin McCarthy [Sat, 4 Jun 2016 18:32:08 +0000 (11:32 -0700)]
Add "mutt_" prefix to global sidebar functions.

Also, remove unused sb_init declaration.

8 years agoClean up the sidebar manual.
Kevin McCarthy [Sat, 4 Jun 2016 18:32:07 +0000 (11:32 -0700)]
Clean up the sidebar manual.

Remove the introduction section.  It's a nice effort, but reads more
like a tutorial than something that belongs in section 2.  Will
probably put in on the website instead.

Remove references to a "patch", neomutt, and the history.

Remove the sample muttrc from the manual.

Fix validation errors for the documentation.

8 years agoRe-indent and style sidebar.c.
Kevin McCarthy [Sat, 4 Jun 2016 18:32:06 +0000 (11:32 -0700)]
Re-indent and style sidebar.c.

8 years agoFix sidebar check_sec.sh warnings.
Kevin McCarthy [Sat, 4 Jun 2016 18:32:04 +0000 (11:32 -0700)]
Fix sidebar check_sec.sh warnings.

Use safe_malloc, FREE, and the safe_strcat functions.

8 years agoSidebar clean up: building and drawing logic.
Kevin McCarthy [Sat, 4 Jun 2016 18:32:03 +0000 (11:32 -0700)]
Sidebar clean up: building and drawing logic.

Fix the autoconf/makefile.am changes to be consistent.

Create a global SidebarNeedsRedraw to indicate a redraw is needed,
instead of putting sb_draw() everywhere in the code.

Create a menu_redraw_sidebar() function and use the REDRAW_SIDEBAR
flag instead of piggy-backing it inside the index loop.

Fix curs_main.c and pager.c to be a bit cleaner by using the global and
REDRAW_SIDEBAR.

Start to clean up some of the buffy code, but this needs to refactored
and fixed.

8 years agoAdd neomutt version of sidebar patch. (closes #3829)
Richard Russon [Sat, 4 Jun 2016 18:31:56 +0000 (11:31 -0700)]
Add neomutt version of sidebar patch.  (closes #3829)

This is the patch from neomutt; branch 'devel/win-sidebar'; commit
c796fa85f9cacefb69b8f7d8545fc9ba71674180 with the following changes:

  - move the sample muttrc and vimrc to contrib.
  - remove the README.sidebar.
  - empty out the PATCHES file.

8 years agoFix documentation for DT_MAGIC types. (closes #3845)
Kevin McCarthy [Tue, 31 May 2016 20:20:28 +0000 (13:20 -0700)]
Fix documentation for DT_MAGIC types. (closes #3845)

With the rename of M_ to MUTT_, the documentation generator in
makedoc.c needed to be adjusted for the new prefix size.

Thanks to Damien Riegel for the suggested fix.

8 years agoFix header file indentation after M_ prefix renaming.
Kevin McCarthy [Thu, 26 May 2016 21:45:02 +0000 (14:45 -0700)]
Fix header file indentation after M_ prefix renaming.

The use of tabs caused misalignment of various macro definitions.

8 years agoadd check operation to struct mx_ops
Damien Riegel [Thu, 26 May 2016 21:05:42 +0000 (14:05 -0700)]
add check operation to struct mx_ops

In mx_check_mailbox switch case, we simply call
<mailbox>_check_mailbox, so this operation can be move into the mx_ops
structure pretty easily.

This commit adds a mandatory "check" operation to struct mx_ops and
change all mailboxes to use it. Check functions are made static as they
are only used in their respective source files now.

8 years agomx_check_mailbox: remove lock argument in function call
Damien Riegel [Thu, 26 May 2016 21:05:39 +0000 (14:05 -0700)]
mx_check_mailbox: remove lock argument in function call

This function is only called in one place with lock = 0. Basically, all
code under if (lock) is dead code, so we can remove it, making the
function simpler to factorize.

8 years agoadd function imap_check_mailbox_reopen
Damien Riegel [Thu, 26 May 2016 21:05:36 +0000 (14:05 -0700)]
add function imap_check_mailbox_reopen

In mx_check_mailbox, imap mailbox is the only function with a different
prototype: it has an extra force argument.

In order to move the check operation to the mx_ops structure, we need
that all mailboxes have the same prototype. To do so, a new function
imap_check_mailbox_reopen is added.

8 years agoAdd a TODO to mx_open_new_message() to use mx_ops in the future.
Kevin McCarthy [Wed, 25 May 2016 22:58:04 +0000 (15:58 -0700)]
Add a TODO to mx_open_new_message() to use mx_ops in the future.

We can't use it until mx_open_mailbox_append() is converted to
set mx_ops.

8 years agoadd open_new_msg operation to struct mx_ops
Damien Riegel [Wed, 25 May 2016 22:53:07 +0000 (15:53 -0700)]
add open_new_msg operation to struct mx_ops

The code was already using a function pointer to do this operation. This
commit moves this function pointer to the mx_ops structure and the
open_new_message functions to their respective source files if it needs
to.

8 years agomerge stable
Kevin McCarthy [Tue, 24 May 2016 19:45:21 +0000 (12:45 -0700)]
merge stable

8 years agoFix infinite loop when help is bound to a named key combination.
Kevin McCarthy [Tue, 24 May 2016 19:08:46 +0000 (12:08 -0700)]
Fix infinite loop when help is bound to a named key combination.

Commit a07e8215a0ef introduced a bug in km_error_key, which is called
when an unbound key is pressed.

If help is bound to a sequence containing named keys (e.g. <esc>), the
raw (untokenized) string would be pushed back into the unget buffer.
This could lead to an infinite loop of unbound key presses triggering
more unbound keys being put into the unget buffer.

Change km_error_key to tokenize the string before putting it in the unget buffer.

Much thanks to Jiri Bohac for his bug report, analysis, and initial patch!

8 years agoStart decoupling mailbox operations.
Damien Riegel [Thu, 12 May 2016 19:41:25 +0000 (12:41 -0700)]
Start decoupling mailbox operations.

Introduce a dedicated structure for mailbox operations: struct mx_ops.
Move the open and close operations into that structure.

Assign this structure to the context in mx_open_mailbox.  This is
currently based on the "magic" for the mailbox type, but may be
refactored in the future.

Add a stub mbox_close_mailbox function.  This function does nothing,
the main purpose is to introduce a mx_ops structure for mbox, so its
usage is similar to mh/imap/pop.  We reuse the name that was made
available by the previous commmit.  Note that the actual closing of
the descriptor is done in mx.c.

To be more consistent with other mailboxes, introduce functions
mh_open_mailbox and maildir_open_mailbox, and create a dedicated
structure for mmdf.

8 years agorename mbox_close_mailbox to mx_close_mailbox_append and move it
Damien Riegel [Thu, 12 May 2016 19:41:01 +0000 (12:41 -0700)]
rename mbox_close_mailbox to mx_close_mailbox_append and move it

mbox_close_mailbox was used as the counterpart of
mx_open_mailbox_append. To make things clearer, rename it
mx_close_mailbox_append.

As it is only used in mx.c, move it there and make it static.

8 years agoSet COLUMNS to MuttIndexWindow->cols in mutt_create_filter_fd. (closes #3837)
Kevin McCarthy [Tue, 10 May 2016 16:42:27 +0000 (09:42 -0700)]
Set COLUMNS to MuttIndexWindow->cols in mutt_create_filter_fd. (closes #3837)

This allows filters to automatically (or via a command line argument)
adjust to the width of the pager/index.  This is even more important
with the sidebar, since the width of the pager is smaller than the
terminal width.

Thanks to Vincent Lefèvre for his helpful information and suggestions,
and to Richard Russon for the initial patches.

8 years agoBack out wrapper sys_socket.h workaround (23334e967dd7)
Kevin McCarthy [Mon, 9 May 2016 21:06:59 +0000 (14:06 -0700)]
Back out wrapper sys_socket.h workaround (23334e967dd7)

After renaming all internal macros from M_* to MUTT_*, the
sys_socket.h workaround is no longer necessary.

8 years agoChange M_* symbols to MUTT_*
Derek Martin [Mon, 9 May 2016 21:06:54 +0000 (14:06 -0700)]
Change M_* symbols to MUTT_*

Changeset 23334e967dd7 created a workaround for a namespace conflict
with Solaris and derivatives.  After some discussion, the team decided
it would be best to move away from using the "M_" prefix for macros.

This patch was automatically generated by running:
  perl -wpi -e 's/\bM_(\w+)\b/MUTT_$1/g' `find . -name '*.[ch]' -print`
with the exception that sys_socket.h was exempted.  (That file will
be backed out subsequent to this commit.)

Thanks to Andras Salamon for supplying the perl script used to make
this change.

8 years agoSkip bidi markers in the pager and index. (closes #3827)
Kevin McCarthy [Tue, 3 May 2016 20:21:41 +0000 (13:21 -0700)]
Skip bidi markers in the pager and index.  (closes #3827)

Curses and slang don't support them, so there's little point in
showing them or attempting to somehow deal with them.

This patch adds filtering in the pager, and changes the filtering
added in 6e0aca94cdb0 for the index to completely skip the marker.

8 years agoChange mutt_window_getyx() to accept NULL *y/*x params.
Kevin McCarthy [Tue, 3 May 2016 16:46:51 +0000 (09:46 -0700)]
Change mutt_window_getyx() to accept NULL *y/*x params.

Thanks to Vincent Lefèvre for suggesting this nice cleanup.
Previously, _mutt_get_field() was employing an ugly hack to avoid an
unused var warning.

8 years agomerge stable
Kevin McCarthy [Sat, 30 Apr 2016 21:39:19 +0000 (14:39 -0700)]
merge stable

8 years agomutt-1.6.1 signed
Kevin McCarthy [Sat, 30 Apr 2016 21:25:49 +0000 (14:25 -0700)]
mutt-1.6.1 signed

8 years agoAdded tag mutt-1-6-1-rel for changeset 1ef1e39a7218
Kevin McCarthy [Sat, 30 Apr 2016 21:23:32 +0000 (14:23 -0700)]
Added tag mutt-1-6-1-rel for changeset 1ef1e39a7218

8 years agoautomatic post-release commit for mutt-1.6.1 mutt-1-6-1-rel
Kevin McCarthy [Sat, 30 Apr 2016 21:21:44 +0000 (14:21 -0700)]
automatic post-release commit for mutt-1.6.1

8 years agoFix pager mini-index drawing when $pager_index_lines = 1 and $status_on_top.
Kevin McCarthy [Sat, 30 Apr 2016 20:05:43 +0000 (13:05 -0700)]
Fix pager mini-index drawing when $pager_index_lines = 1 and $status_on_top.

When $pager_index_lines is 1, there is room for the index status line,
but not for any actual index entries.  The index redraw part was
always calling menu_redraw_current() which doesn't actually check if
there is room for the current row.

This bug only shows up with $status_on_top, due to the order things
are redrawn.

8 years agoFix pager layout when $status_on_top with no mini-index. (closes #3836)
Kevin McCarthy [Sat, 30 Apr 2016 17:50:43 +0000 (10:50 -0700)]
Fix pager layout when $status_on_top with no mini-index.  (closes #3836)

The pager_window->row_offset should only be adjusted when we have a
mini-index.

Pull common window initialization above, and adjust only when the
mini-index is enabled.  The pager_window rows and row_offset code
could be further consolidated (since the status line is always a
height of one), but I think the code reads a bit more clearly when the
adjustments are explicitly stated.

8 years agoRemove newline insertion from pager. (closes #3835)
Kevin McCarthy [Sat, 30 Apr 2016 01:00:10 +0000 (18:00 -0700)]
Remove newline insertion from pager. (closes #3835)

The window patches commited now manually move to the next line, so
there is no need to insert newlines for that purpose.

The newlines also goof windows placed to the right of the pager, as is
the case for the (currently external) sidebar-on-the-right
functionality.

Thanks to Richard Russon for the original patch and help testing the
revised patch.

8 years agoAdd cols parameter to mutt_FormatString()
Kevin McCarthy [Thu, 28 Apr 2016 00:56:59 +0000 (17:56 -0700)]
Add cols parameter to mutt_FormatString()

Continuing with the conversion to using windows for screen drawing,
mutt_FormatString() was directly using COLS for right justification
and similar formatting.  Instead pass in a parameter, cols.

This change involved seeding the parameter through callback functions
too, as many of them call mutt_FormatString() back.

8 years agoFix remaining direct usages of COLS/LINES to use mutt window functions.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:58 +0000 (17:56 -0700)]
Fix remaining direct usages of COLS/LINES to use mutt window functions.

Most of these were just message update/clearing.

8 years agoChange remailer to use mutt windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:57 +0000 (17:56 -0700)]
Change remailer to use mutt windows.

8 years agoModify the built-in editor to use windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:56 +0000 (17:56 -0700)]
Modify the built-in editor to use windows.

This only involved changing to use the MuttMessageWindow.

8 years agoModify the compose screen to use windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:56 +0000 (17:56 -0700)]
Modify the compose screen to use windows.

The header field positions enum is now started at 0: the windows
compute the relative positioning as needed.  A small improvement from
this is that the headers now align with the top: there isn't a gap if
$help is turned off.

8 years agoModify the pager to use windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:55 +0000 (17:56 -0700)]
Modify the pager to use windows.

The pager view is somewhat complex, due to the "mini-index" and the
positioning of the index_status vs pager_status changes depending on
$status_on_top as well as $pager_index_lines and $help.

To make things simpler, it creates four "pager windows":
index_status_window, index_window, pager_status_window, pager_window.

mutt_term_width() is renamed to mutt_window_wrap_cols() and a
mutt_window_t parameter passed in.

Also, the pager drawing loop calling display_line() has a
mutt_window_move() added to move to the beginning of the next line
each time.  This is in case the pager_window isn't flush with the left
side of the terminal.

8 years agoModify the index to use windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:54 +0000 (17:56 -0700)]
Modify the index to use windows.

Change the index screen to use MuttIndexWindow and MuttStatusWindow.

8 years agoModify enter.c routines to use windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:53 +0000 (17:56 -0700)]
Modify enter.c routines to use windows.

This modifies the mutt_enter_string() functions to use MuttMessageWindow.

Thanks to Richard Russon for pointing out slang doesn't support getcurx.

8 years agoModify the curs_lib.c to use windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:52 +0000 (17:56 -0700)]
Modify the curs_lib.c to use windows.

This changes some of the "prompting" routines to use the MuttMessageWindow.

8 years agoModify the menu code to use windows.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:51 +0000 (17:56 -0700)]
Modify the menu code to use windows.

Change menu.c to use the mutt_window_t structures and functions.  The
index/stats/help/message window pointers are stored inside the menu_t.
This is useful for the pager, where the "index" we want to use is a
mini-index.

8 years agoAdd window structures to use for screen layout.
Kevin McCarthy [Thu, 28 Apr 2016 00:56:49 +0000 (17:56 -0700)]
Add window structures to use for screen layout.

This is a series of 11 patches, centralizing Mutt screen drawing
inside windows (mutt_window_t structures).

Currently, the screen drawing and cursor positioning logic is
distributed all over the code, resulting in many files having the same
logic of where the help, status, message windows are.  Additionally,
the code directly uses move and mvadd*/mvprint* functions, which means
if the layouts are changed, the row/column computation logic needs to
be changed all over the place.

The patch creates a (very simple) mutt_window_t structure and
functions for moving, addch/str/printw, along with clearing the line.
The windows keep track of where they are on the screen, allowing the
Mutt code to simply position elements relative to the window.

During curses initalization, and when the window is resized, the
window sizes and positions and recomputed.  Also, a new option flags,
R_REFLOW is added for options that need to force a reflow when they are changed.

Thanks to Richard Russon for pointing out the slang compilation issue.

8 years agomerge stable
Kevin McCarthy [Wed, 27 Apr 2016 20:21:15 +0000 (13:21 -0700)]
merge stable

8 years agoCreate a wrapper sys_socket.h to work around Solaris namespace issues. (closes ...
Kevin McCarthy [Wed, 27 Apr 2016 20:08:52 +0000 (13:08 -0700)]
Create a wrapper sys_socket.h to work around Solaris namespace issues.  (closes #3833)

Solaris includes "sys/stream.h" inside their "sys/socket.h".  This
include file adds many non-reserved macros to Mutt's namespace, two of
which conflict with existing Mutt macros.

The simplest fix would be to rename those macros in Mutt, however this
will cause difficulty with out-of-tree patches.  This fix creates a
wrapper include file that preserves those existing macros and prevents
the Solaris values from entering Mutt's namespace.