| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This command allows the configuration to be reloaded while alot is
running.
Fixes #1046
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does a bit of refactoring to the Settings class for it's
setup, and adds a reload method. The refactoring encapsulates the
handling of NoneType for the read_*config methods, and reworks the
constructor just a bit so that it doesn't rely on calling methods to
create instance variables.
The end result is slightly cleaner, and will be useful for adding a
reload command to alot itself.
|
| |
|
|
|
|
|
| |
The protected code only calls re.match and list.append so it should
never fail (and if it still fails it should not be silenced).
|
|
|
|
|
|
|
| |
Instead of manual parsing with regexp and manual string formatting the
functions from email.utils are used. This fixes some small
inconsistencies with addresses with empty realnames and with commas in
realnames.
|
| |
|
|
|
|
|
|
|
|
| |
This fixes a bug in determine_sender where an account that did match but
did not have a realname set was "not found" in case force_realname was
set.
Helped-By: Pol Van Aubel <dev@polvanaubel.com>
|
|
|
|
|
| |
Otherwise the next account in the for loop might have been returned if
the account was found to match with its last alias.
|
| |
|
| |
|
| |
|
|
|
|
| |
via cached properties
|
|\
| |
| | |
tests for addressbook classes
|
| | |
|
|/
|
|
|
|
| |
Fixes #707 and #332.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
|
|\
| |
| | |
add some first tests for settings.manager.SettingsManager
|
| |
| |
| |
| |
| | |
The argument is handed to ConfigObj directly and allowing lines of text
to be passed here makes future tests much easier.
|
|/
|
|
|
|
| |
Currently this code works because alot always populates aliases so it's
not None, but if for some reason it doesn't then get_addresses will
assert.
|
| |
|
|\
| |
| | |
fix #1036
|
| |
| |
| |
| |
| | |
This prevents the threadbuffer to look up a nonexistent focussed message
if the thread is empty (e.g. after removal of the last msg).
|
| |
| |
| |
| | |
This reverts commit 488d843082600928902cf4cbd442f1545a0a8c59.
|
| |
| |
| |
| | |
This reverts commit 237499e631741dbb3837e5ef99cc66f842e8a92e.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
The OSError that is being caught should only be raised by the Popen
constructor: https://docs.python.org/3/library/subprocess.html#exceptions
|
|\ \
| | |
| | | |
optional linewise focussing in thread mode
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This introduces a new config option 'thread_focus_linewise',
(defaults to True), which determines if the message texts are
split into individually focussable lines in thread mode.
fixes #645
|
| |
| |
| |
| |
| | |
It currently lists "terminal_command" in relation to "editor_spawn" but
the config option is actually "terminal_cmd".
|
|/ |
|
|
|
|
| |
reversed doesn't work with generators
|
|
|
|
|
| |
This both fixes a test that failed (since stderr wasn't being set) and
simplifies the function to only have one path that uses a ternary.
|
|\
| |
| | |
Update docs about mouse setting
|
| |
| |
| |
| |
| | |
There have been several people asking about text selection with the mouse
setting activated so it seems reasonable to mention it here.
|
|/ |
|
|
|
|
| |
Message doesn't have an iterkeys method, just a keys method.
|
| |
|
|
|
|
|
|
|
| |
As the comment suggests this path is effectively unreachable. We have a
work around because path is allowed to be None, but we don't want to
handle that case. This patch forces path to be provided (which argparse
will do), and then removes the unreachable else path.
|
|\
| |
| | |
Remove remaining uses of cmp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The calculation wants to sort first by length, then by string value (so
'z' would come before 'aa'). The calculation does this by deciding that
if one value has a length of 1, and the other doesn't. Currently it does
this by calling min, and max, and calling len 4 times. This is
pretty inefficient, and more complicated that necessary.
Instead, this patch uses 'is not' with booleans to figure out if one and
only one of the lengths is 1.
|
| |
| |
| |
| |
| |
| | |
This is both a performance issue (since cmp is slower than rich
comparisons), and a python3 issue since cmp (and __cmp__) are gone in
python 3.
|
| | |
|
| |
| |
| |
| | |
Fixes #1016
|
|\ \
| | |
| | | |
Use __future__.division
|
| | | |
|