X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fdatabase.cc;h=2b36a5c9d5d2f892cded55cbda0b44ad665b12ba;hp=4524016b37aecb1d0ffbacfbe72d4b5c8b03b94d;hb=24a25ffba98c1c34d92cefb9e23dd44e3be76126;hpb=146549321044615d9aef2b30cedccda9c49f3f38 diff --git a/lib/database.cc b/lib/database.cc index 4524016b..2b36a5c9 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -107,7 +107,6 @@ prefix_t BOOLEAN_PREFIX_INTERNAL[] = { { "ref", "XREFERENCE" }, { "replyto", "XREPLYTO" }, { "timestamp", "XTIMESTAMP" }, - { "contact", "XCONTACT" } }; prefix_t BOOLEAN_PREFIX_EXTERNAL[] = { @@ -313,8 +312,8 @@ skip_space_and_comments (const char **str) * Returns a newly talloc'ed string belonging to 'ctx'. * * Returns NULL if there is any error parsing the message-id. */ -static char * -parse_message_id (void *ctx, const char *message_id, const char **next) +char * +_parse_message_id (void *ctx, const char *message_id, const char **next) { const char *s, *end; char *result; @@ -384,29 +383,13 @@ parse_references (void *ctx, return; while (*refs) { - ref = parse_message_id (ctx, refs, &refs); + ref = _parse_message_id (ctx, refs, &refs); if (ref) g_hash_table_insert (hash, ref, NULL); } } -char * -notmuch_database_default_path (void) -{ - char *path; - - if (getenv ("NOTMUCH_BASE")) - return strdup (getenv ("NOTMUCH_BASE")); - - if (asprintf (&path, "%s/mail", getenv ("HOME")) == -1) { - fprintf (stderr, "Out of memory.\n"); - return xstrdup(""); - } - - return path; -} - notmuch_database_t * notmuch_database_create (const char *path) { @@ -414,10 +397,11 @@ notmuch_database_create (const char *path) char *notmuch_path = NULL; struct stat st; int err; - char *local_path = NULL; - if (path == NULL) - path = local_path = notmuch_database_default_path (); + if (path == NULL) { + fprintf (stderr, "Error: Cannot create a database for a NULL path.\n"); + goto DONE; + } err = stat (path, &st); if (err) { @@ -447,8 +431,6 @@ notmuch_database_create (const char *path) DONE: if (notmuch_path) talloc_free (notmuch_path); - if (local_path) - free (local_path); return notmuch; } @@ -460,12 +442,8 @@ notmuch_database_open (const char *path) char *notmuch_path = NULL, *xapian_path = NULL; struct stat st; int err; - char *local_path = NULL; unsigned int i; - if (path == NULL) - path = local_path = notmuch_database_default_path (); - if (asprintf (¬much_path, "%s/%s", path, ".notmuch") == -1) { notmuch_path = NULL; fprintf (stderr, "Out of memory\n"); @@ -520,8 +498,6 @@ notmuch_database_open (const char *path) } DONE: - if (local_path) - free (local_path); if (notmuch_path) free (notmuch_path); if (xapian_path) @@ -734,7 +710,7 @@ _notmuch_database_link_message_to_parents (notmuch_database_t *notmuch, in_reply_to = notmuch_message_file_get_header (message_file, "in-reply-to"); parse_references (message, parents, in_reply_to); _notmuch_message_add_term (message, "replyto", - parse_message_id (message, in_reply_to, NULL)); + _parse_message_id (message, in_reply_to, NULL)); keys = g_hash_table_get_keys (parents); for (l = keys; l; l = l->next) { @@ -820,7 +796,7 @@ _notmuch_database_link_message_to_children (notmuch_database_t *notmuch, /* Given a (mostly empty) 'message' and its corresponding * 'message_file' link it to existing threads in the database. * - * We first looke at 'message_file' and its link-relevant headers + * We first look at 'message_file' and its link-relevant headers * (References and In-Reply-To) for message IDs. We also look in the * database for existing message that reference 'message'.p * @@ -910,7 +886,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch, header = notmuch_message_file_get_header (message_file, "message-id"); if (header) { - message_id = parse_message_id (message_file, header, NULL); + message_id = _parse_message_id (message_file, header, NULL); /* So the header value isn't RFC-compliant, but it's * better than no message-id at all. */ if (message_id == NULL) @@ -935,9 +911,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch, * (which may or may not reference an existing document in the * database). */ - /* Use NULL for owner since we want to free this locally. */ - message = _notmuch_message_create_for_message_id (NULL, - notmuch, + message = _notmuch_message_create_for_message_id (notmuch, message_id, &private_status);