<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aerc/worker/maildir, branch shivesh</title>
<subtitle>A pretty good email client (shivesh branch)</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/'/>
<entry>
<title>notmuch/maildir: remove double emit of the dirinfo</title>
<updated>2021-04-28T05:54:16+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-04-26T19:36:00+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=1687e558d3fae4d5622677c031bb9365a8c3e261'/>
<id>1687e558d3fae4d5622677c031bb9365a8c3e261</id>
<content type='text'>
There was some bug which could be worked around by double emitting an event.
However that proofed to be brittle:

We send the first message here from the worker goroutine:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

Then Tick() is waked in the main goroutine and calls ProcessMessage:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/widgets/account.go#L100

ProcessMessage in the main goroutine reads types.Message state with
msg.getId() and msg.InResponseTo():
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L74-76

Meanwhile in the worker goroutine we call PostMessage for a second
time with a pointer that points to the *same* previous message that
ProcessMessage is reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

The second PostMessage call makes writes to message while
ProcessMessage in the main goroutine is possibly reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L59

This led to a data race in the event loop

Reported-By: Wagner Riffel &lt;w@104d.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was some bug which could be worked around by double emitting an event.
However that proofed to be brittle:

We send the first message here from the worker goroutine:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

Then Tick() is waked in the main goroutine and calls ProcessMessage:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/widgets/account.go#L100

ProcessMessage in the main goroutine reads types.Message state with
msg.getId() and msg.InResponseTo():
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L74-76

Meanwhile in the worker goroutine we call PostMessage for a second
time with a pointer that points to the *same* previous message that
ProcessMessage is reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

The second PostMessage call makes writes to message while
ProcessMessage in the main goroutine is possibly reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L59

This led to a data race in the event loop

Reported-By: Wagner Riffel &lt;w@104d.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>maildir: don't read the full file into memory</title>
<updated>2021-02-08T08:06:42+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-02-08T08:06:25+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=8ecf0b73f41f9319f9d89d61f8d4619aa4e69758'/>
<id>8ecf0b73f41f9319f9d89d61f8d4619aa4e69758</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for :rmdir</title>
<updated>2020-08-19T09:38:57+00:00</updated>
<author>
<name>ARaspiK</name>
<email>araspik@protonmail.com</email>
</author>
<published>2020-08-18T20:27:23+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=fe1cabb077cf6c6cb3de122b3f5532acbeba8c85'/>
<id>fe1cabb077cf6c6cb3de122b3f5532acbeba8c85</id>
<content type='text'>
The `:rmdir` command removes the current directory (`-f` is required if
the directory is not empty).

This is not supported on the notmuch backend.

An issue with the maildir backend is that some sync programs (e.g.
offlineimap) may recover the directory after it is deleted.  They need
to specifically be configured to accept deletions, or special commands
need to be executed (e.g. `offlineimap --delete-folder`) to properly
delete folders.

A danger of using this on the IMAP backend is that it is possible for a
new message to be added to the directory and for aerc to not show it
immediately (due to a slow connection) - using `:rmdir` at this moment
(with `-f` if the directory already contains messages) would delete the
directory and the new message that just arrived (and all other
contents).  This is documented in aerc(1) so that users are aware of
possible risks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `:rmdir` command removes the current directory (`-f` is required if
the directory is not empty).

This is not supported on the notmuch backend.

An issue with the maildir backend is that some sync programs (e.g.
offlineimap) may recover the directory after it is deleted.  They need
to specifically be configured to accept deletions, or special commands
need to be executed (e.g. `offlineimap --delete-folder`) to properly
delete folders.

A danger of using this on the IMAP backend is that it is possible for a
new message to be added to the directory and for aerc to not show it
immediately (due to a slow connection) - using `:rmdir` at this moment
(with `-f` if the directory already contains messages) would delete the
directory and the new message that just arrived (and all other
contents).  This is documented in aerc(1) so that users are aware of
possible risks.
</pre>
</div>
</content>
</entry>
<entry>
<title>maildir: Provide nicer error message on invalid url</title>
<updated>2020-07-27T16:26:57+00:00</updated>
<author>
<name>Tero Koskinen</name>
<email>tero.koskinen@iki.fi</email>
</author>
<published>2020-07-25T08:11:13+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=f81cc2803cca4a5213a9d4514ddae8417c23f8ee'/>
<id>f81cc2803cca4a5213a9d4514ddae8417c23f8ee</id>
<content type='text'>
If accounts.conf contains an invalid maildir url, return a nice
error instead of panicking.

Log a couple of different error cases to provide extra
information about the error to the user.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If accounts.conf contains an invalid maildir url, return a nice
error instead of panicking.

Log a couple of different error cases to provide extra
information about the error to the user.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove hard coded bodystruct path everywhere</title>
<updated>2020-07-27T07:19:27+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-06-19T15:58:08+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=c574a838fa89bf46bf7188442f400b206b04df95'/>
<id>c574a838fa89bf46bf7188442f400b206b04df95</id>
<content type='text'>
Aerc usually used the path []int{1} if it didn't know what the proper path is.
However this only works for multipart messages and breaks if it isn't one.

This patch removes all the hard coding and extracts the necessary helpers to lib.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Aerc usually used the path []int{1} if it didn't know what the proper path is.
However this only works for multipart messages and breaks if it isn't one.

This patch removes all the hard coding and extracts the necessary helpers to lib.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add flag based search options</title>
<updated>2020-07-25T06:08:08+00:00</updated>
<author>
<name>Tobias Wölfel</name>
<email>tobias.woelfel@mailbox.org</email>
</author>
<published>2020-07-24T08:36:19+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=494bd674a98bc9f2889acad0fda3ff4c77c641b5'/>
<id>494bd674a98bc9f2889acad0fda3ff4c77c641b5</id>
<content type='text'>
Provide search and filter with the option to specify more flag based
conditions.
Use '-x &lt;flag&gt;' to search for messages with a flag (seen, answered,
flagged) and '-X &lt;flag&gt;' to search for messages without a flag.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide search and filter with the option to specify more flag based
conditions.
Use '-x &lt;flag&gt;' to search for messages with a flag (seen, answered,
flagged) and '-X &lt;flag&gt;' to search for messages without a flag.
</pre>
</div>
</content>
</entry>
<entry>
<title>Only send directory info once from maildir</title>
<updated>2020-07-19T09:16:05+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>dev@jeffas.io</email>
</author>
<published>2020-07-18T12:12:44+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=126c9437e8bd6374a432a8af6cfe3e6d5227dcc2'/>
<id>126c9437e8bd6374a432a8af6cfe3e6d5227dcc2</id>
<content type='text'>
The directory info only needs to be sent once for all the messages, this
reduces unnecessary messages being sent which could lock up the ui.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The directory info only needs to be sent once for all the messages, this
reduces unnecessary messages being sent which could lock up the ui.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add additional flagging functionality</title>
<updated>2020-07-08T07:13:03+00:00</updated>
<author>
<name>ARaspiK</name>
<email>araspik@protonmail.com</email>
</author>
<published>2020-07-05T14:29:52+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=0535f6333f2f5d13469fc315a65c53ff8a5e83f3'/>
<id>0535f6333f2f5d13469fc315a65c53ff8a5e83f3</id>
<content type='text'>
More mail flags can now be set, unset, and toggled, not just the
read/seen flag.

This functionality is implemented with a new `:flag` and `:unflag`
command, which are extensions to the matching `:read` and `:unread`
commands, adding support for different flags.  In fact, the
`read`/`unread` commands are now recognized aliases to `flag`/`unflag`.
The new commands are also well documented in aerc(1).

The change mostly extends the previous read/unread setting functionality
by adding a selection for the flag to change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
More mail flags can now be set, unset, and toggled, not just the
read/seen flag.

This functionality is implemented with a new `:flag` and `:unflag`
command, which are extensions to the matching `:read` and `:unread`
commands, adding support for different flags.  In fact, the
`read`/`unread` commands are now recognized aliases to `flag`/`unflag`.
The new commands are also well documented in aerc(1).

The change mostly extends the previous read/unread setting functionality
by adding a selection for the flag to change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Set AnsweredFlag on successful reply</title>
<updated>2020-05-25T15:29:53+00:00</updated>
<author>
<name>Srivathsan Murali</name>
<email>sri@vathsan.com</email>
</author>
<published>2020-05-25T14:59:48+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=b1eb7ad18d2e0bbeecaf61a58825bbc794ceb40c'/>
<id>b1eb7ad18d2e0bbeecaf61a58825bbc794ceb40c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>maildir: remove read handling from FetchMessageBodyPart</title>
<updated>2020-05-11T13:47:21+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-05-06T22:18:58+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=fefb08f83107d9ac0d11a93ece85f074585422fe'/>
<id>fefb08f83107d9ac0d11a93ece85f074585422fe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
