]> granicus.if.org Git - neomutt/log
neomutt
7 years agobuild: use SEEK_SET, SEEK_CUR, SEEK_END
Richard Russon [Wed, 5 Apr 2017 12:43:56 +0000 (13:43 +0100)]
build: use SEEK_SET, SEEK_CUR, SEEK_END

Change all the uses of fseek() and fseeko() to use defined constants:
    SEEK_SET, SEEK_CUR, SEEK_END

7 years agobuild: remove unused macros
Richard Russon [Mon, 3 Apr 2017 20:07:56 +0000 (21:07 +0100)]
build: remove unused macros

Remove some unused macros and substitue in one that is used just once.

7 years agodrop comment from sidebar docs
Richard Russon [Fri, 31 Mar 2017 16:53:30 +0000 (17:53 +0100)]
drop comment from sidebar docs

The comment is no longer applicable.

7 years agodrop duplicate versions of the sidebar contrib
Richard Russon [Fri, 31 Mar 2017 16:53:17 +0000 (17:53 +0100)]
drop duplicate versions of the sidebar contrib

These:
    contrib/sample.muttrc-sidebar
    contrib/sample.vimrc-sidebar
are dupes of:
    doc/muttrc.sidebar
    doc/vimrc.sidebar

7 years agoadd full neomutt version to log startup
Richard Russon [Fri, 31 Mar 2017 16:45:11 +0000 (17:45 +0100)]
add full neomutt version to log startup

Changes:
    NeoMutt/20170306 (1.8.0) debugging at level 2
to
    Neomutt 20170306-98-bf1d78 (1.8.0) debugging at level 2

7 years agobuild: fix warnings
Richard Russon [Wed, 5 Apr 2017 15:54:02 +0000 (16:54 +0100)]
build: fix warnings

7 years agoeducate github's linguist
Richard Russon [Fri, 7 Apr 2017 13:12:44 +0000 (14:12 +0100)]
educate github's linguist

GitHub creates language stats about NeoMutt using "linguist".
Unfortunately, it thinks that mutt.h and init.h are C++.

7 years agomerge: upstream fixes (mutt/default)
Richard Russon [Sun, 2 Apr 2017 01:31:28 +0000 (02:31 +0100)]
merge: upstream fixes (mutt/default)

 * Fix mutt_refresh() pausing during macro events.
 * Add a menu stack to track current and past menus.
 * Change CurrentMenu to be controlled by the menu stack.
 * Set refresh when popping the menu stack.
 * Remove redraw parameter from crypt send_menus.
 * Don't full redraw the index when handling a command from the pager.
 * Filter other directional markers that corrupt the screen.
 * Remove the OPTFORCEREDRAW options.
 * Remove SidebarNeedsRedraw.
 * Change reflow_windows() to set full redraw.
 * Create R_MENU redraw option.
 * Remove refresh parameter from mutt_enter_fname().

7 years agoRemove refresh parameter from mutt_enter_fname().
Kevin McCarthy [Sat, 1 Apr 2017 01:15:31 +0000 (18:15 -0700)]
Remove refresh parameter from mutt_enter_fname().

Also remove it from mutt_save_message(), which used it to pass through
to mutt_enter_fname().  The callers of this already had redraw logic,
to which REDRAW_STATUS merely needed to be added.

7 years agoCreate R_MENU redraw option.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:28 +0000 (18:15 -0700)]
Create R_MENU redraw option.

Previously, the R_INDEX option meant both the index as well as all
other menus.  The removal of the OPTFORCEREDRAWINDEX option caused problems
with redrawing other menus for options such as arrow_cursor.

One solution would be change R_INDEX back to meaning "everything"
except pager, but there are only a handful of options that affect
other menus.

Instead, create R_MENU to indicate options that affect either all
menus or one of the other menus beside the index and pager.

7 years agoChange reflow_windows() to set full redraw.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:22 +0000 (18:15 -0700)]
Change reflow_windows() to set full redraw.

A full redraw should always be set in this case.  This also enables us
to remove redraw flags for some options.

7 years agoRemove SidebarNeedsRedraw.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:20 +0000 (18:15 -0700)]
Remove SidebarNeedsRedraw.

The menu stack can be used to flag a redraw of the sidebar window.

7 years agoRemove the OPTFORCEREDRAW options.
Kevin McCarthy [Sat, 1 Apr 2017 01:15:12 +0000 (18:15 -0700)]
Remove the OPTFORCEREDRAW options.

Use the menu stack to flag redraws for the index and pager.

7 years agoFilter other directional markers that corrupt the screen.
Vincent Lefevre [Fri, 31 Mar 2017 15:29:35 +0000 (17:29 +0200)]
Filter other directional markers that corrupt the screen.

7 years agoDon't full redraw the index when handling a command from the pager.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:45 +0000 (18:31 -0700)]
Don't full redraw the index when handling a command from the pager.

This causes a noticable flicker when moving through messages from the pager.

7 years agoRemove redraw parameter from crypt send_menus.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:43 +0000 (18:31 -0700)]
Remove redraw parameter from crypt send_menus.

The parameter was used to notify the caller if the sign (a)s menu was
invoked, which displayed the key selection menu.  This is no longer
necessary with the menu stack pop operation.

7 years agoSet refresh when popping the menu stack.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:41 +0000 (18:31 -0700)]
Set refresh when popping the menu stack.

This removes the need for the OPTNEEDREDRAW option and MAYBE_REDRAW
macro previously used to communicate back the need to refresh after
exiting a menu.

Remove the redraw parameter from ci_bounce_message() and
mix_make_chain() which served the same purpose.

7 years agoChange CurrentMenu to be controlled by the menu stack.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:40 +0000 (18:31 -0700)]
Change CurrentMenu to be controlled by the menu stack.

The pager menu is a bit tricky with respect to the menu->menu and
CurrentMenu, so add a few comments.

7 years agoAdd a menu stack to track current and past menus.
Kevin McCarthy [Mon, 27 Mar 2017 01:31:39 +0000 (18:31 -0700)]
Add a menu stack to track current and past menus.

Change the pager to use a MENU, right now just to hold the refresh
state.

7 years agoFix mutt_refresh() pausing during macro events.
Kevin McCarthy [Sun, 26 Mar 2017 19:27:15 +0000 (12:27 -0700)]
Fix mutt_refresh() pausing during macro events.

Changeset a07e8215a0ef split input buffering into two pools.
Unfortunately, the mutt_refresh() was not changed to check the correct
buffer count, resulting in unnecessary refreshes during macros.

The SSL interactive certificate prompts set OPTIGNOREMACROEVENTS and
then put up a confirmation menu.  Perhaps we've just been lucky, but
it seems we should refresh the screen in those cases if we're in the
middle of a macro.  Add a check for this option in mutt_refresh() too.

7 years agomerge: Tidy the code - Part 3
Richard Russon [Thu, 30 Mar 2017 22:25:56 +0000 (23:25 +0100)]
merge: Tidy the code - Part 3

 * fix: typo in browser_compare_count{_new}
 * build: remove generated files from repo
 * tidy: comments
 * build: look for translations in all files
 * fix: arguments to printf-style functions
 * tidy: license text
 * tidy: unify include-guards
 * build: tidy makefiles
 * tidy: initialise pointers
 * tidy: make strcmp-like functions clearer
 * tidy: unify sizeof usage
 * build: remove forward declarations
 * tidy: remove ()s from return

7 years agotidy: remove ()s from return 488/head
Richard Russon [Sun, 26 Mar 2017 01:19:36 +0000 (02:19 +0100)]
tidy: remove ()s from return

The 'return' operator doesn't require its argument to the ()'d.
This has lead to some very inconsistent code.

This commit removes the ()s from return where the argument is a single
token, e.g.
    return 42;
    return fn(x);

There are ~480 occurrences.

7 years agobuild: remove forward declarations
Richard Russon [Sat, 25 Mar 2017 16:20:01 +0000 (16:20 +0000)]
build: remove forward declarations

7 years agotidy: unify sizeof usage
Richard Russon [Sat, 25 Mar 2017 15:57:40 +0000 (15:57 +0000)]
tidy: unify sizeof usage

The sizeof operator doesn't always require the argument to be ()'d.
However it wasn't used consistently.  Add ()s to all uses of sizeof.

7 years agotidy: make strcmp-like functions clearer
Richard Russon [Thu, 23 Mar 2017 02:28:31 +0000 (02:28 +0000)]
tidy: make strcmp-like functions clearer

There are ~600 uses of strcmp-like functions:
- ascii_strcasecmp
- ascii_strcmp
- ascii_strncasecmp
- ascii_strncmp
- imap_mxcmp
- imap_wordcasecmp
- mutt_inbox_cmp
- mutt_strcasecmp
- mutt_strcmp
- mutt_strncasecmp
- mutt_strncmp
- strcasecmp
- strcmp
- strncasecmp
- strncmp
- wcscasecmp

Because strcmp returns 0 on a successful match, conditionals can easily
be misread:

    if (strcmp(s, "hello"))
    {
        /* code if string 's' DOES NOT match */
    }

These have been changed to explicitly mention the return value:

    if (strcmp(s, "hello") != 0)
    {
        /* code if string 's' DOES NOT match */
    }

7 years agotidy: initialise pointers
Richard Russon [Wed, 22 Mar 2017 22:16:16 +0000 (22:16 +0000)]
tidy: initialise pointers

Initialise ~1000 pointer declarations to NULL.
This incurs a very tiny cost at runtime.

This command was used to create a vim location-list:
    grep -ni "^[ ^I]\+\<[a-z_0-9]\+ *\* *[a-z_0-9]\+;"

7 years agobuild: tidy makefiles
Richard Russon [Mon, 20 Mar 2017 19:12:32 +0000 (19:12 +0000)]
build: tidy makefiles

- sort out subdirs
- remove unnecessary HAVE_CONFIG_H define
- tidy source lists
- drop NLS config reference
- drop unused make targets

7 years agotidy: unify include-guards
Richard Russon [Thu, 16 Mar 2017 23:19:36 +0000 (23:19 +0000)]
tidy: unify include-guards

- add missing include-guards
- unify existing include-guards
- unnecessary conditionals around whole source

7 years agotidy: license text
Richard Russon [Thu, 16 Mar 2017 18:30:31 +0000 (18:30 +0000)]
tidy: license text

- add missing license text
- tidy existing license text

7 years agofix: arguments to printf-style functions
Richard Russon [Tue, 21 Mar 2017 23:35:25 +0000 (23:35 +0000)]
fix: arguments to printf-style functions

By adding an attribute to printf-style functions, the compiler can spot
errors in the arguments.

Because the attributes aren't portable, they haven't been committed.
    __attribute__((format (printf, 1, 2)))

7 years agobuild: look for translations in all files
Richard Russon [Tue, 21 Mar 2017 02:20:30 +0000 (02:20 +0000)]
build: look for translations in all files

List ALL of the source files to the passed to the translations.

7 years agotidy: comments
Richard Russon [Tue, 21 Mar 2017 03:03:18 +0000 (03:03 +0000)]
tidy: comments

- drop CVS marker: $Id$
- convert // comments
- delete blank line between comment and function

7 years agobuild: remove generated files from repo
Richard Russon [Mon, 20 Mar 2017 22:57:58 +0000 (22:57 +0000)]
build: remove generated files from repo

Build temporary:
po/stamp-po

Copied in by autoreconf
po/boldquot.sed
po/en@boldquot.header
po/en@quot.header
po/insert-header.sin
po/quot.sed
po/remove-potcdate.sin

7 years agofix: typo in browser_compare_count{_new}
Richard Russon [Fri, 24 Mar 2017 21:48:24 +0000 (21:48 +0000)]
fix: typo in browser_compare_count{_new}

A typo meant that sorting by "count" or "count new" could not be done in
reverse.

7 years agoadd mailmap entries
Richard Russon [Thu, 30 Mar 2017 20:20:31 +0000 (21:20 +0100)]
add mailmap entries

This covers all committers since the start of NeoMutt.

7 years agodoc: use neomutt mailinglist (#483)
Tobias Angele [Thu, 30 Mar 2017 15:23:07 +0000 (17:23 +0200)]
doc: use neomutt mailinglist (#483)

Closes neomutt/neomutt.github.io#30

Website page updated too.

7 years agoFix (un)sidebar_whitelist to expand paths.
Kevin McCarthy [Mon, 27 Mar 2017 18:39:42 +0000 (11:39 -0700)]
Fix (un)sidebar_whitelist to expand paths.

Thanks to Arturo for reporting the issue.

Closes #485

7 years agoFix inbox-first functionality when using mutt_pretty_mailbox (#490)
Pietro Cerutti [Tue, 28 Mar 2017 13:23:28 +0000 (14:23 +0100)]
Fix inbox-first functionality when using mutt_pretty_mailbox (#490)

Fix inbox-first functionality when using mutt_pretty_mailbox

Fixes #489

7 years agomerge: Tidy the code - Part 2
Richard Russon [Wed, 22 Mar 2017 16:44:02 +0000 (16:44 +0000)]
merge: Tidy the code - Part 2

 * build: force OPS to be rebuild after a reconfigure
 * build: fix minor code warnings / style
 * tidy: be specific about void functions
 * build: expand a few more alloc macros
 * tidy: add argument names to function prototypes
 * build: drop local copy of regex code
 * tidy: indent the docbook manual
 * tidy: rearrange code to avoid forward declarations
 * tidy: limit the scope of some functions
 * build: give the compress functions a unique name
 * tidy: use snake_case for function names
 * build: add missing newlines to mutt_debug

7 years agobuild: add missing newlines to mutt_debug 476/head
Richard Russon [Thu, 16 Mar 2017 14:26:59 +0000 (14:26 +0000)]
build: add missing newlines to mutt_debug

7 years agotidy: use snake_case for function names
Richard Russon [Thu, 16 Mar 2017 03:22:47 +0000 (03:22 +0000)]
tidy: use snake_case for function names

e.g.
- getDate          -> get_date
- mutt_menuDestroy -> mutt_menu_destroy

7 years agobuild: give the compress functions a unique name
Richard Russon [Thu, 16 Mar 2017 02:35:05 +0000 (02:35 +0000)]
build: give the compress functions a unique name

The compressed mailbox functions are passed as pointers to mutt.
Their names, e.g. "open_mailbox" are OK for compilation, but they are
ambiguous when debugging.

- prefix exported function names with "comp_"

7 years agotidy: limit the scope of some functions
Richard Russon [Wed, 15 Mar 2017 01:22:26 +0000 (01:22 +0000)]
tidy: limit the scope of some functions

Functions that are only used in one file (compilation unit), should be
declared "static".  Also, they shouldn't have the prefix "mutt_".

- make two functions static (only used in one place)
- remove "mutt_" prefix
- add missing "static" declaration

7 years agotidy: rearrange code to avoid forward declarations
Richard Russon [Wed, 15 Mar 2017 03:50:02 +0000 (03:50 +0000)]
tidy: rearrange code to avoid forward declarations

This change, though huge, is quite simple.

It simply rearranges functions, within files, to remove the need to
forward-declare them.  There were ~90 such declarations.

Forward declarations are rarely *needed* and just add to the cruft that
needs to be maintained.

7 years agotidy: indent the docbook manual
Richard Russon [Wed, 15 Mar 2017 00:05:56 +0000 (00:05 +0000)]
tidy: indent the docbook manual

Indent the xml of the docbook manual.
Put a blank line before <chapter>, <sect*> or <table>

This doesn't change the manual functionally, but it makes it easier to
navigate.

7 years agobuild: drop local copy of regex code
Richard Russon [Mon, 13 Mar 2017 14:33:20 +0000 (14:33 +0000)]
build: drop local copy of regex code

The regular expression (regex) is now a standard part of the C libraries.
Use that, rather than our 18 year old version.

7 years agotidy: add argument names to function prototypes
Richard Russon [Tue, 14 Mar 2017 14:19:23 +0000 (14:19 +0000)]
tidy: add argument names to function prototypes

This isn't very useful:
int function (int, int);

This is clearer
int function (int row, int col);

7 years agobuild: expand a few more alloc macros
Richard Russon [Wed, 15 Mar 2017 00:55:49 +0000 (00:55 +0000)]
build: expand a few more alloc macros

Following some early work, expand some more macros to functions:
- pgp_new_keyinfo()
- new_pattern()
- rfc822_new_address()

7 years agotidy: be specific about void functions
Richard Russon [Wed, 15 Mar 2017 00:55:24 +0000 (00:55 +0000)]
tidy: be specific about void functions

Some functions have been declared with "()" when they should be "(void)".

7 years agobuild: fix minor code warnings / style
Richard Russon [Wed, 15 Mar 2017 00:24:02 +0000 (00:24 +0000)]
build: fix minor code warnings / style

- remove an unnecessary backslash
- put variable in same preprocessor scope
- move prototype to where it's needed

7 years agobuild: force OPS to be rebuild after a reconfigure
Richard Russon [Wed, 15 Mar 2017 18:39:10 +0000 (18:39 +0000)]
build: force OPS to be rebuild after a reconfigure

A common problem is getting build errors after running ./configure for
the second time, e.g.
    ./configure [FEW  OPTIONS]; make
    ./configure [MANY OPTIONS]; make

This commit forces keymap_defs.h to be rebuilt after a configure.

7 years agobuild: don't look for lua libs unless asked for
Richard Russon [Fri, 17 Mar 2017 16:30:13 +0000 (16:30 +0000)]
build: don't look for lua libs unless asked for

fixes: #478

7 years agomerge: upstream fixes (mutt/default)
Richard Russon [Tue, 21 Mar 2017 16:12:39 +0000 (16:12 +0000)]
merge: upstream fixes (mutt/default)

 * Add SNI support for OpenSSL. (see #3923)
 * Add SNI support for GnuTLS. (closes #3923)
 * Add shortcuts for IMAP and POP mailboxes in the file browser
 * Change OpenSSL to use SHA-256 for cert comparison. (closes #3924)
 * Fix conststrings type mismatches. (closes #3926)
 * Pass envlist to filter children too.  (closes #3922)
 * Fix mutt_envlist_set() for the case that envlist is null. (see #3922)
 * Fix setenv overwriting to not truncate the envlist. (see #3922)

7 years agoFix setenv overwriting to not truncate the envlist. (see #3922)
Kevin McCarthy [Mon, 20 Mar 2017 17:16:03 +0000 (10:16 -0700)]
Fix setenv overwriting to not truncate the envlist. (see #3922)

The refactor in 2b9c40f13e13 exposed a bug I hadn't noticed.  The
match loop performed a FREE() on the slot.  Then, below, it was
checking if (*envp) to see whether it was overwriting or creating a
new slot.  However, FREE() nulls out *envp.  This would end up
truncating the envlist just after the set slot!

Move the free down, using a mutt_str_replace(), when overwriting the
slot.

7 years agoFix mutt_envlist_set() for the case that envlist is null. (see #3922)
Kevin McCarthy [Sat, 18 Mar 2017 21:39:12 +0000 (14:39 -0700)]
Fix mutt_envlist_set() for the case that envlist is null. (see #3922)

7 years agoPass envlist to filter children too. (closes #3922)
Kevin McCarthy [Sat, 18 Mar 2017 20:48:02 +0000 (13:48 -0700)]
Pass envlist to filter children too.  (closes #3922)

The new setenv patch neglected to pass the envlist for filters too.

Unfortunately, the filter code was already set up to pass COLUMNS to
children, so it needed to be changed to add this to the envlist
instead.

Factor out mutt_envlist_set() from the parse_setenv() function, which
the filter code can then use to set COLUMNS after forking.

7 years agoFix conststrings type mismatches. (closes #3926)
Kevin McCarthy [Sat, 18 Mar 2017 20:38:20 +0000 (13:38 -0700)]
Fix conststrings type mismatches. (closes #3926)

The generation programs for conststrings.c: txt2c.c and txt2c.sh,
specified the resultant types as "unsigned char[]" while version.c
declared them as "const char[]".

txt2.c generates 0xXX hex codes for each individual character, thus
the "unsigned" definition.  With link-time optimization, some versions
of gcc notice the mismatch and emit a warning.

Change the declarations to match the definitions and cast to char[]
when they are used.

7 years agoChange OpenSSL to use SHA-256 for cert comparison. (closes #3924)
Kevin McCarthy [Tue, 14 Mar 2017 01:38:23 +0000 (18:38 -0700)]
Change OpenSSL to use SHA-256 for cert comparison. (closes #3924)

Note the GnuTLS code compares the certs directly to check if they are
in the certfile.

7 years agoAdd shortcuts for IMAP and POP mailboxes in the file browser
Dmitri Vereshchagin [Sun, 12 Mar 2017 17:54:58 +0000 (10:54 -0700)]
Add shortcuts for IMAP and POP mailboxes in the file browser

Mailbox list may not be properly displayed in a standard 80-column
terminal window if the $folder variable contains a long URL.  In such
a case only left part of each entry name can be visible with the default
value of $folder_format.  What's worse, this visible part may not be
enough to distinguish between the entries.

Thus in this case mutt_pretty_mailbox() will be just as useful as for
local mailboxes.

7 years agoAdd SNI support for GnuTLS. (closes #3923)
Kevin McCarthy [Thu, 9 Mar 2017 21:38:30 +0000 (13:38 -0800)]
Add SNI support for GnuTLS. (closes #3923)

7 years agoAdd SNI support for OpenSSL. (see #3923)
Kevin McCarthy [Thu, 9 Mar 2017 21:00:10 +0000 (13:00 -0800)]
Add SNI support for OpenSSL. (see #3923)

The original patch for this is by Phil Pennock at:
https://people.spodhuis.org/phil.pennock/software/mutt-patches/

I have removed the OpenSSL version check and defined(OPENSSL_NO_TLSEXT)
check because:
  * SSL_set_tlsext_host_name() was added in 0.9.8f [11 Oct 2007]
  * OpenSSL 1.1 no longer has the OPENSSL_NO_TLSEXT compilation option
  * https://rt.openssl.org/Ticket/Display.html?id=2788&user=guest&pass=guest
    shows that the no-tlsext compilation option has been broken for some time.
  * Going forward, I'd like to minimize and start removing cruft required
    to support ancient/insecure versions of libraries.

7 years agobuild: drop two more obsolete m4 scripts (#477)
Pietro Cerutti [Fri, 17 Mar 2017 14:40:08 +0000 (14:40 +0000)]
build: drop two more obsolete m4 scripts (#477)

7 years agoindex_format: add support of %K (#452)
Kevin Decherf [Fri, 17 Mar 2017 02:34:20 +0000 (03:34 +0100)]
index_format: add support of %K (#452)

Unlike %B, %K will remain empty if there is no list detected for the
message.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
7 years agoMake iconv mandatory (no more --disable-iconv) 472/head
Pietro Cerutti [Wed, 15 Mar 2017 19:34:58 +0000 (19:34 +0000)]
Make iconv mandatory (no more --disable-iconv)

Issue: #460

7 years agoSwitch to using an external gettext runtime
Pietro Cerutti [Wed, 8 Mar 2017 21:47:50 +0000 (21:47 +0000)]
Switch to using an external gettext runtime

Issue: #460

7 years agomerge: Tidy the code - Part 1
Richard Russon [Fri, 17 Mar 2017 00:01:33 +0000 (00:01 +0000)]
merge: Tidy the code - Part 1

 * drop control characters from the source
 * drop vim modelines
 * delete trailing whitespace
 * mark all local functions as static
 * delete unused functions
 * replace FOREVER with while (true)
 * drop #if HAVE_CONFIG_H
 * use #ifdef for potentially missing symbols
 * remove #if 0 code blocks
 * drop commented out source
 * IMAP auth functions are stored by pointer cannot be static

7 years agoIMAP auth functions are stored by pointer cannot be static
Pietro Cerutti [Mon, 13 Mar 2017 11:41:30 +0000 (11:41 +0000)]
IMAP auth functions are stored by pointer cannot be static

See the imap_authenticators array in imap/auth.c.  This is exposed by
building without SASL.

7 years agodrop commented out source
Richard Russon [Mon, 13 Mar 2017 03:59:20 +0000 (03:59 +0000)]
drop commented out source

This source has been commented out for over 6 months
(and much of it for more than 10 years).

7 years agoremove #if 0 code blocks
Richard Russon [Sun, 12 Mar 2017 17:27:50 +0000 (17:27 +0000)]
remove #if 0 code blocks

This code has been commented out for over 6 months
(and much of it for more than 10 years).

7 years agouse #ifdef for potentially missing symbols
Richard Russon [Mon, 13 Mar 2017 02:08:05 +0000 (02:08 +0000)]
use #ifdef for potentially missing symbols

Some preprocessor symbols might not exist
They should be tested with #ifdef, not #if

7 years agodrop #if HAVE_CONFIG_H
Richard Russon [Sun, 12 Mar 2017 18:48:35 +0000 (18:48 +0000)]
drop #if HAVE_CONFIG_H

config.h is a compulsory part of the project.
The preprocessor conditional doesn't make sense.

7 years agoreplace FOREVER with while (true)
Richard Russon [Sun, 12 Mar 2017 16:17:03 +0000 (16:17 +0000)]
replace FOREVER with while (true)

Replace a macro with some simple C.

7 years agodelete unused functions
Richard Russon [Sun, 12 Mar 2017 15:37:12 +0000 (15:37 +0000)]
delete unused functions

These functions have been commented out for over 6 months
(and many for more than 10 years).

7 years agomark all local functions as static
Richard Russon [Sun, 12 Mar 2017 13:25:25 +0000 (13:25 +0000)]
mark all local functions as static

Local functions don't need to be prototyped in a header file.

7 years agodelete trailing whitespace
Richard Russon [Sun, 12 Mar 2017 02:09:10 +0000 (02:09 +0000)]
delete trailing whitespace

7 years agodrop vim modelines
Richard Russon [Sun, 12 Mar 2017 01:27:21 +0000 (01:27 +0000)]
drop vim modelines

We now favour .editorconfig which is controlled at the project level.

7 years agodrop control characters from the source
Richard Russon [Sun, 12 Mar 2017 01:15:02 +0000 (01:15 +0000)]
drop control characters from the source

Specifically, drop ^L (form feed)

7 years agobuild: drop #pragma include guard
Richard Russon [Mon, 13 Mar 2017 09:31:20 +0000 (09:31 +0000)]
build: drop #pragma include guard

7 years agodocs: fix validation for lua
Richard Russon [Sun, 12 Mar 2017 14:01:38 +0000 (14:01 +0000)]
docs: fix validation for lua

7 years agobuild: reorder use of OPS
Richard Russon [Thu, 9 Mar 2017 14:55:16 +0000 (14:55 +0000)]
build: reorder use of OPS

"keymap_defs.h" is generated from the OPS files that are included in the
build.

"keymap_alldefs.h" is generated from ALL the OPS files.
(it's used by "make -C po update-po")

Change the build to ensure they include the OPS files in the same order.

7 years agofix: build warning
Richard Russon [Thu, 9 Mar 2017 14:54:34 +0000 (14:54 +0000)]
fix: build warning

This was introduced by the buffer.c refactor.

7 years agofix typos and grammar in the comments
Richard Russon [Wed, 8 Mar 2017 02:06:11 +0000 (02:06 +0000)]
fix typos and grammar in the comments

7 years agomerge: upstream fixes (mutt/default)
Richard Russon [Sat, 11 Mar 2017 23:38:00 +0000 (23:38 +0000)]
merge: upstream fixes (mutt/default)

 * Add $ssl_verify_partial_chains option for OpenSSL.  (closes #3916)
 * Move the OpenSSL partial chain support check inside configure.ac. (see #3916)
 * Don't allow storing duplicate certs for OpenSSL interactive prompt. (closes #3914)
 * Prevent skipped certs from showing a second time. (see #3916)
 * OpenSSL: Don't offer (a)ccept always choice for hostname mismatches. (closes #3914)

closes #429
closes #459

7 years agoOpenSSL: Don't offer (a)ccept always choice for hostname mismatches. (closes #3914) 459/head
Kevin McCarthy [Thu, 9 Mar 2017 19:59:31 +0000 (11:59 -0800)]
OpenSSL: Don't offer (a)ccept always choice for hostname mismatches. (closes #3914)

On a hostname mismatch, saving the certificate is pointless because
mutt will ask the user no matter if the certificate is saved or not.

The only invocation allowing "accept always" is guarded by a call to
check_certificate_digest(), which means the check_certificate_file()
check is redundant.  Therefore remove that check and add a comment
noting why.

Thanks to Matthias Andree for the original version of this patch.

7 years agoPrevent skipped certs from showing a second time. (see #3916)
Kevin McCarthy [Thu, 9 Mar 2017 18:56:21 +0000 (10:56 -0800)]
Prevent skipped certs from showing a second time. (see #3916)

OpenSSL sometimes passes a skipped certificate to
ssl_verify_callback() a second time, with preverify_ok=1.  From
OpenSSL's viewpoint there is nothing wrong with this, but mutt will
end up showing the certificate in the interactive prompt again.

Cache the last cert and position, and compare with the latest when
skip_mode and preverify_ok are both set.

7 years agoDon't allow storing duplicate certs for OpenSSL interactive prompt. (closes #3914)
Kevin McCarthy [Wed, 8 Mar 2017 02:26:07 +0000 (18:26 -0800)]
Don't allow storing duplicate certs for OpenSSL interactive prompt. (closes #3914)

Check to make sure the certificate is not already in the
$certificate_file before offering the (a)ccept always option.

To allow a cert with a new validity timespan to be added to the file,
check the expiration dates when comparing certificates in the
certficate file.

7 years agoMove the OpenSSL partial chain support check inside configure.ac. (see #3916)
Kevin McCarthy [Wed, 8 Mar 2017 02:26:06 +0000 (18:26 -0800)]
Move the OpenSSL partial chain support check inside configure.ac. (see #3916)

Instead of directly checking whether X509_V_FLAG_PARTIAL_CHAIN is
defined everywhere, do it once inside configure.  This will allow
better support in the future if the test needs to change.

7 years agoAdd $ssl_verify_partial_chains option for OpenSSL. (closes #3916)
Matthias Andree [Wed, 8 Mar 2017 02:26:04 +0000 (18:26 -0800)]
Add $ssl_verify_partial_chains option for OpenSSL.  (closes #3916)

The reworked OpenSSL certificate validation took away a "feature" of
the previous implementation: the ability to reject a node in the chain
and yet continue to the next node.

If this new option is set to 'yes', enables OpenSSL's
X509_V_FLAG_PARTIAL_CHAIN flag to reinstate the functionality and permit
to use a non-root certificate as the trust anchor.

This option is only available if OpenSSL offers the
X509_V_FLAG_PARTIAL_CHAIN macro, which should be the case as of 1.0.2b
or later.

Code written by Kevin McCarthy and Matthias Andree.

7 years agomerge: add lua scripting 298/head
Richard Russon [Sat, 11 Mar 2017 19:11:12 +0000 (19:11 +0000)]
merge: add lua scripting

 * lua: add basic working example
 * Adding basic Lua scripting basics to mutt
 * Refactor of the regex parsing code into its own function
 * Added new headers mutt_commands.h and mutt_options.h
 * Added -B option for batch mode. exiting before any mail sending feature
 * Lua API for Mutt's config and commandline

7 years agoLua API for Mutt's config and commandline
Guyzmo [Sun, 15 Jan 2017 02:29:23 +0000 (03:29 +0100)]
Lua API for Mutt's config and commandline

* adds the following to Mutt's API:
 * `:lua` to execute a line of Lua
 * `:lua-source` to load and run a Lua source file
* exposes the following Mutt API in Lua:
 * `mutt.message()` To write a message on Mutt's command line
 * `mutt.error()` To write an error message on Mutt's command line
 * `mutt.enter()` run an arbitrary Mutt command, like with `:enter-command`
 * `mutt.get()` get a variable from Mutt
 * `mutt.set()` sets a variable from Mutt (with type enforcement)
 * `mutt.call()` calls a command available in mutt, with arguments
 * `mutt.command.*` exposes all the commands from within Mutt
* For some technical details:
 * proper error handling of the Lua interpreter
 * exposed mutt_option_set and mutt_option_get from init

fixes: #153

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
7 years agoAdded -B option for batch mode. exiting before any mail sending feature
Guyzmo [Mon, 16 Jan 2017 21:29:34 +0000 (22:29 +0100)]
Added -B option for batch mode. exiting before any mail sending feature

7 years agoAdded new headers mutt_commands.h and mutt_options.h
Guyzmo [Mon, 16 Jan 2017 13:27:31 +0000 (14:27 +0100)]
Added new headers mutt_commands.h and mutt_options.h

they export data types originally in init.h

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
7 years agoRefactor of the regex parsing code into its own function
Guyzmo [Mon, 16 Jan 2017 12:53:52 +0000 (13:53 +0100)]
Refactor of the regex parsing code into its own function

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
7 years agoAdding basic Lua scripting basics to mutt
Guyzmo [Sat, 14 Jan 2017 12:31:58 +0000 (13:31 +0100)]
Adding basic Lua scripting basics to mutt

* adding two commands:
 - lua: to parse a line of lua code
 - lua-source: to load and parse a lua file
* binding two mutt functions in lua:
 - mutt_message and
 - mutt_error

cf #153

Signed-off-by: Guyzmo <guyzmo+github+pub@m0g.net>
7 years agolua: add basic working example
Richard Russon [Tue, 30 Aug 2016 15:00:51 +0000 (16:00 +0100)]
lua: add basic working example

- add lua code template
- add mutt variable
- add mutt function
- set/get lua variables
- call c function from lua
- add lua build deps

7 years agofix: Garbage in chdir prompt due to unescaped string
Richard Russon [Sat, 11 Mar 2017 18:46:00 +0000 (18:46 +0000)]
fix: Garbage in chdir prompt due to unescaped string

I upgraded one of my stable systems to stretch and noticed that when
changing the directory with 'c', there was some garbage at the end of
the string in the prompt. I've not noticed that before on my main
amd64 system, but this stable system is i386, so different alignment
and word size that can affect this kind of thing.

I tracked it down to an unescaped string handling.

Debian BTS#857433

7 years agorefactor: Split out BUFFER-handling functions (#443)
Ian Zimmerman [Tue, 7 Mar 2017 12:19:12 +0000 (04:19 -0800)]
refactor: Split out BUFFER-handling functions (#443)

7 years agomerge: mx cleanups
Richard Russon [Tue, 7 Mar 2017 12:09:48 +0000 (12:09 +0000)]
merge: mx cleanups

 * mx: remove `#ifdef USE_COMPRESSED` in mx_fastclose_mailbox
 * mx: don't make MUTT_NNTP and MUTT_COMPRESSED conditional
 * mx: remove an `#ifdef USE_NNTP` block

Closes #426

7 years agomx: remove an `#ifdef USE_NNTP` block
Damien Riegel [Wed, 22 Feb 2017 23:44:12 +0000 (18:44 -0500)]
mx: remove an `#ifdef USE_NNTP` block

The `MUTT_NNTP` symbol now exists unconditionally, the corresponding
ifdef block is not necessary anymore.

7 years agomx: don't make MUTT_NNTP and MUTT_COMPRESSED conditional
Damien Riegel [Sat, 18 Feb 2017 19:19:58 +0000 (14:19 -0500)]
mx: don't make MUTT_NNTP and MUTT_COMPRESSED conditional

Other symbols like MUTT_IMAP and MUTT_POP don't depend on their
respective configuration flags to be defined, keep the same logic for
MUTT_NNTP and MUTT_COMPRESSED. That makes it easier to remove some
ifdef.