| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
This reverts commit e7e0c52db9093a9ecd9dcaa0766e66515a546a75.
|
|
|
|
|
| |
This allows users to use a custom domain in automatically generated
Message-ID headers instead of the local hostname.
|
|
|
|
|
| |
Fixes https://github.com/pazz/alot/issues/1435:
Do not add a Date header if it is already present
|
|
|
|
|
| |
Fixes an issue introduced in 45829f7956716638fe77989a50eb87d3ea34cace
which made header values containing ':' break the parser.
|
|
|
|
|
|
|
|
|
|
|
| |
Use the ordered set of header keys from the settings or from the current
envelope when generating an editable envelope.
Fixes https://github.com/pazz/alot/issues/898:
Message header ordering isn't preserved from the editor
Note: collections.OrderedDict has been used for backward compatibility with
Python <3.7.
|
| |
|
|
|
|
|
|
|
|
| |
This ensures that non-printable characters (tabs) are replaced in the
message body texts in envelope buffers and in source texts in thread
mode.
fix #1439
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The error handling code needs tearDown_exceptions in the new version of Python. Otherwise the following error appears:
```
Traceback (most recent call last):
File "setup.py", line 7, in <module>
setup(
File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3.8/site-packages/setuptools/command/test.py", line 229, in run
self.run_tests()
File "/usr/lib/python3.8/site-packages/setuptools/command/test.py", line 247, in run_tests
test = unittest.main(
File "/usr/lib/python3.8/unittest/main.py", line 101, in __init__
self.runTests()
File "/usr/lib/python3.8/unittest/main.py", line 271, in runTests
self.result = testRunner.run(self.test)
File "/usr/lib/python3.8/unittest/runner.py", line 176, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 122, in run
test(result)
File "/usr/lib/python3.8/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python3.8/unittest/suite.py", line 112, in run
self._tearDownPreviousClass(test, result)
File "/usr/lib/python3.8/unittest/suite.py", line 301, in _tearDownPreviousClass
if len(previousClass.tearDown_exceptions) > 0:
AttributeError: type object 'TestSettingsManagerGetAccountByAddress' has no attribute 'tearDown_exceptions'
```
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Bypasses the inspection of editor_cmdstring if it is still None after
all attempts to fill it. This will eventually lead to EditCommand.apply
erroring with 'no editor set' instead of alot crashing.
Fixes #1438
|
| |
|
|
|
|
|
| |
Implements the suggestion in #1427 to display the actual error code, and
substitutes an empty stderr with "No stderr output".
|
|
|
|
|
|
|
|
| |
"Prefer plain text" should mean just that, and not "ignore HTML even in
the absence of a text part".
21c399ee ("Update to new (3.6) email message API", 2018-12-08) had
introduced the "ignore" behaviour. Make it "prefer" again.
|
| |
|
| |
|
|
|
|
| |
... instead of from alot.completion
|
|
|
|
| |
... to Completer.relevant_part
|
| |
|
| |
|
|
|
|
|
| |
This just splits the file completion.py into several files, one for each
Completer subclass.
|
| |
|
|
|
|
| |
The local variable proc was not defined in these branches.
|
| |
|
|\ |
|
|/
|
|
|
|
|
|
|
|
| |
As far as I can tell using a separate process doesn't actually improve
performance, it makes it worse. The work that we're passing off to the
separate function isn't necessarily work that's well suited to being
handed off, there isn't a lot of computation and the objects that need
to be passed across the pipe are fairly large (at least when considering
a pipe). Converting the function to a generator gives better performance
and simplifies the implementation.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is needed as we use functions from the stdlib mock module that were
only added in 3.6.
|
|
|
|
| |
It was added to the stdlib in py3.3 and we already require 3.5.
|
|
|
|
|
|
| |
... in favour of get_body_text to de-clutter the Message class.
The functionality is implemented in alot.db.utils.extract_body, which
now contains the hard-coding of the html warning.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This uses email.message.EmailMessage.get_body() to find the best
candidate for a "body" message part and replaces our own ad-hoc solution
in alot.db.utils.extract_bodytext, which was based on a walk through all
parts.
|
|
|
|
| |
I don't think anyone needs anything else but copiousoutput here
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
email.utils.formataddr does more encoding than we need at this point -
headers will be encoded when they get inserted anyway.
Use db.utils.formataddr instead. Fixes #1378
Note that some tests need to be (and are) changed: The expectation of
the old tests was to get a completely escaped result.
Also, add an umlaut test.
|
|\
| |
| | |
Faster Thread loading
|
| |
| |
| |
| |
| | |
to make sure that all parts exist when messages are expanded
(see pydoc string)
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This will prevent the whole message from being read and interpreted
at the time we instantiate a MessageTree for display and instead only
create the (cheap!) summary widget.
When a user manually interacts with the Message widgets (for example by
unfolding/toggling source) then the content parts will anyway be
reassembled. The consequence of this patch is that loading large threads
should be much faster.
|
|\ \
| | |
| | | |
Options overwrite default values for sent_tags and draft_tags
|
| | |
| | |
| | |
| | |
| | | |
In addition, remove hardcoded default values from `account.py` and use
defaults from `alot.rc.spec`
|