#endif
#include <stdio.h>
+#include "compat.h"
+
#include "notmuch.h"
NOTMUCH_BEGIN_DECLS
/* First, copy all the public status values. */
NOTMUCH_PRIVATE_STATUS_SUCCESS = NOTMUCH_STATUS_SUCCESS,
NOTMUCH_PRIVATE_STATUS_OUT_OF_MEMORY = NOTMUCH_STATUS_OUT_OF_MEMORY,
+ NOTMUCH_PRIVATE_STATUS_READONLY_DATABASE = NOTMUCH_STATUS_READONLY_DATABASE,
NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION = NOTMUCH_STATUS_XAPIAN_EXCEPTION,
NOTMUCH_PRIVATE_STATUS_FILE_NOT_EMAIL = NOTMUCH_STATUS_FILE_NOT_EMAIL,
NOTMUCH_PRIVATE_STATUS_NULL_POINTER = NOTMUCH_STATUS_NULL_POINTER,
NOTMUCH_PRIVATE_STATUS_TAG_TOO_LONG = NOTMUCH_STATUS_TAG_TOO_LONG,
+ NOTMUCH_PRIVATE_STATUS_UNBALANCED_FREEZE_THAW = NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW,
/* Then add our own private values. */
- NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG,
+ NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG = NOTMUCH_STATUS_LAST_STATUS,
NOTMUCH_PRIVATE_STATUS_NO_DOCUMENT_FOUND,
NOTMUCH_PRIVATE_STATUS_LAST_STATUS
const char *
_find_prefix (const char *name);
-char *
-_parse_message_id (void *ctx, const char *message_id, const char **next);
+const char *
+_notmuch_database_relative_path (notmuch_database_t *notmuch,
+ const char *path);
+
+notmuch_status_t
+_notmuch_database_split_path (void *ctx,
+ const char *path,
+ const char **directory,
+ const char **basename);
+
+notmuch_status_t
+_notmuch_database_find_directory_id (notmuch_database_t *database,
+ const char *path,
+ unsigned int *directory_id);
/* thread.cc */
notmuch_private_status_t *status);
notmuch_message_t *
-_notmuch_message_create_for_message_id (const void *talloc_owner,
- notmuch_database_t *notmuch,
+_notmuch_message_create_for_message_id (notmuch_database_t *notmuch,
const char *message_id,
notmuch_private_status_t *status);
const char *
-_notmuch_message_get_subject (notmuch_message_t *message);
+_notmuch_message_get_in_reply_to (notmuch_message_t *message);
notmuch_private_status_t
_notmuch_message_add_term (notmuch_message_t *message,
_notmuch_message_set_filename (notmuch_message_t *message,
const char *filename);
-void
-_notmuch_message_add_thread_id (notmuch_message_t *message,
- const char *thread_id);
-
void
_notmuch_message_ensure_thread_id (notmuch_message_t *message);
void
_notmuch_message_sync (notmuch_message_t *message);
+void
+_notmuch_message_close (notmuch_message_t *message);
+
/* index.cc */
notmuch_status_t
notmuch_message_file_t *
_notmuch_message_file_open_ctx (void *ctx, const char *filename);
-/* Close a notmuch message preivously opened with notmuch_message_open. */
+/* Close a notmuch message previously opened with notmuch_message_open. */
void
notmuch_message_file_close (notmuch_message_file_t *message);
notmuch_message_node_t **tail;
} notmuch_message_list_t;
+/* There's a rumor that there's an alternate struct _notmuch_messages
+ * somewhere with some nasty C++ objects in it. We'll try to maintain
+ * ignorance of that here. (See notmuch_mset_messages_t in query.cc)
+ */
+struct _notmuch_messages {
+ notmuch_bool_t is_of_list_type;
+ notmuch_message_node_t *iterator;
+};
+
notmuch_message_list_t *
_notmuch_message_list_create (const void *ctx);
notmuch_messages_t *
_notmuch_messages_create (notmuch_message_list_t *list);
-/* date.c */
+/* query.cc */
-/* Parse an RFC 8222 date string to a time_t value.
- *
- * The tz_offset argument can be used to also obtain the time-zone
- * offset, (but can be NULL if the call is not interested in that).
- *
- * Returns 0 on error.
- */
-time_t
-notmuch_parse_date (const char *str, int *tz_offset);
+notmuch_bool_t
+_notmuch_mset_messages_has_more (notmuch_messages_t *messages);
+
+notmuch_message_t *
+_notmuch_mset_messages_get (notmuch_messages_t *messages);
+
+void
+_notmuch_mset_messages_advance (notmuch_messages_t *messages);
+
+/* message.cc */
+
+void
+_notmuch_message_add_reply (notmuch_message_t *message,
+ notmuch_message_node_t *reply);
/* sha1.c */