notmuch
8 years agoRevert "ruby: Add workarounds to use in-tree build not the installed one"
Felipe Contreras [Fri, 25 May 2012 13:08:17 +0000 (15:08 +0200)]
Revert "ruby: Add workarounds to use in-tree build not the installed one"

This reverts commit 82b73ffd7380b85d259eeb91100dd6ac2d14223a.

Only leave the copyright changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
8 years agotest: add tests for notmuch reply From guessing
Jani Nikula [Thu, 24 May 2012 05:15:50 +0000 (08:15 +0300)]
test: add tests for notmuch reply From guessing

Add tests for picking up user's From address from fallback headers
Envelope-To, X-Original-To, and Delivered-To.

Signed-off-by: Jani Nikula <jani@nikula.org>
8 years agocli: also use Delivered-To header to figure out the reply from address
Jani Nikula [Thu, 24 May 2012 05:15:49 +0000 (08:15 +0300)]
cli: also use Delivered-To header to figure out the reply from address

Add another fallback header Delivered-To for guessing the user's from
address for notmuch reply before using the Received
headers. Apparently some MTAs use Delivered-To instead of
X-Original-To (which already exists as a fallback).

Reported-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
Signed-off-by: Jani Nikula <jani@nikula.org>
8 years agoRecommend libgmime-2.6-dev in INSTALL
Austin Clements [Thu, 24 May 2012 19:32:31 +0000 (15:32 -0400)]
Recommend libgmime-2.6-dev in INSTALL

Given that everything prefers 2.6 over 2.4, it seems appropriate to
suggest that people install the 2.6 dev package instead of 2.4.

8 years agonew: Unify add_files and add_files_recursive
Austin Clements [Thu, 24 May 2012 22:01:13 +0000 (18:01 -0400)]
new: Unify add_files and add_files_recursive

Since starting at the top of a directory tree and recursing within
that tree are now identical operations, there's no need for both
add_files and add_files_recursive.  This eliminates add_files (which
did nothing more than call add_files_recursive after the previous
patch) and renames add_files_recursive to add_files.

8 years agonew: Merge error checks from add_files and add_files_recursive
Austin Clements [Thu, 24 May 2012 22:01:12 +0000 (18:01 -0400)]
new: Merge error checks from add_files and add_files_recursive

Previously, add_files_recursive could have been called on a symlink to
a non-directory.  Hence, calling it on a non-directory was not an
error, so a separate function, add_files, existed to fail loudly in
situations where the path had to be a directory.

With the new stat-ing logic, add_files_recursive is always called on
directories, so the separation of this logic is no longer necessary.
Hence, this patch moves the strict error checking previously done by
add_files into add_files_recursive.

8 years agonew: Centralize file type stat-ing logic
Austin Clements [Thu, 24 May 2012 22:01:11 +0000 (18:01 -0400)]
new: Centralize file type stat-ing logic

This moves our logic to get a file's type into one function.  This has
several benefits: we can support OSes and file systems that do not
provide dirent.d_type or always return DT_UNKNOWN, complex
symlink-handling logic has been replaced by a simple stat fall-through
in one place, and the error message for un-stat-able file is more
accurate (previously, the error always mentioned directories, even
though a broken symlink is not a directory).

8 years agotest: Test notmuch new with a broken symlink
Austin Clements [Thu, 24 May 2012 22:01:10 +0000 (18:01 -0400)]
test: Test notmuch new with a broken symlink

8 years agoMerge branch 'release'
David Bremner [Thu, 24 May 2012 01:48:16 +0000 (22:48 -0300)]
Merge branch 'release'

merge 0.13.1 bugfix patches back to master, fixes for emacs reply and
spurious directory document creation.

8 years agocli: clean up user address matching code in guess_from_received_header()
Jani Nikula [Fri, 11 May 2012 14:33:05 +0000 (17:33 +0300)]
cli: clean up user address matching code in guess_from_received_header()

Get rid of user address matching code duplication in
guess_from_received_header() by using the new address matching
helpers.

No functional changes.

Signed-off-by: Jani Nikula <jani@nikula.org>
8 years agocli: add user address matching helpers for notmuch reply
Jani Nikula [Fri, 11 May 2012 14:33:04 +0000 (17:33 +0300)]
cli: add user address matching helpers for notmuch reply

Add a multi-purpose address_match() function for matching strings
against user's configured primary and other email addresses. Add thin
wrappers user_address_in_string() and string_in_user_address() for
ease of use, and also convert existing address_is_users() to wrapper
for the same.

No functional changes.

Signed-off-by: Jani Nikula <jani@nikula.org>
8 years agolib: Don't needlessly create directory docs in _notmuch_message_remove_filename
Austin Clements [Fri, 18 May 2012 04:13:42 +0000 (00:13 -0400)]
lib: Don't needlessly create directory docs in _notmuch_message_remove_filename

Previously, if passed a filename with a directory that did not exist
in the database, _notmuch_message_remove_filename would needlessly
create that directory document.  Fix it so that doesn't happen.

8 years agopython: Remove find_message_by_filename workaround
Austin Clements [Fri, 18 May 2012 04:13:41 +0000 (00:13 -0400)]
python: Remove find_message_by_filename workaround

Now that notmuch_database_find_message_by_filename works on read-only
databases, remove the workaround that disabled it on read-write
databases.

This also adds a regression test for find_message_by_filename.

8 years agolib: Make notmuch_database_find_message_by_filename not crash on read-only databases
Austin Clements [Fri, 18 May 2012 04:13:40 +0000 (00:13 -0400)]
lib: Make notmuch_database_find_message_by_filename not crash on read-only databases

Previously, _notmuch_database_filename_to_direntry would abort with an
internal error when called on a read-only database.  Now that creating
the directory document is optional,
notmuch_database_find_message_by_filename can disable directory
document creation (as it should) and, as a result, not abort on
read-only databases.

8 years agopython: Update Database.get_directory documentation
Austin Clements [Fri, 18 May 2012 04:13:39 +0000 (00:13 -0400)]
python: Update Database.get_directory documentation

notmuch_database_get_directory no longer returns an error for
read-only databases, so remove ReadOnlyDatabaseError from the list of
get_directory exceptions.

8 years agonew: Remove workaround for detecting newly created directory objects
Austin Clements [Fri, 18 May 2012 04:13:38 +0000 (00:13 -0400)]
new: Remove workaround for detecting newly created directory objects

Previously, notmuch_database_get_directory did not indicate whether or
not the returned directory object was newly created, which required a
workaround to distinguish newly created directory objects with no
child messages from directory objects that had no mtime set but did
have child messages.  Now that notmuch_database_get_directory
distinguishes whether or not the directory object exists in the
database, this workaround is no longer necessary.

8 years agolib: Make notmuch_database_get_directory return NULL if the directory is not found
Austin Clements [Fri, 18 May 2012 04:13:37 +0000 (00:13 -0400)]
lib: Make notmuch_database_get_directory return NULL if the directory is not found

Using the new support from _notmuch_directory_create, this makes
notmuch_database_get_directory a read-only operation that simply
returns the directory object if it exists or NULL otherwise.  This
also means that notmuch_database_get_directory can work on read-only
databases.

This change breaks the directory mtime workaround in notmuch-new.c by
fixing the exact issue it was working around.  This permits mtime
update races to prevent scans of changed directories, which
non-deterministically breaks a few tests.  The next patch fixes this.

8 years agolib: Perform the same transformation to _notmuch_database_filename_to_direntry
Austin Clements [Fri, 18 May 2012 04:13:36 +0000 (00:13 -0400)]
lib: Perform the same transformation to _notmuch_database_filename_to_direntry

Now _notmuch_database_filename_to_direntry takes a flags argument and
can indicate if the necessary directory documents do not exist.
Again, callers have been updated, but retain their original behavior.

8 years agolib: Perform the same transformation to _notmuch_database_find_directory_id
Austin Clements [Fri, 18 May 2012 04:13:35 +0000 (00:13 -0400)]
lib: Perform the same transformation to _notmuch_database_find_directory_id

Now _notmuch_database_find_directory_id takes a flags argument, which
it passes through to _notmuch_directory_create and can indicate if the
directory does not exist.  Again, callers have been updated, but
retain their original behavior.

8 years agolib: Make directory document creation optional for _notmuch_directory_create
Austin Clements [Fri, 18 May 2012 04:13:34 +0000 (00:13 -0400)]
lib: Make directory document creation optional for _notmuch_directory_create

Previously this function would create directory documents if they
didn't exist.  As a result, it could only be used on writable
databases.  This adds an argument to make creation optional and to
make this function work on read-only databases.  We use a flag
argument to avoid a bare boolean and to permit future expansion.

Both callers have been updated, but currently retain the old behavior.
We'll take advantage of the new argument in the following patches.

8 years agoemacs: use 'gnus-decoded in notmuch-mm-display-part-inline ()
Tomi Ollila [Sun, 20 May 2012 16:58:14 +0000 (19:58 +0300)]
emacs: use 'gnus-decoded in notmuch-mm-display-part-inline ()

When mail message is read from emacs, the message structure
obtained may contain parts which have content included
(`text/plain` for example) and other parts where content is not
included (`text/html` for example).

In case content is included, the string is already available in
emacs' internal format and therefore mm-... functions should not
attempt to do further decoding for the data in temp buffer
provided for it.

Currently when reply buffer is created,
notmuch-mm-display-part-inline () is used to provided quoted reply
content. This change makes the mm-... functions called by it use
'gnus-decoded as charset whenever the content is already available.

File .../emacs-23.3/lisp/gnus/mm-uu.el mentions:
"`gnus-decoded' is a fake charset, which means no further decoding."

8 years agopython: deprecate Messages.{format,print}_messages
Justus Winter [Thu, 17 May 2012 17:06:57 +0000 (19:06 +0200)]
python: deprecate Messages.{format,print}_messages

This code adds functionality at the python level that is unlikely to
be useful for anyone. Furthermore the python bindings strive to be a
thin wrapper around libnotmuch, so this code will be removed in
notmuch 0.15.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: deprecate Database.db_p
Justus Winter [Thu, 17 May 2012 17:05:53 +0000 (19:05 +0200)]
python: deprecate Database.db_p

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: fix Message.get_header
Justus Winter [Thu, 17 May 2012 16:14:58 +0000 (18:14 +0200)]
python: fix Message.get_header

8dc8495010057202b725ac029831c03f4e3ab6bd introduced a bug, if the
requested header is not set the underlying notmuch function returns an
empty string that also made the expression true resulting in an
exception being raised. Partly revert the commit to fix this
issue. Testing for equality with None is correct in this case since
the restype of the function Message._get_header is c_char_p so NULL
pointers are in fact converted to None in this case.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: add a file abstracting away differences between python 2 and 3
Justus Winter [Thu, 17 May 2012 16:13:55 +0000 (18:13 +0200)]
python: add a file abstracting away differences between python 2 and 3

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove the "notmuch binary" section from the docs
Justus Winter [Thu, 17 May 2012 15:47:49 +0000 (17:47 +0200)]
python: remove the "notmuch binary" section from the docs

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: Fix the remaining broken NULL pointer tests
Justus Winter [Thu, 17 May 2012 15:15:24 +0000 (17:15 +0200)]
python: Fix the remaining broken NULL pointer tests

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: use relative imports
Justus Winter [Thu, 17 May 2012 14:58:53 +0000 (16:58 +0200)]
python: use relative imports

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove unused import of the json module
Justus Winter [Thu, 17 May 2012 14:55:29 +0000 (16:55 +0200)]
python: remove unused import of the json module

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agodebian: fix typo in changelog.
David Bremner [Wed, 16 May 2012 16:49:23 +0000 (13:49 -0300)]
debian: fix typo in changelog.

the path for NEWS was wrong
(cherry picked from commit b9520ef033ea9ae54507f94f7258641a6a1ad2e6)

8 years agoNEWS: Capitalized go bindings changes title
Tomi Ollila [Wed, 16 May 2012 07:21:50 +0000 (10:21 +0300)]
NEWS: Capitalized go bindings changes title

Align 'Go bindings changes' title capitalization to rest of the file

8 years agoNEWS: Insert markdown formatting commands in 0.13 section text
Tomi Ollila [Wed, 16 May 2012 07:21:49 +0000 (10:21 +0300)]
NEWS: Insert markdown formatting commands in 0.13 section text

NEWS entries in section 0.13 is brought consistent with rest of the
NEWS file.

8 years agoNEWS: Changed 0.13 release date in NEWS file to 2012-05-15
Tomi Ollila [Wed, 16 May 2012 07:21:48 +0000 (10:21 +0300)]
NEWS: Changed 0.13 release date in NEWS file to 2012-05-15

8 years agoNEWS: Dropped old 'Reply to sender' section
Tomi Ollila [Wed, 16 May 2012 07:21:47 +0000 (10:21 +0300)]
NEWS: Dropped old 'Reply to sender' section

'Reply to sender' section was 0.12 news which was accidentally
duplicated in 0.13 news

8 years agodebian: fix typo in changelog.
David Bremner [Wed, 16 May 2012 16:49:23 +0000 (13:49 -0300)]
debian: fix typo in changelog.

the path for NEWS was wrong

8 years agopython: remove format_message_as_{json,text} from the sphinx docs
Justus Winter [Wed, 16 May 2012 14:57:45 +0000 (16:57 +0200)]
python: remove format_message_as_{json,text} from the sphinx docs

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove functions that have been marked as deprecated in 0.13
Justus Winter [Wed, 16 May 2012 14:20:42 +0000 (16:20 +0200)]
python: remove functions that have been marked as deprecated in 0.13

Removes Message.format_message_{internal,as_json,as_text}.

This code adds functionality at the python level that is unlikely to
be useful for anyone. Furthermore the python bindings strive to be a
thin wrapper around libnotmuch. The code has been marked as deprecated
in 0.13 and is now removed.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove notmuch.py
Justus Winter [Wed, 16 May 2012 14:45:56 +0000 (16:45 +0200)]
python: remove notmuch.py

Removes notmuch.py. If someone wants to step up and work on this it
can always be restored using the version control system.

notmuch.py was meant to be a python implementation of the notmuch
utility. It was never finished and hasn't been updated to changes in
the API and bindings and its features and interface haven't been kept
in sync with the notmuch utility.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agodebian: changelog stanza for 0.13 0.13
David Bremner [Tue, 15 May 2012 21:26:48 +0000 (18:26 -0300)]
debian: changelog stanza for 0.13

My usual lazy self, refer to upstream NEWS.

8 years agoversion: bump to 0.13
David Bremner [Tue, 15 May 2012 21:18:45 +0000 (18:18 -0300)]
version: bump to 0.13

8 years agoadd NEWS item about new emacs tagging interface.
Jameson Graef Rollins [Tue, 15 May 2012 16:26:42 +0000 (09:26 -0700)]
add NEWS item about new emacs tagging interface.

This is fairly important to mention, since it represents a user
interface change.

8 years agodebian: recommend notmuch-mutt as an alternative user interface
Stefano Zacchiroli [Tue, 15 May 2012 13:12:25 +0000 (15:12 +0200)]
debian: recommend notmuch-mutt as an alternative user interface

Recommend all notmuch UI (including notmuch-mutt) as alternatives, to
avoid unneeded vim/emacs installation.

Thanks Matteo F. Vescovi for the patch.

Closes: #673011
8 years agonews: Update for changes to notmuch_database_get_directory
Austin Clements [Sun, 13 May 2012 23:36:13 +0000 (19:36 -0400)]
news: Update for changes to notmuch_database_get_directory

8 years agoruby: Update for changes to notmuch_database_get_directory
Austin Clements [Sun, 13 May 2012 23:36:12 +0000 (19:36 -0400)]
ruby: Update for changes to notmuch_database_get_directory

8 years agopython: Update for changes to notmuch_database_get_directory
Austin Clements [Sun, 13 May 2012 23:36:11 +0000 (19:36 -0400)]
python: Update for changes to notmuch_database_get_directory

notmuch_database_get_directory now returns
NOTMUCH_STATUS_READ_ONLY_DATABASE on its own (rather than crashing) so
the workaround in Database.get_directory is no longer necessary.

8 years agogo: Update for changes to notmuch_database_get_directory
Austin Clements [Sun, 13 May 2012 23:36:10 +0000 (19:36 -0400)]
go: Update for changes to notmuch_database_get_directory

8 years agolib/cli: Make notmuch_database_get_directory return a status code
Austin Clements [Sun, 13 May 2012 23:36:09 +0000 (19:36 -0400)]
lib/cli: Make notmuch_database_get_directory return a status code

Previously, notmuch_database_get_directory had no way to indicate how
it had failed.  This changes its prototype to return a status code and
set an out-argument to the retrieved directory, like similar functions
in the library API.  This does *not* change its currently broken
behavior of creating directory objects when they don't exist, but it
does document it and paves the way for fixing this.  Also, it can now
check for a read-only database and return
NOTMUCH_STATUS_READ_ONLY_DATABASE instead of crashing.

In the interest of atomicity, this also updates calls from the CLI so
that notmuch still compiles.

8 years agoNEWS: add an entry for the go 1 compatibility
Justus Winter [Sat, 12 May 2012 13:43:23 +0000 (15:43 +0200)]
NEWS: add an entry for the go 1 compatibility

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: format the souce code using gofmt
Justus Winter [Wed, 9 May 2012 11:15:20 +0000 (13:15 +0200)]
go: format the souce code using gofmt

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: update the build system
Justus Winter [Wed, 9 May 2012 11:15:19 +0000 (13:15 +0200)]
go: update the build system

The new "go" utility does not require any Makefiles to compile go
packages and programs. Remove the old Makefiles and replace the top
level Makefile with one defining some convenience targets for
compiling the notmuch bindings and the notmuch-addrlookup utility.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: update the addrlookup utility to go 1
Justus Winter [Wed, 9 May 2012 11:15:18 +0000 (13:15 +0200)]
go: update the addrlookup utility to go 1

Use the new built in error type that replaces os.Error, adapt the code
to the fact that strings.Split has just two arguments now.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: set LDFLAGS to -lnotmuch in the packages source file
Justus Winter [Wed, 9 May 2012 11:15:17 +0000 (13:15 +0200)]
go: set LDFLAGS to -lnotmuch in the packages source file

Set the LDFLAGS to -lnotmuch so the resulting go package will be
linked with libnotmuch.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: reorganize the go bindings
Justus Winter [Wed, 9 May 2012 11:15:16 +0000 (13:15 +0200)]
go: reorganize the go bindings

go 1 introduced the "go" program that simplifies building of libraries
and programs. This patch reorganizes the go code so it can be compiled
using the new utility, it does not change any files.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: define the constant STATUS_UNBALANCED_ATOMIC
Justus Winter [Wed, 9 May 2012 10:23:08 +0000 (12:23 +0200)]
go: define the constant STATUS_UNBALANCED_ATOMIC

Add the constant STATUS_UNBALANCED_ATOMIC to the list of notmuch
status codes.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: fix the notmuch status constants
Justus Winter [Wed, 9 May 2012 10:23:07 +0000 (12:23 +0200)]
go: fix the notmuch status constants

Formerly all the constants were set to zero since in golang constants
are set to the previous value if no new value is specified. Use the
iota operator that is incremented after each use to fix this issue.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agogo: update notmuch-addrlookup to the new API
Justus Winter [Wed, 9 May 2012 10:23:06 +0000 (12:23 +0200)]
go: update notmuch-addrlookup to the new API

notmuch.OpenDatabase now returns a status indicating success or
failure. Use this information to inform the user of any failures.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agodebian: fix suite debian/0.13_rc1-2
David Bremner [Wed, 9 May 2012 00:40:41 +0000 (21:40 -0300)]
debian: fix suite

Since I already pushed a tag 0.13_rc-1, let's just increment the
debian version to keep everything tidy.

8 years agobump version to 0.13~rc1 0.13_rc1 debian/0.13_rc1-1
David Bremner [Tue, 8 May 2012 17:49:08 +0000 (14:49 -0300)]
bump version to 0.13~rc1

8 years agoruby: Add wrapper for notmuch_query_set_omit_excluded()
Ali Polatel [Mon, 7 May 2012 15:02:46 +0000 (18:02 +0300)]
ruby: Add wrapper for notmuch_query_set_omit_excluded()

8 years agoruby: Add workarounds to use in-tree build not the installed one
Ali Polatel [Mon, 7 May 2012 15:02:45 +0000 (18:02 +0300)]
ruby: Add workarounds to use in-tree build not the installed one

- Make mkmf use the notmuch.h under ../../lib
- Use libnotmuch.a instead of linking to the installed libnotmuch.so

8 years agoruby: Add wrapper for notmuch_query_add_tag_exclude
Ali Polatel [Mon, 7 May 2012 15:02:44 +0000 (18:02 +0300)]
ruby: Add wrapper for notmuch_query_add_tag_exclude

8 years agoruby: Add wrapper for notmuch_query_count_messages
Ali Polatel [Mon, 7 May 2012 15:02:43 +0000 (18:02 +0300)]
ruby: Add wrapper for notmuch_query_count_messages

8 years agoemacs: fix custom queries section customization widget in notmuch-hello
Dmitry Kurochkin [Sat, 5 May 2012 14:39:47 +0000 (18:39 +0400)]
emacs: fix custom queries section customization widget in notmuch-hello

The customization widget referred to a non-existing function
`notmuch-hello-insert-query-list'.  The patch changes it to the
correct one - `notmuch-hello-insert-searches'.  The relevant test is
fixed now.

8 years agotest: add Emacs notmuch-hello tests for custom tags and queries section.
Dmitry Kurochkin [Sat, 5 May 2012 14:39:46 +0000 (18:39 +0400)]
test: add Emacs notmuch-hello tests for custom tags and queries section.

The tests use default values from customization widgets to make sure
that these customization widgets work (at least on basic level).

The custom queries section test is currently broken.

8 years agotest: Force reply to use html2text for consistency
Adam Wolfe Gordon [Sun, 6 May 2012 14:56:15 +0000 (08:56 -0600)]
test: Force reply to use html2text for consistency

The output of the HTML reply test in the emacs suite can vary
depending on which HTML renderers are installed on the machine running
the tests. The renderer that is always available is emacs's builtin
html2text function. In order to get consistency, force the test to use
html2text even if other renderers are available.

8 years agoemacs: Do not pass stderr of notmuch reply to JSON parser
Michal Sojka [Tue, 1 May 2012 21:10:47 +0000 (23:10 +0200)]
emacs: Do not pass stderr of notmuch reply to JSON parser

Sometimes, notmuch reply outputs something to stderr, for example:
"Failed to verify signed part: Cannot verify multipart/signed part:
unsupported signature protocol". When this happens, replying in emacs
fails, because emacs cannot parse the error message as JSON.

This patch causes emacs to ignore stderr when reading reply from
notmuch.

8 years agoemacs: Let the user choose where to compose new mails
Thomas Jost [Fri, 4 May 2012 10:37:56 +0000 (12:37 +0200)]
emacs: Let the user choose where to compose new mails

Introduce a new defcustom notmuch-mua-compose-in that allows users to
specify where new mails are composed, either in the current window or
in a new window or frame.

Signed-off-by: Jameson Rollins <jrollins@finestructure.net>
8 years agoemacs: Correctly quote non-text/plain parts in reply
Adam Wolfe Gordon [Sat, 5 May 2012 19:30:37 +0000 (13:30 -0600)]
emacs: Correctly quote non-text/plain parts in reply

Quote non-text parts nicely by displaying them with mm-display-part
before calling message-cite-original to quote them. HTML-only emails
can now be quoted correctly. We re-use some code from notmuch-show
(notmuch-show-mm-display-part-inline), which has been moved to
notmuch-lib.el.

Mark the test for this feature as not broken.

8 years agotest: Replying to an HTML-only message in emacs
Adam Wolfe Gordon [Sat, 5 May 2012 19:24:28 +0000 (13:24 -0600)]
test: Replying to an HTML-only message in emacs

With the latest reply infrastructure, we should be able to nicely
quote HTML-only emails. But currently emacs quotes the raw HTML
instead of parsing it first. This commit adds a test for this case.

This test currently marked as broken.

8 years agodebian: add notmuch_query_set_omit_excluded to symbols file.
David Bremner [Sat, 5 May 2012 13:53:12 +0000 (10:53 -0300)]
debian: add notmuch_query_set_omit_excluded to symbols file.

This symbol is apparently part of the exclude code that was disabled
for 0.12.

8 years agodebian: update packaging for new soname libnotmuch.so.3
David Bremner [Tue, 4 Oct 2011 17:01:21 +0000 (14:01 -0300)]
debian: update packaging for new soname libnotmuch.so.3

we need
   - a new changelog stanza, because the symbols files need a new version
   - s/libnotmuch2/libnotmuch3/ everywhere
   - update symbols file, s/.so.1/.so.2/, and bump minimum versions on changed
     symbols (although the latter is just documentation)

8 years agodebian: start changelog stanza for 0.13~rc1-1
David Bremner [Sat, 5 May 2012 13:27:27 +0000 (10:27 -0300)]
debian: start changelog stanza for 0.13~rc1-1

This is mainly so that the soname bump in the debian symbols file
makes sense.

8 years agolib: Bump SO version from 2.0.0 to 3.0.0
Austin Clements [Sat, 28 Apr 2012 22:25:36 +0000 (18:25 -0400)]
lib: Bump SO version from 2.0.0 to 3.0.0

We've changed the APIs of notmuch_database_open,
notmuch_database_create, and notmuch_database_close.

Amended by db: also bump string in bindings/python/notmuch/globals.py

8 years agoNews for changes to notmuch_database_{open,create}
Austin Clements [Mon, 30 Apr 2012 16:25:38 +0000 (12:25 -0400)]
News for changes to notmuch_database_{open,create}

8 years agoruby: Update Ruby bindings for new notmuch_database_{open, create} signatures
Austin Clements [Mon, 30 Apr 2012 16:25:37 +0000 (12:25 -0400)]
ruby: Update Ruby bindings for new notmuch_database_{open, create} signatures

8 years agopython: Update Python bindings for new notmuch_database_{open, create} signatures
Austin Clements [Mon, 30 Apr 2012 16:25:36 +0000 (12:25 -0400)]
python: Update Python bindings for new notmuch_database_{open, create} signatures

8 years agogo: Update Go bindings for new notmuch_database_{open, create} signatures
Austin Clements [Mon, 30 Apr 2012 16:25:35 +0000 (12:25 -0400)]
go: Update Go bindings for new notmuch_database_{open, create} signatures

This requires changing the return types of NewDatabase and
OpenDatabase to follow the standard Go convention for returning
errors.

8 years agolib/cli: Make notmuch_database_create return a status code
Austin Clements [Mon, 30 Apr 2012 16:25:34 +0000 (12:25 -0400)]
lib/cli: Make notmuch_database_create return a status code

This is the notmuch_database_create equivalent of the previous change.

In this case, there were places where errors were not being propagated
correctly in notmuch_database_create or in calls to it.  These have
been fixed, using the new status value.

8 years agolib/cli: Make notmuch_database_open return a status code
Austin Clements [Mon, 30 Apr 2012 16:25:33 +0000 (12:25 -0400)]
lib/cli: Make notmuch_database_open return a status code

It has been a long-standing issue that notmuch_database_open doesn't
return any indication of why it failed.  This patch changes its
prototype to return a notmuch_status_t and set an out-argument to the
database itself, like other functions that return both a status and an
object.

In the interest of atomicity, this also updates every use in the CLI
so that notmuch still compiles.  Since this patch does not update the
bindings, the Python bindings test fails.

8 years agoNEWS: Insert markdown formatting commands
Tomi Ollila [Thu, 26 Apr 2012 19:52:31 +0000 (22:52 +0300)]
NEWS: Insert markdown formatting commands

To make updating the notmuchmail.org wiki 'news' section more
straightforward the content of the NEWS file has now been brought
to almost the same as the *.mdwn files in the wiki page.

The changes are basically insertion of mdwn formatting "commands".

More effort has been put into formatting the newer release entries
(0.12, 0.11 & 0.10) than older. Commit to format 0.13 entries will
be made available separately.

8 years agoNEWS: spacing changes
Tomi Ollila [Thu, 26 Apr 2012 19:52:30 +0000 (22:52 +0300)]
NEWS: spacing changes

With these whitespace changes the spacing looks generally
the same throughout the whole file.

8 years agoNEWS: untabified and added file local variables block
Tomi Ollila [Thu, 26 Apr 2012 19:52:29 +0000 (22:52 +0300)]
NEWS: untabified and added file local variables block

Changed all tabs to 8 spaces (M-x untabify over region of the
whole file).

Now this looks uniformly on all viewers (using fixed-width font)
and the observed difference between this "source" file and markdown
generated html output on browser window is smaller. In markdown to
html conversions tab and 8 spaces indents differently.

Also the "Local variables:" block added to the end of this file
attempts to ensure tabs are always expanded; whether the used editor
is Emacs or Vi.

8 years agogo: Update to the current notmuch_database_find_message API
Austin Clements [Sat, 28 Apr 2012 21:45:18 +0000 (17:45 -0400)]
go: Update to the current notmuch_database_find_message API

The signature of notmuch_database_find_message was changed in 02a30767
to report errors and the Go bindings were never updated.  This brings
the Go bindings in sync with that change and at least makes them
compile with Go r60.3, the last release before Go 1.

8 years agopython: remove a note stating wrong things about the memory management
Justus Winter [Mon, 30 Apr 2012 17:51:16 +0000 (19:51 +0200)]
python: remove a note stating wrong things about the memory management

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: document the Database.close function
Justus Winter [Mon, 30 Apr 2012 17:48:45 +0000 (19:48 +0200)]
python: document the Database.close function

Put a prominent warning into the docstring of Database.close, make the
function show up in the sphinx doc and refer to the warning in the
paragraph mentioning the context manager protocol.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: deprecate code formatting messages as text and json
Justus Winter [Mon, 30 Apr 2012 16:48:29 +0000 (18:48 +0200)]
python: deprecate code formatting messages as text and json

This code adds functionality at the python level that is unlikely to
be useful for anyone. Furthermore the python bindings strive to be a
thin wrapper around libnotmuch, so this code will be removed in
notmuch 0.14.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: cleanup the __nonzero__ implementations
Justus Winter [Mon, 30 Apr 2012 17:12:36 +0000 (19:12 +0200)]
python: cleanup the __nonzero__ implementations

Cleanup the code, reword the docstring and use the same implementation
in the Threads, Tags and Messages classes.

__nonzero__ implements truth value testing. If __nonzero__ is not
implemented, the python runtime would fall back to `len(..) > 0` thus
exhausting the iterator.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: fix NULL pointer tests
Justus Winter [Mon, 30 Apr 2012 16:52:35 +0000 (18:52 +0200)]
python: fix NULL pointer tests

Fix the NULL pointer tests in the destructors of all classes and
Database.create.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: update the docstrings of Filenames.{__len__,__unicode}
Justus Winter [Mon, 30 Apr 2012 16:43:02 +0000 (18:43 +0200)]
python: update the docstrings of Filenames.{__len__,__unicode}

Formerly the documentation was overly verbose. Reword the comment and
use the same for both functions.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: update the docstring of class Filenames
Justus Winter [Mon, 30 Apr 2012 16:39:06 +0000 (18:39 +0200)]
python: update the docstring of class Filenames

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: fix the documentation
Justus Winter [Mon, 30 Apr 2012 16:32:32 +0000 (18:32 +0200)]
python: fix the documentation

Remove the reference to Filenames.as_generator in the sphinx
documentation.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: fix Message.get_filenames
Justus Winter [Mon, 30 Apr 2012 16:27:15 +0000 (18:27 +0200)]
python: fix Message.get_filenames

Do not to use the removed function Filenames.as_iterator.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove the deprecated function Filenames.as_generator
Justus Winter [Mon, 30 Apr 2012 16:13:31 +0000 (18:13 +0200)]
python: remove the deprecated function Filenames.as_generator

Remove the function Filenames.as_generator that has been marked as
deprecated in 0.12.

The class Filenames implements the iterator protocol so you can
directly iterate over such objects instead.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agoemacs: eliminate search-tag-thread in favor of just search-tag
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:54 +0000 (11:52 -0700)]
emacs: eliminate search-tag-thread in favor of just search-tag

notmuch-search-tag-thread is now completely redundant with
notmuch-search-tag so we eliminate it to simplify the interface.

8 years agoemacs: modify show tag functions to use new notmuch-tag interface
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:53 +0000 (11:52 -0700)]
emacs: modify show tag functions to use new notmuch-tag interface

The main change here is to modify argument parsing so as to not force
tag-changes to be a list, and to let notmuch-tag handle prompting the
user when required.  doc strings are also updated and cleaned up.

8 years agoemacs: modify search tag functions to use new notmuch-tag interface
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:52 +0000 (11:52 -0700)]
emacs: modify search tag functions to use new notmuch-tag interface

The main change here is to modify argument parsing so as to not force
tag-changes to be a list, and to let notmuch-tag handle prompting the
user when required.  doc strings are also updated and cleaned up.

8 years agoemacs: allow notmuch-tag to accept string inputs and prompt for tags
Jameson Graef Rollins [Sat, 14 Apr 2012 20:49:07 +0000 (13:49 -0700)]
emacs: allow notmuch-tag to accept string inputs and prompt for tags

notmuch-tag is extended to accept various formats of the tag changes.
In particular, user prompting for tag changes is now incorporated
here, so it is common for modes.

The tag binary and the notmuch-{before,after}-tag-hooks are only
called if tag changes is non-nil.

In all cases tag-changes is returned as a list.

8 years agoemacs: create notmuch-tag.el, and move appropriate functions from notmuch.el
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:50 +0000 (11:52 -0700)]
emacs: create notmuch-tag.el, and move appropriate functions from notmuch.el

Tagging functions are used in notmuch.el, notmuch-show.el, and
notmuch-message.el.  There are enough common functions for tagging
that it makes sense to put them all in their own library.

No code is modified, just moved around.

8 years agoemacs: fix archive thread/message function documentation.
Jameson Graef Rollins [Tue, 17 Jan 2012 18:43:16 +0000 (10:43 -0800)]
emacs: fix archive thread/message function documentation.

This removes an inaccuracy in the thread archiving function, and adds
a clarification to the message archiving function.

8 years agoemacs: Don't move to the next thread unless the cursor is at the end of the buffer.
David Edmondson [Tue, 31 Jan 2012 08:01:54 +0000 (08:01 +0000)]
emacs: Don't move to the next thread unless the cursor is at the end of the buffer.

When using the spacebar to scroll through a thread, hitting 'space'
when the bottom of the last message is visible should take the cursor
to the end of the buffer rather than immediately archiving the thread
and moving to the next thread.