summaryrefslogtreecommitdiff
path: root/alot
Commit message (Collapse)AuthorAge
* Merge pull request #1181 from three-comrades/compose_errPatrick Totzke2018-01-08
|\ | | | | Give better feedback on invalid user input.
| * Log unknown settings in configuration and theme files.Julian Mehne2018-01-08
| |
| * Report error if configuration file cannot be reloaded.Julian Mehne2018-01-07
| |
| * Clean up theme finder logic.Julian Mehne2018-01-07
| | | | | | | | | | | | | | | | | | | | - Replace directory check with file check - we only check for a single file, no need to check for existende of the directory separately. Also, this way we can distinguish between file validation error and file not found. - Be consistent: we stop iterating, if we find a file and it can be parsed. If we can't parse it, stop iterating as well, don't keep looking for the file.
| * Print stderr of failed sendmail cmd in prompt.Julian Mehne2017-12-06
| |
| * Give more context if reading of config file fails.Julian Mehne2017-12-06
| |
| * Inform user why :compose got cancelled.Julian Mehne2017-12-02
| |
* | Merge pull request #1186 from pazz/fix-1074Patrick Totzke2018-01-02
|\ \ | |/ |/| catch exception about malformed query strings
| * catch exception about malformed query stringsPatrick Totzke2018-01-02
| | | | | | | | | | | | | | | | .. when getting thread message count to build search buffers. We already had a try/except block for this. This commit just moves the one offending line into that block. Fixes #1074
* | Allow regex special characters in tagstrings.Julian Mehne2017-12-02
|/ | | | | | | | | | | | | | | Fixes the following crashes: 1. tag completion with regex special chars :search tag:[<tab> 2. Changing tag representation of an (existing) tag with regex special chars: [tags] [[my**tag]] normal = '','', 'white','light red', 'white','#d66' 3. Contact completion with regex special chars and no external command: To:**foo<tab>
* 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.