summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* Ensure new partswitcher doesn't start on multipartJeffas2019-07-171-0/+1
|
* Update status message to include destinationJeffas2019-07-171-1/+1
|
* lowercase all key bindingsReto Brunner2019-07-171-32/+32
|
* Fix header decodingBen Burwell2019-07-171-13/+16
| | | | | | | | | | | | | Email headers can be encoded with different charsets, which is signalled using a special character sequence. The go-message package provides two different methods for accessing header values, Get(key) (actually inherited from the embedded textproto.Header) which returns the raw header value and Text(key), which returns the header's value decoded as UTF-8. Before, in the maildir backend, we were using the Get method which sometimes resulted in encoded headers being displayed in the UI. This patch replaces the incorrect usage of Get() with Text().
* commands: Don't crash when store is nilKevin Kuehler2019-07-158-4/+28
| | | | | | | On a slow network connection, running these commands without this guard will cause aerc to panic. Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
* 71: Allow user to change config options at runtimePedro L. Ramos2019-07-153-51/+129
| | | | | | | | | There is a LoadConf and a LoadConfFromFile. LoadConfFromFile reads the iniFile into memory and and calls LoadConf, which executes the old parsing commands from LoadConf (old func). The remaining of the LoadConfFromFile is the same as the old OldConf.
* Update README.mdDrew DeVault2019-07-141-0/+2
|
* Escape plus symbol in hldiff filter.EdOverflow2019-07-131-1/+1
| | | | | | I was getting errors when using the hldiff filter with aerc because the plus symbol on line 28 wasn't escaped. This commit escapes the plus symbol in the regex on line 28.
* Fix missing format fields in maildir/container.goDrew DeVault2019-07-131-2/+2
|
* Don't initialize an invalid pty sizeDrew DeVault2019-07-131-0/+3
|
* Fix read reply flag formattingJeffas2019-07-121-5/+19
| | | | | The readFlag was displaying wrong and not using combinations of the flags to decide the string.
* Add maildir docsBen Burwell2019-07-124-2/+47
|
* Implement maildir copyBen Burwell2019-07-122-2/+41
| | | | | Create a delivery in the destination directory with the content of the source message.
* Handle the invalid "utf8" encodingBen Burwell2019-07-122-1/+3
| | | | | See commit 0bfc369eb68a1d34ea0ee983f218e97a14099959 in the go-message package.
* Add maildir backend workerBen Burwell2019-07-126-0/+786
| | | | | | | | | | | | | Add the initial implementation of a backend for Maildir accounts. Much of the functionality required is implemented in the go-message and go-maildir libraries, so we use them as much as possible. The maildir worker hooks into a new maildir:// URL scheme in the accounts.conf file which points to a container of several maildir directories. From there, the OpenDirectory, FetchDirectoryContents, etc messages work on subdirectories. This is implemented as a Container struct which handles mapping between the symbolic email folder names and UIDs to the concrete directories and file names.
* Create UIDStore packageBen Burwell2019-07-121-0/+62
| | | | | | This package can be used to provide a source for mapping mock UIDs back to relevant keys for alternate backends. For example, for the Maildir backend, we need to map between UID and message file names.
* Add clickable tabsJeffas2019-07-114-0/+38
| | | | | | | | | | | This introduces a new interface `Clickable`. I'd imagine this would be implemented for most widgets eventually and would allow for programs run in the terminal to also have their mouse events forwarded to them. For the tabs it was relatively simple to check that the position of the click is within the boxes for the tabs. For other components I'd imagine that some state representing their currently drawn bounding box would be useful.
* Don't bind $noinheritEyal Sawady2019-07-111-0/+1
| | | | | | Fixes #112 Signed-off-by: Eyal Sawady <eyalsawady@gmail.com>
* #190 Handle gmail duplicate folderDaniel Bridges2019-07-113-4/+4
|
* Add backtab to tutorial navigationJeffas2019-07-111-1/+3
| | | | | | | | This allows users to use backtab (Shift+tab) to go back through the fields in the tutorial, like C-K. This then mimics the other methods in having a forward and backward variant. Also documented this in the wizard help paragraph.
* Support imaps with oauthbearer authentication (Gmail)Frode Aannevik2019-07-115-8/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | imaps+oauthbearer://user:token@host?token_endpoint=... - the config Source password is used as access token if no token_endpoint parameter is set - the config Source password is used as refresh token if token_endpoint parameter is set, and used to exchange with an access token The implementation has only been tested with Gmail. source = imaps+oauthbearer://{username}:{refersh_token}@imap.gmail.com:993? \ client_id=XX&\ client_secret=XX&\ token_endpoint=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Ftoken client credentials created with https://console.developers.google.com/apis/credentials refresh token created with https://github.com/google/gmail-oauth2-tools/blob/master/python/oauth2.py rel: https://todo.sr.ht/~sircmpwn/aerc2/42
* Fix crashes when operating on empty folder (#216)Daniel Bridges2019-07-1011-15/+45
|
* Fix :pipe -b actually writing to stdinDrew DeVault2019-07-081-1/+9
|
* Fix re-opening of expired pipe tabsDrew DeVault2019-07-083-4/+24
|
* :exec, :pipe: show exit status on completionDrew DeVault2019-07-082-2/+4
|
* aerc(1): correct error with :pipe documentationDrew DeVault2019-07-081-0/+2
|
* Add :exec and :pipe -b(ackground)Drew DeVault2019-07-083-25/+104
|
* Factor IMAP-specific structs out of UI modelsBen Burwell2019-07-0810-108/+211
| | | | | | | Before, we were using several IMAP-specific concepts to represent information being displayed in the UI. Factor these structures out of the IMAP package to make it easier for other backends to provide the required information.
* Use []uint32 instead of imap.SeqSetBen Burwell2019-07-086-41/+41
| | | | | | | | A sequence-set is an IMAP-specific implementation detail. Throughout the UI, aerc simply operates using lists of opaque identifiers. In order to loosen the coupling between the UI and IMAP in particular, replace most usages of imap.SeqSet with []uint32, leaving the translation to a SeqSet to the IMAP backend as needed.
* Factor UI models out of the worker message packageBen Burwell2019-07-0812-86/+146
| | | | | | | | Before, the information needed to display different parts of the UI was tightly coupled to the specific messages being sent back and forth to the backend worker. Separating out a models package allows us to be more specific about exactly what a backend is able to and required to provide for the UI.
* Add .build.ymlDrew DeVault2019-07-071-0/+24
|
* Make :pipe command more genericDrew DeVault2019-07-058-110/+125
|
* Remove unused caps stringDrew DeVault2019-07-041-2/+0
|
* Sort out dirstore once and for allDrew DeVault2019-07-043-16/+2
|
* dirlist: simplify nextPrev() considerablyReto Brunner2019-07-041-25/+11
| | | | | | | Assuming we always have a sorted dirlist (other code depends on that already), we don't need to loop over the dirStore. Any filtering done should be performed elsewhere
* dirlist: remove the additional filtering in Draw()Reto Brunner2019-07-041-7/+0
|
* dirlist: sync dirstore in filterDirsByFoldersConfigReto Brunner2019-07-041-9/+7
| | | | | Also sets the public List() method to return the unfiltered list of directories directly from the store.
* Add IMAP folder tab completionGregory Mullen2019-07-044-3/+32
| | | | | Credit for this fix goes to Reto; I guess if we're not gonna be mutt we should probabaly do things correctly.
* Use go-message implementation of GenerateMessageIDBen Burwell2019-07-042-36/+1
| | | | | Now that this is available in the upstream, we no longer need to maintain a parallel implementation.
* Document message index format specifiersBen Burwell2019-07-042-2/+37
|
* Crash on delete in empty folder (#213)Zach Sisco2019-07-041-0/+3
|
* Add unsubscribe commandBen Burwell2019-07-043-0/+150
| | | | | | | | | | | | | | | | The unsubscribe command, available when in a message viewer context, enables users to easily unsubscribe from mailing lists. When the command is executed, aerc looks for a List-Unsubscribe header as defined in RFC 2369. If found, aerc will attempt to present the user with a suitable interface for completing the request. Currently, mailto and http(s) URLs are supported. In the case of a HTTP(S) URL, aerc will open the link in a browser. For mailto links, a new composer tab will be opened with a message filled out according to the URL. The message is not sent automatically in order to provide the user a chance to review it first. Closes #101
* Use "open" instead of "xdg-open" on Darwin systemsBen Burwell2019-07-044-4/+25
|
* Update binds.confDrew DeVault2019-07-041-2/+2
|
* Correct default filter order in aerc.conf.inDrew DeVault2019-07-021-1/+1
|
* Revert "Remove dirs field and references to it"Drew DeVault2019-07-021-11/+10
| | | | This reverts commit 0e55637aac92e748267559b7aa91a188a17c386f.
* Remove dirs field and references to itRobert Günzler2019-06-301-10/+11
| | | | | This fixes prev/next-folder that broke after 546dfcd76dd228e0605359e9985f0b6a5672e8fa
* panic: runtime error: index out of range in handleFetchMessages (#127)Zach Sisco2019-06-291-3/+1
|
* Add new lib/dirstore to source completions fromGregory Mullen2019-06-292-4/+27
|
* Implement basic tab completion supportGregory Mullen2019-06-2947-154/+598
| | | | | Tab completion currently only works on commands. Contextual completion will be added in the future.