Commit graph

3377 commits

Author SHA1 Message Date
Carl Worth
f689c83af4 Compile a static notmuch binary (but only install the shared version)
The idea here is to allow a new user of notmuch to be able to run
notmuch immediately after compiling, (without having to install
the shared library first). This also ensures that the test suite
tests the locally compiled library, and not whatever installled
version of the library the dynamic linker happens to find.
2010-04-01 15:03:40 -07:00
nstraz@redhat.com
685cfcc9e8 Setup the GMimeStream only when needed
I ran into this while looking at the vim plugin.  Vim's system() call
redirects output to a file and it was missing many of the part{ lines.

If stream_stdout is setup too early, it will overwrite the part start
when notmuch is redirected to a file.

Reviewed-by Carl Worth <cworth@cworth.org>: GMime is calling fseek
before every write to reset the FILE* to the position it believes is
correct based on the writes it has seen. Our code was getting
incorrect results because our GMime writes were interleaved with
non-GMime writes via printf.

The bug appears when writing to a file because it's seekable, but not
when writing to a pipe which is not.
2010-04-01 14:27:01 -07:00
Michal Sojka
b884ab2ef1 Makefile: Create include directory when installing headers
When I wanted to create a debian package from the current master, make
install failed because of non-existent include directory. This patch
fixes this minor issue.
2010-04-01 05:13:21 -07:00
Carl Worth
c0961e6a82 lib: Switch to a 3-part version number for the library interface.
With a carefully documented description of how to increment the
various version components.
2010-04-01 00:41:25 -07:00
Carl Worth
c20be126e5 Makefiles: Align the columns of output.
Much better.
2010-04-01 00:07:08 -07:00
Carl Worth
33d5cc415e Makefiles: Make the install rules quiet like the compilation rules.
The output from make is looking better all the time, (though the
columns still aren't lined up).
2010-03-31 23:54:21 -07:00
Carl Worth
e7131a5983 Makefile: Fix to print CFLAGS with "make V=0"
The default "make" would be quite quiet, but still conveniently print
the CFLAGS. The explicit "make V=0" was intended to be identical, (only
not printing the message about V=1 but was broken in that it left the
CFLAGS off). Fix this.
2010-03-31 23:32:35 -07:00
Carl Worth
8c671a17c0 Makefiles: Eliminate shell for loops in rule definitions.
These just made the output look so ugly, and weren't actually making
the rule definitions any simpler. Good riddance.
2010-03-31 22:59:30 -07:00
Carl Worth
7b52b2c318 Move installation of library from top-level to lib/Makefile.local
We had a fairly ugly violation of modularity with the top-level
Makefile.local isntalling everything, (even when the build commands
for the library were down in lib/Makefile.local).
2010-03-31 22:54:15 -07:00
Carl Worth
649b1609a1 Makefile.config: Avoid pre-expanding the ${prefix} variable.
One of the supproted mechanisms we offer for configuration is
manually editing the Makefile.config file after it is generated
by the configure script. In this case it would be nice to be able
to change prefix only once, so allow that.
2010-03-31 22:54:15 -07:00
Carl Worth
ab95219a2f Move some variable assignments from Makefile.local to Makefile.config
There's not any special configure logic for determining these variable
values, but if we did add some in the future, then these will now be
in the right place for that.

Additionally, this now makes Makefile.local the single place for the
user to look for manually tweaking a variable assignment, (say, for a
compiler that can't accept a particular warning argument).

With this change, there should rarely be any need for a user to poke
into any Makefile.local file.
2010-03-31 22:54:08 -07:00
Carl Worth
784e55d0f9 Move bulk of rules from Makefile to Makefile.local.
Before it was impossible to know whether any particular setting or
rule definition was in Makefile or Makefile.local. So we strip the
Makefile down to little more than the list of sub-directories and
the logic to include all of the sub-directories' Makefile.local
fragments.

Then, all of the real work can happen inside of Makefile.local.
2010-03-31 22:12:01 -07:00
Carl Worth
bf159bd829 configure: Fix installation of library to work with alternate --prefix
If an explicit --libdir is passed, then that is used directly. Otherwise
libdir is chosen as the value of $PREFIX/lib, (whether or not prefix was
passed explicitly or set by default).
2010-03-31 18:17:51 -07:00
Carl Worth
2057688645 configure: Fix typo in help message.
Documentation is installed to PREFIX/man not PREFIX/share.
2010-03-31 18:17:29 -07:00
Ingmar Vanhassel
acaff279e2 Add a --libdir option to ./configure
This allows packagers to specify to which directory libraries should be
installed.

Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
2010-03-31 18:07:58 -07:00
Saleem Abdulrasool
07378d0d14 Fix target dependencies for multiple jobs
Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
2010-03-31 17:41:28 -07:00
Ben Gamari
266ab595a2 Build and link against notmuch shared library, install notmuch.h
Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org>
2010-03-31 17:38:27 -07:00
Carl Worth
b957a1b029 emacs: Fix the notmuch-search-authors-width variable.
This variable existed previously, but wasn't actually used for anything.
2010-03-31 13:32:00 -07:00
Carl Worth
e002fe8a7a Clarify documentation of notmuch_database_add_message.
For the case of adding a file that already exist, (with the same
filename). In this case, nothing will happen to the database, but
that wasn't clear before.
2010-03-31 13:31:10 -07:00
Carl Worth
357b48d34b TODO: Note that '=' should sometimes count from the end of the buffer.
When trying to restore the current position, if the "current" thread
no longer appears in the buffer, then '=' moves to the current line
instead. When near the end of the buffer, the "current" line should
be counted as the number of lines from the end.
2010-03-31 13:31:10 -07:00
Carl Worth
4ec5e2a612 TODO: Add a todo item for adding a message as a blob, rather than a filename.
This was suggested by Srinivasa and is intended to make it easier to
integrate notmuch into an mbox-loving mail client.
2010-03-31 13:31:10 -07:00
Carl Worth
9ff063ded7 TODO: Add some new items about improving the test suite.
I just tried (and failed) to write a test for the recent magic
inference of phrase searches. That's a feature that makes me *really*
uncomfortable to not have an automated test. But I believe the
proposed modularization of the test suite should reduce some quoting
nightmares, so will hopefully make this easier.
2010-03-31 13:31:10 -07:00
Carl Worth
bf09c7d11e test: Fix phrase-search tests.
With some extra qutotation marks, we are now doing actual phrase
searches so these tests pass.
2010-03-31 13:31:09 -07:00
Carl Worth
70b7e659f6 test: Add some negative results for the phrase searches.
These results have all the same terms as the target phrase, but
not in the expected order. They are designed to ensure that we
actually test phrase searches.

And as it turns out, we're not currently quoting the search terms
properly, so the phrase-search tests now fail with this commit.
2010-03-31 13:31:09 -07:00
Sebastian Spaeth
dfa9eb8afa notmuch new implementation
It can not add and remove messages. However, message moves are not detected and we do not modify or honor the Directory entries yet.
2010-03-31 10:23:29 +02:00
Sebastian Spaeth
a5596f375b database(): Actually return a value on remove_message() 2010-03-31 10:12:55 +02:00
Sebastian Spaeth
93298e11dc notmuch: refactor stuff into a Notmuch class
This commit contains many minor and bigger changes, such as the removal of the logging import too.
2010-03-31 08:39:14 +02:00
Sebastian Spaeth
775d3bc313 database.py: also need to import Message 2010-03-30 16:10:07 +02:00
Sebastian Spaeth
f70b84cb39 Ubuntu debian file creation documentation 2010-03-30 13:50:11 +02:00
Sebastian Spaeth
43f7ce29d6 Debian pkg creation stuff 2010-03-30 12:07:53 +02:00
Sebastian Spaeth
21538d18af message.py: Don't use ctypes.c_bool as that does not exist in python 2.5 2010-03-30 11:42:52 +02:00
Jesse Rosenthal
3c8ba0f18f message.py: fix indentation 2010-03-30 11:00:27 +02:00
Sebastian Spaeth
3d6590be02 Need to do capitalization changes in dict keys from rev 45d2012fcf51 for all usages 2010-03-30 09:54:41 +02:00
Sebastian Spaeth
bac66abdd2 message.py: small doc changes and unused code removal 2010-03-30 09:34:40 +02:00
Sebastian Spaeth
ad597b153c Revert some unneeded white space changes 2010-03-30 09:04:48 +02:00
Jesse Rosenthal
c0db88a95c [REV2] adding part, simplifying Message.get_parts(), and fixing json to work with dme's json ui
Sebastian:

This replaces the patch it responds to. With this patch, we can now use
the cnotmuch with David's json ui. There are still issues, but this
allows interaction with emacs.

---
2010-03-30 08:59:40 +02:00
Jesse Rosenthal
61a547bd3e implement sort order for notmuch show 2010-03-28 00:02:44 +01:00
Sebastian Spaeth
8b84f00cce fix wrongly names variable format->out_format 2010-03-25 16:32:26 +01:00
Sebastian Spaeth
62a73f7eb0 rename show_messages to print_messages and fix up the arg parsing for notmuch show a bit 2010-03-25 16:22:59 +01:00
Sebastian Spaeth
5c4af8ce39 Message(): add 'match' result in text output. Fix is_match to use class, not instance, attributes. 2010-03-25 15:55:23 +01:00
Sebastian Spaeth
ff7756184d message.yp: add GPL v3 boilerplate and add Jesse as copyright holder 2010-03-25 15:36:20 +01:00
Jesse Rosenthal
48ec49f05d Message(): Implement show message as text or json 2010-03-25 15:29:01 +01:00
Jesse Rosenthal
46d06838ae notmuch: Make modifications to implement notmuch search 2010-03-25 15:17:31 +01:00
Sebastian Spaeth
bdc3a95bb7 push __VERSION__ to post release 0.2.1+ 2010-03-25 14:48:44 +01:00
Sebastian Spaeth
ffe8c46f85 Added tag v0.2.1 for changeset 8f496a1f9b34 2010-03-25 14:30:58 +01:00
Sebastian Spaeth
5bab5968aa bump __VERSION__ to 0.2.1 2010-03-25 14:30:50 +01:00
Sebastian Spaeth
7390c869c7 docs: Improve documentations 2010-03-25 14:28:56 +01:00
Sebastian Spaeth
bef8bdbd04 Implement Database.upgrade() to get the last bit of API. We are complete now. 2010-03-25 13:13:44 +01:00
Sebastian Spaeth
d49f956027 Implement Filenames() iterator. The API should be complete at this point.
We are still missing Database.upgrade() as I am not sure how to implement the callback, and it's not that important for now. Documentation for the new classes is written inline, but not integrated in the docs yet.
2010-03-25 12:01:20 +01:00
Sebastian Spaeth
a27c480048 Implement Database().get_directory() and Directory() class. 2010-03-25 11:39:31 +01:00