<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/emacs, branch 0.15</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.15</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.15'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2013-01-14T23:46:13Z</updated>
<entry>
<title>emacs: show: w3m/invisibility workaround</title>
<updated>2013-01-14T23:46:13Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2013-01-13T12:43:52Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f1a355febf27de6c2bf5fec1b038af2e96f93263'/>
<id>urn:sha1:f1a355febf27de6c2bf5fec1b038af2e96f93263</id>
<content type='text'>
There is a bug in the current notmuch code with w3m and invisible
parts. w3m sets a keymap, and if we have a hidden [text/html] point
at the start of the following line still gets this w3m keymap which
causes some strange effects. For example, RET gives an error "No URL
at Point" rather than hiding the message, &lt;down&gt; goes to the next link
rather than just down a line.

These keybinding are also inconvenient when the text/html part is
displayed so we ask w3m not to install a keymap.

This is only likely to be a problem for emacs 23 as shr is preferred
as html renderer on emacs 24 (although the user can set the renderer
to w3m even on emacs 24).

This solution was suggested by Tomi Ollila &lt;tomi.ollila@iki.fi&gt;
</content>
</entry>
<entry>
<title>emacs: Use the minibuffer for CLI error reporting</title>
<updated>2013-01-07T02:47:35Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2013-01-03T21:47:49Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=401dbebd4803477563eff03d719605ed37a8e44d'/>
<id>urn:sha1:401dbebd4803477563eff03d719605ed37a8e44d</id>
<content type='text'>
We recently switched to popping up a buffer to report CLI errors, but
this was too intrusive, especially for transient errors and especially
since we made fewer things ignore errors.  This patch changes this to
display a basic error message in the minibuffer (using Emacs' usual
error handling path) and, if there are additional details, to log
these to a separate error buffer and reference the error buffer from
the minibuffer message.  This is more in line with how Emacs typically
handles errors, but makes the details available to the user without
flooding them with the details.

Given this split, we pare down the basic message and make it more
user-friendly, and also make the verbose message even more detailed
(and more debugging-oriented).
</content>
</entry>
<entry>
<title>emacs: show: set default show-all-multipart/alternatives to nil</title>
<updated>2012-12-21T14:03:06Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2012-12-18T19:28:00Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4af1ac604ed982d6e584c8d471a9f8fc404c4d8b'/>
<id>urn:sha1:4af1ac604ed982d6e584c8d471a9f8fc404c4d8b</id>
<content type='text'>
Now that the invisibility display of parts is present we no longer
need to force the display of all multipart/alternatives: users can
toggle them for themselves when needed.
</content>
</entry>
<entry>
<title>emacs: show: add invisibility button action</title>
<updated>2012-12-21T14:02:57Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2012-12-18T19:27:59Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=a5b5404976597739d335cab3767d59bd240aeeaf'/>
<id>urn:sha1:a5b5404976597739d335cab3767d59bd240aeeaf</id>
<content type='text'>
This adds a button action to show hidden parts. In this version "RET"
toggles the visibility of any part which puts content in the buffer
(as opposed to attachments such as application/pdf).

The button is used to hide parts when appropriate (eg text/html in
multipart/alternative).
</content>
</entry>
<entry>
<title>emacs: show: add overlays for each part</title>
<updated>2012-12-21T13:59:00Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2012-12-18T19:27:58Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0c3a63f1afbe1fae08602196b68c4c6a3af57240'/>
<id>urn:sha1:0c3a63f1afbe1fae08602196b68c4c6a3af57240</id>
<content type='text'>
This makes notmuch-show-insert-bodypart add an overlay for any
non-trivial part with a button header (currently the first text/plain
part does not have a button). At this point the overlay is available
to the button but there is no action using it yet.

In addition the argument HIDE is passed down to
notmuch-show-insert-part-overlays to request that the part be hidden
by default but this is not acted on yet.
</content>
</entry>
<entry>
<title>emacs: show: modify insert-part-header to save the button text</title>
<updated>2012-12-21T13:54:30Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2012-12-18T19:27:57Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=fff2ea2ba9c11e16e1b54b04482ef49779e4826b'/>
<id>urn:sha1:fff2ea2ba9c11e16e1b54b04482ef49779e4826b</id>
<content type='text'>
This just make notmuch-show-insert-part-header save the basic button
text for parts as an attribute. This makes it simpler for the button
action (added in a later patch) to reword the label as appropriate (eg
append "(not shown)" or not as appropriate).
</content>
</entry>
<entry>
<title>emacs: Eliminate buffer invisibility specs from show and wash</title>
<updated>2012-12-21T13:43:45Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-12-18T06:40:10Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=8ba60168897e81133c85d9f4928b96ad4a4b6ffd'/>
<id>urn:sha1:8ba60168897e81133c85d9f4928b96ad4a4b6ffd</id>
<content type='text'>
Previously, all visibility in show buffers for headers, message
bodies, and washed text was specified by generating one or more
symbols for each region and creating overlays with their 'invisible
property set to carefully crafted combinations of these symbols.
Visibility was controlled not by modifying the overlays directly, but
by adding and removing the generated symbols from a gigantic buffer
invisibilty spec.

This has myriad negative consequences.  It's slow because Emacs'
display engine has to traverse the buffer invisibility list for every
overlay and, since every overlay has its own symbol, this makes
rendering O(N^2) in the number of overlays.  It composes poorly
because symbol-type 'invisible properties are taken from the highest
priority overlay over a given character (which is often ambiguous!),
rather than being gathered from all overlays over a character.  As a
result, we have to include symbols related to message hiding in the
wash code lest the wash overlays un-hide parts of hidden messages.  It
also requires various workarounds for isearch to properly open
overlays, to set up buffer-invisibility-spec for
remove-from-invisibility-spec to work right, and to explicitly refresh
the display after updating the buffer invisibility spec.

None of this is necessary.

This patch converts show and wash to use simple boolean 'invisible
properties and to not use the buffer invisibility spec.  Rather than
adding and removing generated symbols from the invisibility spec, the
code now directly toggles the 'invisible property of the appropriate
overlay.  This speeds up rendering because the display engine only has
to check the boolean values of the overlays over a character.  It
composes nicely because text will be invisible if *any* overlay over
it has 'invisible t, which means we can overlap invisibility overlays
with abandon.  We no longer need any of the workarounds mentioned
above.  And it fixes a minor bug for free: now, when isearch opens a
washed region, the button text will update to say "Click/Enter to
hide" rather than remaining unchanged.
</content>
</entry>
<entry>
<title>emacs: Use --format-version for search, show, and reply</title>
<updated>2012-12-16T21:22:26Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-12-16T03:17:29Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=2cdb3f54f71e5e415a930aaa36452ffe1db04d06'/>
<id>urn:sha1:2cdb3f54f71e5e415a930aaa36452ffe1db04d06</id>
<content type='text'>
</content>
</entry>
<entry>
<title>emacs: Special handling for version mismatch errors</title>
<updated>2012-12-16T21:22:14Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-12-16T03:17:28Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=0df6dcfe7631b032e26c15ebb9627b3699200022'/>
<id>urn:sha1:0df6dcfe7631b032e26c15ebb9627b3699200022</id>
<content type='text'>
Since Emacs has more semantic information, we suppress the generic
format version error from the CLI and give a more informative error.
</content>
</entry>
<entry>
<title>emacs: Use unified error handling in search</title>
<updated>2012-12-16T21:17:41Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2012-12-15T20:04:19Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=19e5b2d912b52145403c3f11b0c30c84d7f2b409'/>
<id>urn:sha1:19e5b2d912b52145403c3f11b0c30c84d7f2b409</id>
<content type='text'>
This slightly changes the output of an existing test since we now
report non-zero exits with a pop-up buffer instead of at the end of
the search results.
</content>
</entry>
</feed>
