Comment by ~konimarti on ~rjarry/aerc
Would it make sense to have an option in the wizard to ask if a .gitignore file containing accounts.conf should be created as well?
Comment by ~konimarti on ~rjarry/aerc
Since this commit you can chain filters together and I guess this destroyed the behavior of using :filter (with no arguments) to clear the filter. It was assumed that ":clear" is used to clear filters. I can work on this and send a patch that will make a :filter with no arguments act like a :clear.
Comment by ~konimarti on ~rjarry/aerc
thanks! I haven't tested it yet, but I'm almost sure that there is a circularity issue (the first and third position are the same in the references header). Fix should be straightforward.
Comment by ~konimarti on ~rjarry/aerc
ugh. that looks like an infinite loop in the reference headers.. I have never seen this before, so I need to dig into this a little and see if we can clean up the references headers or something. If you can narrow it down to a few messages and maybe send the reference headers that could be helpful.
~rjarry assigned ~konimarti to #32 on ~rjarry/aerc
Comment by ~konimarti on ~rjarry/aerc
panic: close of closed channel
This issue has been addressed after release 0.7.1 with the commit 022bf1a ("imap: fix panic when sending multiple connect cmds"): https://git.sr.ht/~rjarry/aerc/commit/022bf1a
Comment by ~konimarti on ~rjarry/aerc
I can reproduce the crash with piping a pdf to xdg-open (even though i think xdg-open does not read from stdin). It seems to me that the code panics in the pty.Getsize function of the pty package which accesses the winsize struct without checking for an error. If there's an error, winsize would be nil but the code still tries to access it. I have reported this issue upstream and waiting for a reply https://github.com/creack/pty/issues/135
A quick fix that solves the pdf crash for me would look like this:
diff --git a/widgets/terminal.go b/widgets/terminal.go index 68c9553..b6e8fc0 100644 --- a/widgets/terminal.go +++ b/widgets/terminal.go @@ -254,10 +254,13 @@ func (term *Terminal) Draw(ctx *ui.Context) { } } - rows, cols, err := pty.Getsize(term.pty) + ws, err := pty.GetsizeFull(term.pty) if err != nil { return } + rows := int(ws.Rows) + cols := int(ws.Cols) + if ctx.Width() != cols || ctx.Height() != rows { term.writeMutex.Lock() pty.Setsize(term.pty, &winsize)
Regarding the initial crash reported, I can also not reproduce it but the stack trace points towards a term.cmd that is nil because it panics on line 58 in run.go of the pty package.
Ticket created by ~konimarti on ~rjarry/aerc
Aerc throws a segmentation fault when copying a large amount of text into the compose editor.
This has also been reported in https://todo.sr.ht/~sircmpwn/aerc2/410
It can be reproduced by pasting a large chunk of data (in my case ~5200bytes) once or multiple times from the clipboard to the editor window.
Looking at the stack trace, it seems that the problem is a concurrent access of the vterm field in the flushTerminal method of the Terminal widget. This can be avoided with a simple mutex.
I open this ticket for discussion and reference and will provide a patch that should solve it with the proposed solution above.
Comment by ~konimarti on ~rjarry/aerc
Awesome job, ~konimarti!
Thanks! Happy to get your thoughts and feedback on this.
As a temporary workaround, while integration with the local keyring is not available, we could include a flag for the aerc command that synchronizes the internal keystore with the keyring from GPG. However, I think a simple shell script inside the
/contrib/
directory might be a better idea.+1 for the shell script idea in contrib. This keeps it simple and easy to setup for people who would like to use it with current keyring implementation.
The ability to configure signing or encryption by default using
accounts.conf
would be nice to have. Something like:[james@cipher.host] [...] sign = true encrypt = true
This could also be a topic for a next patch together with the shell script above.
Comment by ~konimarti on ~rjarry/aerc
Hi guys, as mentioned above, I have been working on this PGP topic recently and submitted a patch today: https://lists.sr.ht/~rjarry/aerc-devel/patches/27588
It implements PGP encryption and signing of the outgoing emails with the go-pgpmail package (v0.2.0). This is basically the same package that is used for the signature verification part in the message viewer.
For what its worth, https://github.com/ProtonMail/go-crypto is the successor to the golang openpgp package.
I have replaced the golang/x/crypot package with the ProtonMail fork consistently.
WIP patch sent with notes: https://lists.sr.ht/~sircmpwn/aerc/patches/27092
In this patch I also relied on the current logic of the keystore which deviates from the approach in patch #27092 with the external gpg commands.
The downside of the internal keystore is certainly the synchronization issue (i.e. one has to regularly run gpg --export and gpg --export-secret-keys in order to have an updated keyring in aerc).
Let me know if this patch goes in the right direction or not. Feedback is welcome.