summaryrefslogtreecommitdiff
path: root/alot
Commit message (Collapse)AuthorAge
* Merge pull request #1173 from pazz/feature-thread-indentPatrick Totzke2017-11-08
|\ | | | | thread mode message indentation
| * add test for argparse validatorPatrick Totzke2017-11-08
| |
| * keep ThreadBuffer indentation non-negativePatrick Totzke2017-11-05
| | | | | | | | | | | | | | | | this makes sure that 'tbuffer._indent_width', which stores the requested indentation width, remains non-negative. As a consequence, multiple "decrease" operations on zero values can be reverted by a single "increase", as is intuitive.
| * sanitize parameter for thread mode command 'indent'Patrick Totzke2017-11-05
| | | | | | | | | | | | this introduces a new argparse validation check that makes sure a parameter is '+', '-', or an integer, and uses this check for the 'indent' thread mode command.
| * add default binding for dynamic indentation changePatrick Totzke2017-11-05
| |
| * new thread buffer command 'indent'Patrick Totzke2017-11-05
| | | | | | | | to dynamically change the message indentation
| * configurable thread mode message indentation.Patrick Totzke2017-11-05
| | | | | | | | | | This adjusts the message/reply indentation according to the new 'thread_indent_replies' config option.
| * add config option for default threadmode indentationPatrick Totzke2017-11-05
| |
* | Merge pull request #1165 from pazz/exclude-tagsDylan Baker2017-11-08
|\ \ | | | | | | relay "exclude_tags" in queries
| * | interpret exclude_tagsPatrick Totzke2017-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | this adds exclude tags to every query object. Just as in notmuch (option search.exclude_tags), this will essentially render messages invisible if tagged with one of those tags, unless they explicitly appear in the query. See also man notmuch-config(1). closes #732
| * | new config option 'exclude_tags'Patrick Totzke2017-10-01
| |/ | | | | | | | | which will be interpreted just like 'search.exclude_tags' in the notmuch config.
* / Don't use __str__ of error BadSignatureMartin Schaaf2017-11-07
|/ | | | It seems not to be to handle error messages of different locale than en
* commands/util: encrypt to selfRuben Pollan2017-09-26
| | | | | | | | Add account configuration variable 'encrypt_to_self' that if true when encrypting a message it will also be encrypted with the key defined for this account. Fixes #1140
* commands/envelope: Acknowledge keyids param on encryptRuben Pollan2017-09-25
|
* defaults/alot.rc.spec: Add new option to control encrypting to selfDylan Baker2017-09-25
|
* defaults/alot.rc.spec: Remove message that is no longer trueDylan Baker2017-09-25
|
* crypto: Don't allow passing empty keysDylan Baker2017-09-25
| | | | | This will result in wrong behavior, gpg will prompt for a password rather than using keys to encrypt.
* Call _get_body() only once.Christian Geier2017-09-23
|
* db/message: Try to use the 'Sender' header if the 'From' header is nullDylan Baker2017-09-06
| | | | This makes drafts display correctly.
* db/message: Don't set sender to ''Dylan Baker2017-09-06
| | | | | | | If the message doesn't have a sender, try to come up with one. If the message has the draft tag we known that the user is the sender, just use the default account as the from if we can't find one another way. If it doesn't have the draft tag just set the sending to 'Unknown'.
* account: Fix Address comparison to b'' and u''Dylan Baker2017-09-06
| | | | | | | | | | | This uses a try/except because comparing an address to an empty string should be a fairly uncommon event and try/except will be faster than `if '@' not in other` in the case where '@' is in other. This stops alot from crashing if there is no 'From' header in the email. Outlook generates drafts without a 'From' header. Fixes #1050
* Merge branch 'master' into fix/spellingPatrick Totzke2017-09-02
|\
| * pep8 fixesPatrick Totzke2017-09-01
| | | | | | | | | | This mostly shortens lines down to <=79 chars and fixes some other small things I found using the pep8 tool.
| * Merge pull request #1147 from dcbaker/submit/faster-message-comparisonDylan Baker2017-08-30
| |\ | | | | | | db/message: Use self._id instead of self.get_message_id()
| | * db/message: Use self._id instead of self.get_message_id()Dylan Baker2017-08-30
| | | | | | | | | | | | | | | The latter function returns self._id anyway, and this avoids a function call when sorting.
| * | Merge pull request #1108 from dcbaker/wip/fix-1107Patrick Totzke2017-08-30
| |\ \ | | | | | | | | Handle servers that treat the user segment of an address as case insensitive
| | * | Use new Address classDylan Baker2017-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This just wries the new Address class into alot for use, and fixes up a few places where such fixups are needed. Fixes #1107
| | * | account: Add an Address classDylan Baker2017-08-28
| | |/ | | | | | | | | | | | | This class will encapsulate the logic of comparing email addresses and the rules of handling when capitalization is allowed and when it's not.
| * | Merge pull request #1136 from dcbaker/submit/more-db-utils-testsDylan Baker2017-08-30
| |\ \ | | |/ | |/| more tests + cleanups
| | * db/utils: Update docstring for extract_bodyDylan Baker2017-08-28
| | | | | | | | | | | | | | | add returns and rtype for sphinx and reflow the rest of the docstring a bit.
| | * db/utils: Don't mark signature valid if there is no key to verifyDylan Baker2017-08-23
| | |
| | * crypto: Don't cover the raise if other exception caseDylan Baker2017-08-22
| | |
| | * crypto: Remove try/except that only applied to pygpgmeDylan Baker2017-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | list_keys won't raise an exception if there are not keys, it will return a generator that creates an empty list: >>> from alot import crypto >>> list(crypto.list_keys('doesntexist@example.com')) []
* | | Fix some spelling mistakesLucas Hoffmann2017-09-02
|/ /
* | commands/globals: Only set stdin to a pipe if there is dataDylan Baker2017-08-23
| | | | | | | | | | | | | | | | | | | | Otherwise the editor will crash. I can't figure out for the life of me to test this. I thought that I would be able to do something like detect if stdin is a tty or something else, but that doesn't seem to work. Fixes #1137
* | Merge pull request #1135 from dcbaker/submit/external-command-testsDylan Baker2017-08-23
|\ \ | | | | | | Submit/external command tests
| * | command/globals: Test for not None rather than callableDylan Baker2017-08-23
| | | | | | | | | | | | | | | | | | If someone passes us something other than None or a callable they're abusing the API. Instead, use is not None, and let the code except if something else is passed.
| * | commands/globals: Simplify ExternalCommand thread_CodeDylan Baker2017-08-23
| | | | | | | | | | | | | | | | | | This simplifies the code but not using an if/else, but to just use a ternary to set the input to Popen.communicate. This also pulls some code out of the try/except block that isn't being tried.
| * | commands/globals: spelling and grammar of a commentDylan Baker2017-08-22
| |/ | | | | | | It's just a little off
* | alot/helper: Fix call_cmd_async polluting global environmentDylan Baker2017-08-22
| | | | | | | | | | | | | | | | | | | | An assignment `e = os.environ` creates a reference not a copy, which means that modifying one necessarily modifies the other. Using `dict.copy` creates a shallow copy (the keys and values are references, but the dicts are different objects), which means only modifications to mutable objects are shared. In the case of os.environ which only contains immutable objects like strings, bools, and numbers this isn't an issue.
* | alot/helper: print ellipsis in codeDylan Baker2017-08-22
|/ | | | | Since the file is encoded in utf-8 we can actually print the ellipsis. Most people can more readily read that than the raw utf-8 escape.
* Merge pull request #1133 from lucc/fix/bug-1132Dylan Baker2017-08-22
|\ | | | | Fix #1132 by reverting part of fa3dd1b04567.
| * Use cStringIO.StringIO to fix #1132Lucas Hoffmann2017-08-21
| | | | | | | | | | | | | | | | | | This undoes a small subset of the changes from fa3dd1b04567c4ea03fa658c3838b569531c79f5 and thus fixes #1132. The io.BytesIO object was not able to handle the unicode header names that where returned by envelope.construct_mail, which in turn did just copy them from the envelope header.
* | Merge pull request #1131 from lucc/fix/hashDylan Baker2017-08-22
|\ \ | | | | | | Fix hash(TagWidget) with unicode tag representation
| * | Use a tuple to build a hash valueLucas Hoffmann2017-08-20
| |/ | | | | | | | | | | | | | | | | The old implementation would raise an error when the translated tag string was a unicode string (might be defined as an abbreviation in the users config). The official docs suggest this kind of implementation: https://docs.python.org/3/reference/datamodel.html#object.__hash__
* | Merge pull request #1126 from lucc/py3/py2-compatibleDylan Baker2017-08-22
|\ \ | |/ |/| Some small changes that are py2 and py3 compatible
| * py3k: Use build in next functionLucas Hoffmann2017-08-20
| |
| * py3k: Use logging.warning instead of warnLucas Hoffmann2017-08-20
| | | | | | | | | | The short version is deprecated as of python3. Both are available in both python versions.
| * py3k: Fix function signatureLucas Hoffmann2017-08-20
| | | | | | | | | | | | | | | | | | With python3 sublists are not allowed in function definitions any longer. But the same can be done with call time iterable expansion. References: https://docs.python.org/2/reference/compound_stmts.html#grammar-token-sublist https://docs.python.org/3/reference/compound_stmts.html#function-definitions
* | Merge pull request #1129 from dcbaker/submit/py3k-small-fixesPatrick Totzke2017-08-20
|\ \ | | | | | | py3k small fixes