aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-11-12emacs: Use a single buffer invisibility spec to fix quadratic search cost.Austin Clements
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.)
2011-11-12smtp-dummy: clear sockaddr_in structure before use in bind()Tomi Ollila
Any junk bytes in sockaddr_in structure before passing that to bind() system call may cause problems.
2011-11-11debian: update build dependency on dtach instead of screenJameson Graef Rollins
This reflects a modification to the test suite to use dtach instead of screen.
2011-11-11debian: clean up Uploaders and Build-Depends fields in debian/controlJameson Graef Rollins
No functional change, but this will make for cleaner diffs down the line.
2011-11-11test: use dtach(1) instead of screen(1) in emacs testsTomi Ollila
dtach is simpler than screen and is not setuid/setgid program so TMPDIR does not get cleared by dynamic loader when executed
2011-11-08Do not query on notmuch-search exitMichal Sojka
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.
2011-11-07emacs: remove unused `point-invisible-p' functionDmitry Kurochkin
`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.
2011-11-07emacs: remove no longer used functions from notmuch-show.elDmitry Kurochkin
Remove `notmuch-show-move-past-invisible-backward' and `notmuch-show-move-past-invisible-forward' functions which are unused.
2011-11-07emacs: improve hidden signatures handling in notmuch-show-advance-and-archiveDmitry Kurochkin
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.
2011-11-07test: `notmuch-show-advance-and-archive' with invisible signatureDmitry Kurochkin
Add Emacs test to check that `notmuch-show-advance-and-archive' works for the last message in thread with invisible signature.
2011-11-05NEWS: tentative news item about requiring screen to run the test suite.David Bremner
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.
2011-11-05debian: build-depend on screen.David Bremner
This is needed for emacs tests, now that those are run in screen.
2011-11-05test: do not set frame width in emacsDmitry Kurochkin
No need for `set-frame-width' in emacs tests since it runs in screen now.
2011-11-05test: avoid using screen(1) configuration filesDmitry Kurochkin
Set SCREENRC and SYSSCREENRC environment variables to "/dev/null" as suggested by Jim Paris to avoid potential problems with screen(1) configuration files.
2011-11-05test: run emacs inside screenDmitry Kurochkin
Before the change, emacs run in daemon mode without any visible buffers. Turns out that this affects emacs behavior in some cases. In particular, `window-end' function returns `point-max' instead of the last visible position. That makes it hard or impossible to implement some tests. The patch runs emacs in a detached screen(1) session. So that it works exactly as if it has a visible window. Note: screen terminates when emacs exits. So the patch does not introduce new "running processes left behind" issues.
2011-11-05test: json show format of message with inline attachment with filenameDmitry Kurochkin
The patch adds a test to check that json show format includes filenames for attachments with inline disposition.
2011-11-05notmuch-deliver: update gitignoreAli Polatel
2011-11-05notmuch-deliver: Don't read errno inappropriately.Thomas Schwinge
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05notmuch-deliver: Won't deliver to more than one folder.Thomas Schwinge
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05notmuch-deliver: Advance imported files to maildrop-2.5.2 release.Thomas Schwinge
2011-11-05notmuch-deliver: Import said files from maildrop-2.2.0 release.Thomas Schwinge
We won't use all of the included build infrastructure files, but adding them nevertheless helps to track changes that are applied to them upstream. Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05Move files copied from maildrop to a separate hierarchy.Thomas Schwinge
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05Make it build in a separate build directory.Thomas Schwinge
Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
2011-11-05notmuch-deliver: Add mailmapAli Polatel
2011-11-05notmuch-deliver: Fix utter failurealip
2011-11-05notmuch-deliver: Use splice() if it's availableAli Polatel
NOTMUCH_DELIVER_NO_SPLICE environment variable may be set to fallback to the read/write method.
2011-11-05notmuch-deliver: Add --enable-{gprof,gcov} options to configureAli Polatel
2011-11-05More debug messagesAli Polatel
2011-11-05notmuch-deliver: Fix typos in option context descriptionAli Polatel
2011-11-05notmuch-deliver: Fix copy/paste failAli Polatel
2011-11-05notmuch-deliver: Initial importAli Polatel
2011-11-02emacs: Tab completion for notmuch-search and notmuch-search-filterDaniel Schoepe
This patch adds completion with <tab> in the minibuffer for notmuch-search and notmuch-search-filter.
2011-11-02lib/database.cc: use flush Xapian method instead of commitDavid Bremner
Apparently the method was renamed in Xapian 1.1.0 but the old method name will stay around for a while. It seems better to stick with the old name to make notmuch compile with older versions of Xapian, at least for now.
2011-10-31remove GCC visibility pragmasTomi Ollila
libnotmuch.so.* linking fail on some environments. According to David Bremner on irc: "We jump through hoops with the linker script (notmuch.sym) so the pragmas are not needed. And they are a little bizarre in a library anyway..."
2011-10-30xregcomp: don't consider every regex compilation failure an internal error.David Bremner
This pushes the error handling up one step, but makes the function more flexible. Running out of memory still triggers an internal error, in the spirit of other xutils functions.
2011-10-30xutil.c: remove duplicate copies, create new library libutil.a to contain xutil.David Bremner
We keep the lib/xutil.c version. As a consequence, also factor out _internal_error and associated macros. It might be overkill to make a new file error_util.c for this, but _internal_error does not really belong in database.cc.
2011-10-28build system: target to make a Debian snapshot package.David Bremner
Currently this builds a native package, but since the source package is throw away, it should not matter too much, except for the extra warnings from lintian. The extra +1 is so that if $(VERSION) is the same as the last released version (for example outside a git repo) then the versions still order correctly.
2011-10-28build system: remove dashes from git-describe generated version.David Bremner
This makes it less confusing with released Debian versions, now that we have non-native Debian versions.
2011-10-28emacs: Turn id:"<message-id>" elements into buttons for notmuch searchesDaniel Schoepe
This fixes the minor annoyance that message ids were parsed as mail addresses by goto-address-mode in notmuch-show buffers.
2011-10-28Separate Emacs misc. files dir. from Emacs code dir.Amadeusz Żołnowski
New option --emacsetcdir was added, but it's set default to the same value as --emacslispdir for backward compatibility.
2011-10-24Prefix lib/notmuch.h and lib/gen-version-script.sh with $(srcdir)Amadeusz Żołnowski
lib/notmuch.h and lib/gen-version-script.sh couldn't have been found when building out of sources directory.
2011-10-23docs: Update news, man page, and online help for restore --accumulateDavid Bremner
As a side effect, reformat the NEWs entry for notmuch dump for consistency with the notmuch restore NEWS submitted by Thomas Schwinge.
2011-10-23notmuch-restore: check for extra arguments.David Bremner
We consider it an error to pass more than one file to restore, since extra ones are ignored.
2011-10-23notmuch-restore: implement --accumulate optionDavid Bremner
Modify command line argument handling to take a --accumulate flag. Test for extra arguments beyond the input file. The --accumulate switch causes the union of the existing and new tags to be applied, instead of replacing each message's tags as they are read in from the dump file. Based on a patch by Thomas Schwinge: id:"1317317857-29636-1-git-send-email-thomas@schwinge.name"
2011-10-23test/dump-restore: add tests for restore --accumulateDavid Bremner
Flesh out what ``notmuch restore --accumulate'' is supposed to do. Its tests are currently XFAILed; the functionality will be added in future patch(es). Based on a patch by Thomas Schwinge: id:"1317317811-29540-1-git-send-email-thomas@schwinge.name"
2011-10-23notmuch.1: typo fixes new wording for dump/restoreDavid Bremner
These changes were included in Thomas's restore --accumulate patch, but are actually more generally applicable.
2011-10-23test/dump-restore: Fix quoting on grepDavid Bremner
Thanks to Thomas Schwinge for noticing yet another place where quoting matters. Since the shell translates \. to ., the regex passed to grep is too generous without the quotes. The use of [.] is the suggestion of Tomi Ollila.
2011-10-22test/dump-restore: expand test suite for dump-restore, make more robustDavid Bremner
Several new tests are added, and existing use of test_begin_subtest is replaced by test_expect_success to catch failing commands in cases where we execute more than one command. Based on changes in id:"1317317811-29540-1-git-send-email-thomas@schwinge.name"
2011-10-22test/test-lib.sh: update commentsDavid Bremner
- explain test_expect_equal_file - remove mention of test_expect_failure, since that function was removed. Based on id:"1317317811-29540-1-git-send-email-thomas@schwinge.name"
2011-10-22cli: change argument parsing convention for subcommandsDavid Bremner
previously we deleted the subcommand name from argv before passing to the subcommand. In this version, the deletion is done in the actual subcommands. Although this causes some duplication of code, it allows us to be more flexible about how we parse command line arguments in the subcommand, including possibly using off-the-shelf routines like getopt_long that expect the name of the command in argv[0].