aboutsummaryrefslogtreecommitdiffstats
path: root/go.mod
Commit message (Collapse)AuthorAgeFilesLines
* mod: update go-maildir to v0.5.0Bence Ferdinandy2024-08-201-1/+1
| | | | | | | | | This release solves an issue with malformed files in a folder stopping go-maildir from listing all other valid files. Fixes: https://todo.sr.ht/~rjarry/aerc/215 Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com> Acked-by: Robin Jarry <robin@jarry.cc>
* go: bump minimal version to 1.21 and handle deprecationsBence Ferdinandy2024-08-201-1/+1
| | | | | | | | | | | | | Go 1.18 is already EOL. go-maildir v0.5.0 requires go 1.20 at least. Since go 1.20 is also EOL, bump the minimum required go version to the first still supported version which is 1.21. Go 1.20 deprecated Seed and Read in math/rand. Update the code accordingly. Changelog-deprecated: Support for go 1.20 and older. Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com> Acked-by: Robin Jarry <robin@jarry.cc>
* deps: update vaxis to v0.10.3Tim Culverhouse2024-07-291-1/+1
| | | | | | | | | | | | | | | | | | | Vaxis v0.10.3 brings with it a few bug fixes, major sixel performance improvements, and a new VT extension which enables Vaxis to receive window resize updates in-band via escape sequences on supported terminals (foot, ghostty, iTerm2, and kitty as of this patch). - Improved performance all around for sixels (thanks, delthas) - Fix key decoding for Home and End for the st terminal - Implement mode 2048 for in-band resizes - Add quirk for tmux 3.4 to turn on unicode width measurements - Fix dropping of events during large pastes Changelog-fixed: Detection of unicode width measurements on tmux 3.4. Changelog-fixed: Dropping of events during large pastes. Changelog-fixed: Home and End key decoding for the st terminal. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* smtp: fix error when setting smtp-domain with starttlsRobin Jarry2024-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | Some MTA servers require clients to specify their fully qualified hostname in the HELO command. By default, go-smtp uses "localhost". SMTP error 504: <localhost>: Helo command rejected: need fully qualified hostname In go-smtp v0.21.0, there is a regression preventing manually issuing a HELO command after starttls authentication: Connection failed: Hello: smtp: Hello called after other methods The regression was fixed in go-smtp v0.21.3. Update our dependency. Fixes: 7c789624d7da ("mod: update all dependencies") Changelog-fixed: Error when trying to configure `smtp-domain` with STARTTLS enabled. Reported-by: Stefano <foxy@teapot.ovh> Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Tristan Partin <tristan@partin.io>
* vaxis: update to 0.9.2Tim Culverhouse2024-06-231-1/+1
| | | | | | | | | | | | | Fixes several behind the scenes issues, but notably addresses scrolling of CJK characters in the terminal widget as well as wrapping of wide characters Reported-by: Tianhao Wang <shrik3@mailbox.org> Reported-by: ~runxiyu Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Tianhao Wang <shrik3@mailbox.org> Acked-by: Robin Jarry <robin@jarry.cc>
* jmap: bump go-jmap to v0.5.0Tim Culverhouse2024-06-041-1/+1
| | | | | | | | | Update go-jmap to latest release. Includes relevant jmap.ID validation for aerc Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* ui: update vaxis to v0.8.5Tim Culverhouse2024-04-021-1/+1
| | | | | | | | | | | | | Update vaxis library to v0.8.5 which includes several terminal widget fixes: - Tab stop positions were off by 1 - Now reponds to secondary DA queries - Fix encoding of function keys higher than F12 Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Inwit <inwit@sindominio.net> Acked-by: Robin Jarry <robin@jarry.cc>
* mod: update all dependenciesRobin Jarry2024-04-021-25/+22
| | | | | | | | | | | | | | | | | | Patch produced with the following commands: go mod edit -dropreplace=golang.org/x/crypto go get -t -u go mod tidy I dropped the replace of x/crypto. The only use for the fork from ProtonMail is for openpgp which has been deprecated by the official implementation. And aerc explicitly uses the correct import path where needed. go-smtp update was a bit harsh. The API was changed completely. Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
* mod: update vaxisTim Culverhouse2024-03-101-1/+1
| | | | | | | | | | | | | Update Vaxis to v0.8.4. This version has a few bug fixes relevant to aerc: - Charset handling in the terminal (John) - Various key encoding issues (Robin) - Fix resize race conditions with underlying terminal (inwit, Bence) - Explicit cursor positioning on new rows to fix wrapped selections (Tristan) Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* ui: update vaxis and only use disambiguate csi-u flagTim Culverhouse2024-02-261-1/+1
| | | | | | | | | | | | | | | | | | Update vaxis to 0.8.2, which adds the ability to specify any CSI-u flag combination. Explicitly only use the disambiguate flag. This enables aerc to have additional keybinds not previously possible (C-i, C-m) while preventing some internal logic bugs relating to single-modifier key presses. While these events can be useful, they are not needed in aerc and aerc currently would need several workarounds to properly handle them so let's just not request them in the first place. Fixes a bug with encoding shift+space in the presence of CSI-u in the terminal widget Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Inwit <inwit@sindominio.net> Tested-by: Jason Cox <dev@jasoncarloscox.com> Acked-by: Robin Jarry <robin@jarry.cc>
* ui: update vaxisTim Culverhouse2024-02-191-2/+2
| | | | | | | | | | | | | | | Update vaxis to v0.7.4. Release notes: - Fix encoding of Ctrl+z in legacy key encodings - Add new grapheme width calc mode: nozwj where we handle VS16 and skintone selectors but _not_ zwjs - Enable forcing of grapheme width calc mode - Add styled underlines to terminal widget Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Julio B <julio.bacel@gmail.com> Acked-by: Moritz Poldrack <moritz@poldrack.dev> Acked-by: Robin Jarry <robin@jarry.cc>
* lint: update dependencies to work with go v1.22Jason Cox2024-02-141-6/+6
| | | | | | | | | | Linting with golangci-lint and contrib/linters.go both started crashing for me after upgrading go to v1.22.0 from v1.21.7. Bump golangci-lint and golang.org/x/tools to their latest versions to fix this problem. Signed-off-by: Jason Cox <me@jasoncarloscox.com> Acked-by: Robin Jarry <robin@jarry.cc>
* jmap: set explicit sender and recipientsKarel Balej2024-02-121-1/+1
| | | | | | | | | | | | | | | JMAP is able to automatically determine sender and recipients based on the message headers after it is submitted for sending. However this means that it is not possible to send a message with the From header not matching the account with this approach (or to send the message to recipients not listed in the headers). Luckily, JMAP allows setting the envelope containing the envelope sender and recipients manually. Modify the code to do so. Also bump go-jmap to include a fix needed for this to work. Signed-off-by: Karel Balej <balejk@matfyz.cz> Acked-by: Robin Jarry <robin@jarry.cc>
* vaxis: update to v0.7.2 and update ansi parserTim Culverhouse2024-02-121-1/+1
| | | | | | | | | | | | Update Vaxis to v0.7.2 to gain performance improvements and StyledString parsing. The Vaxis parser fully accounts for the terminal's capability to display wide characters. Use the Vaxis StyledString parser to parse and style ansi-encoded strings. Remove unneeded code and tests. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* aerc: set title using vaxisTim Culverhouse2024-02-121-1/+0
| | | | | | | Set the window title using Vaxis at UI initialization. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* aerc: remove tcell importTim Culverhouse2024-02-121-3/+0
| | | | | | | All references to tcell have been replaced with vaxis Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* terminal: replace tcell-term with vaxis terminalTim Culverhouse2024-02-121-1/+1
| | | | | | | | Replace tcell terminal with the vaxis terminal. The vaxis terminal is a port of tcell term. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* msgviewer: implement inline image viewingTim Culverhouse2024-02-121-1/+1
| | | | | | | | | | | | | | | | | Implement inline image viewing for jpeg, png, bmp, tiff, and webp formats. When a user has no configured image filter and the image is supported and the terminal has either sixel or kitty image protocol support, the image will be displayed in the message viewer. Always clear the screen before each draw. This call is necessary in vaxis to allow for images to be cleared properly between renders. There is no performance impact: the call only resets each cell to a blank cell, and aerc will redraw each one already. Changelog-added: Inline image previews when no filter is defined for `image/*` and the terminal supports it. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* ui: so long tcellTim Culverhouse2024-02-121-5/+9
| | | | | | | | | | | | | Replace tcell with vaxis. Vaxis provides several new features (none of which are included in this commit). All behavior should be exactly the same as previous, with one exception: Vaxis does not have an internal terminfo library. Some terminals will now have RGB that didn't before, as well as any other feature that was falling back to some unknown state. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* security: update dependencies with known vulnerabilitiesMoritz Poldrack2024-02-111-3/+3
| | | | | | | | | | | | This patch bumps the version of github.com/cloudflare/circl which is required by github.com/ProtonMail/go-crypto to 1.3.7 to include mitigations for GO-2023-1765 and GO-2024-2453. Link: https://pkg.go.dev/vuln/GO-2023-1765 Link: https://pkg.go.dev/vuln/GO-2024-2453 Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* mod: upgrade go-maildir to v0.4.1Michal Siedlaczek2024-01-261-1/+1
| | | | | | | | | This latest version includes a bug-fix for incorrect path discovery for some messages. Signed-off-by: Michal Siedlaczek <michal@siedlaczek.me> Reviewed-by: Jason Cox <me@jasoncarloscox.com> Acked-by: Robin Jarry <robin@jarry.cc>
* deps: bump emersion/go-maildir to v0.4.0:George Honeywood2024-01-071-1/+1
| | | | | | | | | | | this fixes a bug that prevented reading maildirs with paths containing `:` characters, among other changes changelog here: https://github.com/emersion/go-maildir/releases Signed-off-by: George Honeywood <aerc@george.honeywood.org.uk> Tested-by: Moritz Poldrack <moritz@poldrack.dev> Acked-by: Robin Jarry <robin@jarry.cc>
* lint,validate: fix for openbsdRobin Jarry2023-12-141-0/+1
| | | | | | | | | | | | | | - Remove GNU specific stuff (ln -v, mktemp --tempdir, grep --color) - Remove GCC specific flags in sendemail-validate (-Warith-conversion) - Add -std=c99 and -Wpedantic and fix the reported warnings. - Explicitly call gmake everywhere. - Run our custom analyzer standalone. Golangci lint plugins are not supported on OpenBSD. Indirect dependency to golang.org/x/mod is required somehow... Reported-by: Johannes Thyssen Tishman <johannes@thyssentishman.com> Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Johannes Thyssen Tishman <johannes@thyssentishman.com>
* chore: upgrade to latest tcell-termJason Cox2023-11-231-1/+1
| | | | | | | | | Pull in changes allowing us to specify the environment of the start command for a term. This will allow defining environment variables for the editor in the next commit. Signed-off-by: Jason Cox <me@jasoncarloscox.com> Acked-by: Robin Jarry <robin@jarry.cc>
* mod: update to go-opt@v1.3.0Robin Jarry2023-11-221-1/+1
| | | | | | | | | | | Remove systematic sorting of all completion choices. The choices ordering as reported by callbacks are now preserved. The flags themselves are always at the end in the order in which they are declared in the option struct. Reported-by: Skejg <grolleman@zoho.com> Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Johannes Thyssen Tishman <johannes@thyssentishman.com>
* treewide: replace shlex.Split with opt.SplitArgsRobin Jarry2023-10-281-1/+0
| | | | | | | | | | Replace the remaining shlex.Split calls with opt.SplitArgs. Remove dependency to shlex. Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Koni Marti <koni.marti@gmail.com> Tested-by: Moritz Poldrack <moritz@poldrack.dev> Tested-by: Inwit <inwit@sindominio.net>
* search: use a common api for all workersRobin Jarry2023-10-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Define a SearchCriteria structure. Update the FetchDirectoryContents, FetchDirectoryThreaded and SearchDirectory worker messages to include this SearchCriteria structure instead of a []string slice. Parse the search arguments in a single place into a SearchCriteria structure and use it to search/filter via the message store. Update all workers to use that new API. Clarify the man page indicating that notmuch supports searching with aerc's syntax and also with notmuch specific syntax. getopt is no longer needed, remove it from go.mod. NB: to support more complex search filters in JMAP, we need to use an email.Filter interface. Since GOB does not support encoding/decoding interfaces, store the raw SearchCriteria and []SortCriterion values in the cached FolderContents. Translate them to JMAP API objects when sending an email.Query request to the server. Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Koni Marti <koni.marti@gmail.com> Tested-by: Moritz Poldrack <moritz@poldrack.dev> Tested-by: Inwit <inwit@sindominio.net>
* commands: pass raw command line down to template evaluationRobin Jarry2023-10-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Some commands need to invoke others and/or run shell commands. For this, we need the raw command line as entered by the user. Pass it down the call chain just before it is split to invoke the command Execute method. Remove unit tests for the template expand() test which does have any added value now that it is performed on a single string without any quote juggling. Update all code to handle a single string instead of a list of arguments. Introduce a new dependency on git.sr.ht/~rjarry/go-opt to deal with shell splitting. This is in preparation for using opt.ArgsToStruct to parse arguments for all aerc commands. There should be no functional change after this patch. Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Koni Marti <koni.marti@gmail.com> Tested-by: Moritz Poldrack <moritz@poldrack.dev> Tested-by: Inwit <inwit@sindominio.net>
* mbox: remove datacounter dependency for size infoTim Culverhouse2023-08-311-1/+0
| | | | | | | | | | | | The mbox worker uses the only reference to the datacounter object (see previous commit where it was removed from 'postpone'). The counter object in mbox is counting the size of the mbox message. Use io.Discard and the result from the io.Copy call to set this size. This saves us from writing to memory, since io.Discard will not store any of the written bytes. It also removes the dependency on datacounter. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* notmuch: replace notmuch library with internal bindingsTim Culverhouse2023-08-301-3/+0
| | | | | | | Replace the notmuch library used with our internal bindings. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* compose: use email domain name in Message-IdAdnan Maolood2023-08-281-2/+2
| | | | | | | | | | | | | RFC 5322 recommends using a domain name on the right-hand side of the "@" in Message-Ids. Since the local host domain name cannot be obtained reliably, use the sender email domain name by default. Add a new configuration option to maintain the old behavior. Link: https://www.rfc-editor.org/rfc/rfc5322.html#section-3.6.4 Signed-off-by: Adnan Maolood <adnan@maolood.com> Acked-by: Robin Jarry <robin@jarry.cc>
* xdg: get rid of deprecated dependenciesRobin Jarry2023-08-271-3/+1
| | | | | | | | | | | github.com/mitchellh/go-homedir has not received any update since 2019. The last release of github.com/kyoh86/xdg was in 2020 and it has been marked as deprecated by its author. Replace these with internal functions. Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Moritz Poldrack <moritz@poldrack.dev>
* go.mod: drop mergo packageKoni Marti2023-08-041-1/+0
| | | | | | | | | Drop the mergo package since it is no longer needed to merge the UI configs. Signed-off-by: Koni Marti <koni.marti@gmail.com> Acked-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
* worker: add jmap supportRobin Jarry2023-06-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for JMAP backends. This is on par with IMAP features with some additions specific to JMAP: * tagging * sending emails This makes use of git.sr.ht/~rockorager/go-jmap for the low level interaction with the JMAP server. The transport is JSON over HTTPS. For now, only oauthbearer with token is supported. If this proves useful, we may need to file for an official three-legged oauth support at JMAP providers. I have tested most features and this seems to be reliable. There are some quirks with the use-labels option. Especially when moving and deleting messages from the "All mail" virtual folder (see aerc-jmap(5)). Overall, the user experience is nice and there are a lot less background updates issues than with IMAP (damn IDLE mode hanging after restoring from sleep). I know that not everyone has access to a JMAP provider. For those interested, there are at least these two commercial offerings: https://www.fastmail.com/ https://www.topicbox.com/ And, if you host your own mail, you can use a JMAP capable server: https://stalw.art/jmap/ https://www.cyrusimap.org/imap/download/installation/http/jmap.html Link: https://www.rfc-editor.org/rfc/rfc8620.html Link: https://www.rfc-editor.org/rfc/rfc8621.html Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Tim Culverhouse <tim@timculverhouse.com>
* term: upgrade tcell-termTim Culverhouse2023-04-271-1/+1
| | | | | | | | | | Upgrade tcell-term, includes a bug fix when CUP is sent with only one param. Fixes: https://todo.sr.ht/~rjarry/aerc/170 Tested-by: ~staceeharper Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* term: fix handling of failed commandTim Culverhouse2023-04-261-1/+1
| | | | | | | | | | | | | | | | | | | | | A panic occurs when a terminal is launched with a command that fails: :term blabla The underlying terminal does not need to be closed if the command failed to start: all resources are cleaned up upon failure to start already. Don't attempt to close terminal if the command didn't start. With the above fix in place, the tab will linger around until a redraw occurs, as there is nothing queuing a redraw on this behavior. Add a QueueRedraw in the tabs.Remove method to clean up the tabbar. The issue in tcell-term that causes this panic has been address there as well, released as 0.7.1. Update aerc's version. Reported-by: Koni Marti <koni.marti@gmail.com> Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Koni Marti <koni.marti@gmail.com> Acked-by: Robin Jarry <robin@jarry.cc>
* mod: update all dependenciesRobin Jarry2023-04-241-30/+30
| | | | | | | | | | | | | | Result of the following commands: go get -u -t go mod tidy -compat=1.18 I also updated gofumpt version in the makefile. golangci-lint cannot be updated to 1.52.* which requires go 1.19 or later. Aerc has a minimum required version of 1.18. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Bence Ferdinandy <bence@ferdinandy.com>
* mod: drop support for go 1.17Robin Jarry2023-04-241-1/+1
| | | | | | | | | | | | | A lot of libraries are starting to use generics (introduced in go 1.18). Restricting aerc on 1.17 prevents us from updating our dependencies. Since 1.18 is a major milestone, it has a chance to remain supported for a while. Update the minimum go version to 1.18. Run go mod tidy -compat=1.18. Update our CI to run on 1.18. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Bence Ferdinandy <bence@ferdinandy.com>
* tcell-term: upgrade to latest releaseTim Culverhouse2023-04-231-3/+3
| | | | | | | | | | | | | | | | | Upgrade tcell-term to latest release. This is a complete rewrite of tcell-term, and includes many minor bug fixes and overall improvements. Notably: - Improved parsing - One fewer goroutine - Improved API - Improved redraw messaging - Improved key support - Improved mouse support Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry<robin@jarry.cc>
* fswatcher: add a darwin fswatcher implementationTim Culverhouse2023-03-071-0/+1
| | | | | | | | | | Add a darwin implementation of FSWatcher using the fsevents package. The implementation is behind a darwin build flag. Co-authored-by: Ben Cohen <ben@bencohen.net> Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Ben Lee-Cohen <ben@lee-cohen.com> Acked-by: Robin Jarry <robin@jarry.cc>
* mod: remove support for go 1.16Robin Jarry2023-02-261-7/+23
| | | | | | | | | | | | | | | | | | | | | The dependency to x/tools@v0.6.0 drags x/sys@v0.5.0 which is not compatible with go 1.16 # golang.org/x/sys/unix golang.org/x/sys@v0.5.0/unix/syscall.go:83:16: undefined: unsafe.Slice golang.org/x/sys@v0.5.0/unix/syscall_linux.go:2271:9: undefined: unsafe.Slice golang.org/x/sys@v0.5.0/unix/syscall_unix.go:118:7: undefined: unsafe.Slice golang.org/x/sys@v0.5.0/unix/sysvshm_unix.go:33:7: undefined: unsafe.Slice note: module requires Go 1.17 Since go 1.16 is now EOL, update the minimal go version to 1.17. Update go.mod and go.sum with the following command: go mod tidy -compat=1.17 Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* lint: always run golangci-lint@latestRobin Jarry2023-02-261-2/+7
| | | | | | | | | | | | Do not store the dependency in tools.go as there may be conflicts with some indirect dependencies of aerc. Run gofumpt and golangci-lint from their latest tagged release. This should fix issues with go 1.20. Bonus, it drains a bit of fat from go.sum. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* term: update tcell-termTim Culverhouse2023-02-231-3/+3
| | | | | | | | | | | | | Update tcell-term to v0.6.0: - Fixes several leaking goroutines - Adds an EventBell, enabled aerc to know when a terminal has a BEL event - Fixes a panic on \x1b[0G Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Bence Ferdinandy <bence@ferdinandy.com> Acked-by: Robin Jarry <robin@jarry.cc>
* contrib: add linter to check for panic handler in goroutinesRobin Jarry2023-01-061-0/+1
| | | | | | | | | | | | | | | | | If log.PanicHandler() is not installed in a goroutine and a panic occurs, the terminal state is not restored. This causes the panic trace to be unreadable since the terminal is broken. Add a custom analyzer that parses our code and ensures that: defer log.PanicHandler() is the first statement of all functions that are executed in goroutines. Include that linter in golangci config. Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
* format: add utf-8 aware truncate head functionRobin Jarry2023-01-041-0/+1
| | | | | | | | | The runewidth module only allows truncating at the end of strings. Add a function to truncate at the beginning. It will be used for the table widget in the next commit. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Tim Culverhouse <tim@timculverhouse.com>
* term: upgrade tcell-term to v0.4.0Tim Culverhouse2022-12-271-1/+1
| | | | | | | | | | | Upgrade tcell-term to latest tag. Has only a few fixes: - Always set TERM=xterm-256color for better compatibility - Fix some RGB parsing sequences - Fix splitting of UTF8 bytes causing render issues Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* jwz: upgrade to develop branchTim Culverhouse2022-12-021-1/+1
| | | | | | | | | | JWZ is used for client side threading, as well as maildir backend threading. A bug was fixed in the 'develop' branch to address a panic caused by some emails. Upgrade to the 'develop' branch which includes this bugfix. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
* terminal: bump tcell-term versionTim Culverhouse2022-10-191-1/+1
| | | | | | | | | | Upgrade tcell-term to v0.3.0. - Fixes erase line handling - Wide character support Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* terminal: fix race conditions on access to cmdTim Culverhouse2022-10-021-1/+1
| | | | | | | | | | | | | | | | Upgrade tcell-term to v0.2.0 Use Start method from tcell-term. This prevents aerc from needing to wait until the command has started to continue. The tcell-term start method blocks until the command is started, similar to cmd.Start. By doing so, we prevent a race condition between aerc and tcell-term on access to cmd.Process. Remove cleanup of cmd, this is all already handled by tcell-term when Close is called. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* terminal: bump tcell-term versionTim Culverhouse2022-09-251-1/+1
| | | | | | | | Bump tcell-term version to latest commit. Intention is to release tcell-term v0.2.0 just before aerc 0.13.0. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>