| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
The problem was that the version is recovered from the git tag, which
has the ~ replaced by _. This broke the sequencing of version numbers.
|
|
|
|
| |
(with a further M-x whitespace-cleanup by db)
|
|
|
|
|
|
| |
Add news entries for commits:
f9764bfacc97457d1154c2d2a6001a6564f13ec3
64febdf71c4184ca369f5d11d7f196704a3ec1a6
|
|
|
|
|
|
| |
This adds a NEWS entry for commit 4a4ada73b751b1916c5dc4d408a8056411566e38
(second try, with whitespace fix)
|
|
|
|
|
|
| |
This reverts commit e93bf1f842d4d06b2468d1cdbd5e4e25877c7a44.
reverting to fix whitespace
|
|
|
|
| |
This adds a NEWS entry for commit 4a4ada73b751b1916c5dc4d408a8056411566e38
|
|
|
|
| |
Add a news entry for commit6a280088e6769015ade7758b9790384997a21ff3.
|
|
|
|
|
|
| |
Performance
via email: id:"20111116154317.GC2852@mit.edu"
|
|
|
|
|
|
| |
More of a leap than a bump. This is a bit silly keeping 3 files
syncronized. At least for this file, I would prefer a solution that
generates notmuch.1 from some template at build time.
|
|
|
|
|
|
|
| |
The additional "safety feature" documented here is motivated by the
fact that I use gpg-agent and I don't always get the GPG prompt that
Carl was relying on as an abort point. The new version also allows
more to be done in "dry run" mode.
|
|
|
|
| |
This is definitely reaching the point where it should be automated.
|
|
|
|
|
|
|
|
| |
We really did bump SONAME, and we probably will again, but not just
for a simple symbol addition.
Debian versions generally need to be removed from symbols file; this
wasn't a problem before because there was no Debian versions
|
|
|
|
|
| |
I mention the possibility of a seperate license here because currently
notmuch-deliver is licensed GPL v2 only.
|
|
|
|
| |
Since this is only an added symbol, no soname bump required.
|
|
|
|
|
| |
The changelog is a bit minimalist, but we'll do better for the real
release.
|
|
|
|
| |
and the usual dance with the python bindings version.
|
|
|
|
| |
Signed-off-by: Jani Nikula <jani@nikula.org>
|
|
|
|
| |
Signed-off-by: Jani Nikula <jani@nikula.org>
|
|
|
|
|
|
|
| |
Add support for --output=messages (which remains the default) and
--output=threads to notmuch count.
Signed-off-by: Jani Nikula <jani@nikula.org>
|
|
|
|
|
|
| |
Remove unused code within #if 0 blocks from notmuch count.
Signed-off-by: Jani Nikula <jani@nikula.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add options --offset=[-]N and --limit=M to notmuch search to determine the
first result and maximum number of results to display.
Option --limit=M limits the maximum number of results to display to M.
Option --offset=[-]N skips the first N results; with the leading '-' skip
until the Nth result from the end.
Note that --offset with a negative N for thread or summary output requires
counting the number of matching threads in advance.
Signed-off-by: Jani Nikula <jani@nikula.org>
|
|
|
|
|
|
|
|
|
| |
Add function notmuch_query_count_threads() to get the number of threads
matching a search. This is done by performing a search and figuring out the
number of unique thread IDs in the matching messages, a significantly
heavier operation than notmuch_query_count_messages().
Signed-off-by: Jani Nikula <jani@nikula.org>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a rebase and cleanup of Istvan Marko's patch from
id:m3pqnj2j7a.fsf@zsu.kismala.com
Search retrieves these headers for every message in the search
results. Previously, this required opening and parsing every message
file. Storing them directly in the database significantly reduces IO
and computation, speeding up search by between 50% and 10X.
Taking full advantage of this requires a database rebuild, but it will
fall back to the old behavior for messages that do not have headers
stored in the database.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
directly
The main reason to introduce this new unexposed function is to allow
the buffer redisplay crypto switch to behaving in a more expected way.
The prefix to notmuch-show-redisplay buffer now switches the crypto
processing of the current show buffer, as opposed to switching the
logic of the notmuch-crypto-process-mime customization variable. This
behavior is more intuitive.
|
| |
|
|
|
|
|
| |
glibc includes a libutil, so if the wrong -L options get passed, we
will pick up glibc's version, rather than our own.
|
|
|
|
|
| |
In Emacs 24, a space is expected after a SMTP response code. If we don't respect
that, smtpmail-send-it will wait forever.
|
|
|
|
|
|
|
|
| |
Do not redirect test_emacs stderr to /dev/null. Test_emacs uses
emacsclient(1) now and it does not print unwanted messages (like
those from `message') to stderr. But it does print useful
errors, e.g. when emacs server connection fails, given expression
is not valid or undefined function is called.
|
|
|
|
|
| |
In the last line of run_emacs, exec the emacs process.
With one fork less the process list is (also) neater.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main idea is consider the notmuch database as analogous to the
work-tree. A bare git repo is maintained in the users home directory,
with a tree of the form tags/$message-id/$tag
Like notmuch and git, we have a set of subcommnds, mainly modelled on
git.
Implementation wise, the heavy lifting is in the following functions.
commit xapian -> git
checkout git -> xapian
merge fetched git + git -> xapian
status find differences between xapian, git, and remote git.
The central implementation trick, from an idea I think due to
tomprince on IRC is manipulate the git index directly from the xapian
tag information. The merge routine is still done using a temporary
checkout as I wasn't able to get it working with the index only.
There are also some convenience wrappers around git commands, like "fetch"
that essential just set GIT_DIR in the environment.
In order to encode tags (viewed as octet sequences) into filenames,
we whitelist a smallish set of characters and %hex escape anything outside.
The prefix is omitted in git, which lets one save and restore to
different prefixes (although this is only lightly tested).
Thanks to Tomi Ollila for a huge amount of feedback and patches while
putting this together.
|
|
|
|
|
| |
This mentions the fact that prefix arguments are now used to enable to
crypto switch.
|
|
|
|
| |
Use prefix argument instead to set switch.
|
|
|
|
|
|
| |
Should provide full test coverage of the stashing feature.
Signed-off-by: Pieter Praet <pieter@praet.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Add function `notmuch-show-stash-message-id-stripped'
which stashes a Message-ID after ripping off the prefix and quotes,
add bind it to "I" key in `notmuch-show-stash-map'.
Simplifying `notmuch-show-get-message-id' instead might seem better,
but that would require concat'ing in 9 places instead of 1.
Signed-off-by: Pieter Praet <pieter@praet.org>
|
|
|
|
| |
This brings NEWS back in line with the actual code.
|
|
|
|
|
|
|
|
|
| |
It is very convenient when C-e (bound to `widget-end-of-line') ignores
trailing spaces inside the search widget. But it only does so if a
widget is not followed by a newline (that is why it works in the saved
search widgets). The patch just adds an invisible space after the
search widget to get the desirable behavior of `widget-end-of-line'.
The extra space is also added to expected results of emacs tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Buffer redisplay requires traversing the buffer's invisibility spec
for every part of the display that has an 'invisible text or overlay
property. Previously, the search buffer's invisibility spec list
contained roughly one entry for each search result. As a result,
redisplay took O(NM) time where N is the number of visible lines and M
is the total number of results. On a slow computer, this is enough to
make even buffer motion noticeably slow. Worse, during a search
operation, redisplay is triggered for each search result (even if
there are no visible buffer changes), so search was quadratic
(O(NM^2)) in the number of search results.
This change switches to using a single element buffer invisibility
spec. To un-hide authors, instead of removing an entry from the
invisibility spec, it simply removes the invisibility overlay from
those authors.
I tested using a query with 6633 results on a 9 year old machine.
Before this patch, Emacs took 70 seconds to fill the search buffer;
toward the end of the search, Emacs consumed 10-20x as much CPU as
notmuch; and moving point in the buffer took about a second. With
this patch, the same query takes 40 seconds, Emacs consumes ~3x the
CPU of notmuch by the end, and there's no noticeable lag to moving
point. (There's still some source of non-linearity, because Emacs and
notmuch consume roughly the same amount of CPU early in the search.)
|
|
|
|
|
| |
Any junk bytes in sockaddr_in structure before passing that
to bind() system call may cause problems.
|
|
|
|
|
| |
This reflects a modification to the test suite to use dtach instead of
screen.
|
|
|
|
|
| |
No functional change, but this will make for cleaner diffs down the
line.
|
|
|
|
|
| |
dtach is simpler than screen and is not setuid/setgid program so
TMPDIR does not get cleared by dynamic loader when executed
|
|
|
|
|
|
| |
Emacs 23.2 queries by default about killing existing processes. This
is annoying when one wants to interrupt long search with 'q' key.
Disable this behavior for notmuch.
|
|
|
|
|
|
| |
`point-invisible-p' does not work correctly when `invisible'
property is a list. There are standard `invisible-p' and related
functions that should be used instead.
|
|
|
|
|
|
| |
Remove `notmuch-show-move-past-invisible-backward' and
`notmuch-show-move-past-invisible-forward' functions which are
unused.
|
|
|
|
|
|
|
| |
Use `previous-single-char-property-change' instead of going
through each character by hand and testing it's visibility. This
fixes `notmuch-show-advance-and-archive' to work for the last
message in thread with hidden signature.
|
|
|
|
|
| |
Add Emacs test to check that `notmuch-show-advance-and-archive'
works for the last message in thread with invisible signature.
|
|
|
|
|
|
| |
Hopefully this will be fixed before release, but for the moment,
explain to people why their test suite might not be working like it
used to.
|