This is in preparation for a new, public notmuch_message_t.
Eventually, the public notmuch_message_t is going to grow enough
features to need to be file-backed and will likely need everything
that's now in message-file.c. So we may fold these back into one
object/implementation in the future.
%.o: %.c
$(CC) -c $(CFLAGS) $(MYCFLAGS) $< -o $@
-notmuch: notmuch.o database.o date.o message.o xutil.o
+notmuch: notmuch.o database.o date.o message-file.o xutil.o
$(CC) $(MYLDFLAGS) $^ -o $@
Makefile.dep: *.c *.cc
{
Xapian::WritableDatabase *db = notmuch->xapian_db;
Xapian::Document doc;
- notmuch_message_t *message;
+ notmuch_message_file_t *message;
GPtrArray *parents, *thread_ids;
time_t time_value;
unsigned int i;
- message = notmuch_message_open (filename);
+ message = notmuch_message_file_open (filename);
- notmuch_message_restrict_headers (message,
- "date",
- "from",
- "in-reply-to",
- "message-id",
- "references",
- "subject",
- (char *) NULL);
+ notmuch_message_file_restrict_headers (message,
+ "date",
+ "from",
+ "in-reply-to",
+ "message-id",
+ "references",
+ "subject",
+ (char *) NULL);
try {
doc = Xapian::Document ();
parents = g_ptr_array_new ();
- refs = notmuch_message_get_header (message, "references");
+ refs = notmuch_message_file_get_header (message, "references");
parse_references (parents, refs);
- in_reply_to = notmuch_message_get_header (message, "in-reply-to");
+ in_reply_to = notmuch_message_file_get_header (message, "in-reply-to");
parse_references (parents, in_reply_to);
for (i = 0; i < parents->len; i++)
add_term (doc, "ref", (char *) g_ptr_array_index (parents, i));
- header = notmuch_message_get_header (message, "message-id");
+ header = notmuch_message_file_get_header (message, "message-id");
if (header) {
message_id = parse_message_id (header, NULL);
/* So the header value isn't RFC-compliant, but it's
free (message_id);
- date = notmuch_message_get_header (message, "date");
+ date = notmuch_message_file_get_header (message, "date");
time_value = notmuch_parse_date (date, NULL);
doc.add_value (NOTMUCH_VALUE_DATE,
Xapian::sortable_serialise (time_value));
- from = notmuch_message_get_header (message, "from");
- subject = notmuch_message_get_header (message, "subject");
- to = notmuch_message_get_header (message, "to");
+ from = notmuch_message_file_get_header (message, "from");
+ subject = notmuch_message_file_get_header (message, "subject");
+ to = notmuch_message_file_get_header (message, "to");
if (from == NULL &&
subject == NULL &&
to == NULL)
{
- notmuch_message_close (message);
+ notmuch_message_file_close (message);
return NOTMUCH_STATUS_FILE_NOT_EMAIL;
} else {
db->add_document (doc);
return NOTMUCH_STATUS_XAPIAN_EXCEPTION;
}
- notmuch_message_close (message);
+ notmuch_message_file_close (message);
return NOTMUCH_STATUS_SUCCESS;
}
size_t len;
} header_value_closure_t;
-struct _notmuch_message {
+struct _notmuch_message_file {
/* File object */
FILE *file;
return hash;
}
-notmuch_message_t *
-notmuch_message_open (const char *filename)
+notmuch_message_file_t *
+notmuch_message_file_open (const char *filename)
{
- notmuch_message_t *message;
+ notmuch_message_file_t *message;
- message = xcalloc (1, sizeof (notmuch_message_t));
+ message = xcalloc (1, sizeof (notmuch_message_file_t));
message->file = fopen (filename, "r");
if (message->file == NULL)
FAIL:
fprintf (stderr, "Error opening %s: %s\n", filename, strerror (errno));
- notmuch_message_close (message);
+ notmuch_message_file_close (message);
return NULL;
}
void
-notmuch_message_close (notmuch_message_t *message)
+notmuch_message_file_close (notmuch_message_file_t *message)
{
if (message == NULL)
return;
}
void
-notmuch_message_restrict_headersv (notmuch_message_t *message,
- va_list va_headers)
+notmuch_message_file_restrict_headersv (notmuch_message_file_t *message,
+ va_list va_headers)
{
char *header;
if (message->parsing_started ) {
- fprintf (stderr, "Error: notmuch_message_restrict_headers called after parsing has started\n");
+ fprintf (stderr, "Error: notmuch_message_file_restrict_headers called after parsing has started\n");
exit (1);
}
}
void
-notmuch_message_restrict_headers (notmuch_message_t *message, ...)
+notmuch_message_file_restrict_headers (notmuch_message_file_t *message, ...)
{
va_list va_headers;
va_start (va_headers, message);
- notmuch_message_restrict_headersv (message, va_headers);
+ notmuch_message_file_restrict_headersv (message, va_headers);
}
void
}
const char *
-notmuch_message_get_header (notmuch_message_t *message,
- const char *header_desired)
+notmuch_message_file_get_header (notmuch_message_file_t *message,
+ const char *header_desired)
{
int contains;
char *header, *value;
char *
xstrndup (const char *s, size_t n);
-/* message.c */
+/* message-file.c */
/* XXX: I haven't decided yet whether these will actually get exported
* into the public interface in notmuch.h
*/
-typedef struct _notmuch_message notmuch_message_t;
+typedef struct _notmuch_message_file notmuch_message_file_t;
/* Open a file containing a single email message.
*
*
* Returns NULL if any error occurs.
*/
-notmuch_message_t *
-notmuch_message_open (const char *filename);
+notmuch_message_file_t *
+notmuch_message_file_open (const char *filename);
/* Close a notmuch message preivously opened with notmuch_message_open. */
void
-notmuch_message_close (notmuch_message_t *message);
+notmuch_message_file_close (notmuch_message_file_t *message);
/* Restrict 'message' to only save the named headers.
*
* returned even if that header exists in the actual message.
*/
void
-notmuch_message_restrict_headers (notmuch_message_t *message, ...);
+notmuch_message_file_restrict_headers (notmuch_message_file_t *message, ...);
/* Identical to notmuch_message_restrict_headers but accepting a va_list. */
void
-notmuch_message_restrict_headersv (notmuch_message_t *message,
- va_list va_headers);
+notmuch_message_file_restrict_headersv (notmuch_message_file_t *message,
+ va_list va_headers);
/* Get the value of the specified header from the message.
*
* 'header'.
*/
const char *
-notmuch_message_get_header (notmuch_message_t *message,
- const char *header);
+notmuch_message_file_get_header (notmuch_message_file_t *message,
+ const char *header);
/* date.c */