mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
lib: Move message ID compression to _notmuch_message_create_for_message_id
Previously, this was performed by notmuch_database_add_message. This happens to be the only caller currently (which is why this was safe), but we're about to introduce more callers, and it makes more sense to put responsibility for ID compression in the lower-level function rather than requiring each caller to handle it.
This commit is contained in:
parent
1c3b8fba22
commit
54ec8a0fd8
3 changed files with 11 additions and 12 deletions
|
@ -390,8 +390,8 @@ find_document_for_doc_id (notmuch_database_t *notmuch, unsigned doc_id)
|
|||
*
|
||||
* notmuch-sha1-<sha1_sum_of_message_id>
|
||||
*/
|
||||
static char *
|
||||
_message_id_compressed (void *ctx, const char *message_id)
|
||||
char *
|
||||
_notmuch_message_id_compressed (void *ctx, const char *message_id)
|
||||
{
|
||||
char *sha1, *compressed;
|
||||
|
||||
|
@ -415,7 +415,7 @@ notmuch_database_find_message (notmuch_database_t *notmuch,
|
|||
return NOTMUCH_STATUS_NULL_POINTER;
|
||||
|
||||
if (strlen (message_id) > NOTMUCH_MESSAGE_ID_MAX)
|
||||
message_id = _message_id_compressed (notmuch, message_id);
|
||||
message_id = _notmuch_message_id_compressed (notmuch, message_id);
|
||||
|
||||
try {
|
||||
status = _notmuch_database_find_unique_doc_id (notmuch, "id",
|
||||
|
@ -1728,7 +1728,7 @@ static char *
|
|||
_get_metadata_thread_id_key (void *ctx, const char *message_id)
|
||||
{
|
||||
if (strlen (message_id) > NOTMUCH_MESSAGE_ID_MAX)
|
||||
message_id = _message_id_compressed (ctx, message_id);
|
||||
message_id = _notmuch_message_id_compressed (ctx, message_id);
|
||||
|
||||
return talloc_asprintf (ctx, NOTMUCH_METADATA_THREAD_ID_PREFIX "%s",
|
||||
message_id);
|
||||
|
@ -2100,14 +2100,6 @@ notmuch_database_add_message (notmuch_database_t *notmuch,
|
|||
* better than no message-id at all. */
|
||||
if (message_id == NULL)
|
||||
message_id = talloc_strdup (message_file, header);
|
||||
|
||||
/* If a message ID is too long, substitute its sha1 instead. */
|
||||
if (message_id && strlen (message_id) > NOTMUCH_MESSAGE_ID_MAX) {
|
||||
char *compressed = _message_id_compressed (message_file,
|
||||
message_id);
|
||||
talloc_free (message_id);
|
||||
message_id = compressed;
|
||||
}
|
||||
}
|
||||
|
||||
if (message_id == NULL ) {
|
||||
|
|
|
@ -226,6 +226,10 @@ _notmuch_message_create_for_message_id (notmuch_database_t *notmuch,
|
|||
else if (*status_ret)
|
||||
return NULL;
|
||||
|
||||
/* If the message ID is too long, substitute its sha1 instead. */
|
||||
if (strlen (message_id) > NOTMUCH_MESSAGE_ID_MAX)
|
||||
message_id = _notmuch_message_id_compressed (message, message_id);
|
||||
|
||||
term = talloc_asprintf (NULL, "%s%s",
|
||||
_find_prefix ("id"), message_id);
|
||||
if (term == NULL) {
|
||||
|
|
|
@ -174,6 +174,9 @@ typedef struct _notmuch_doc_id_set notmuch_doc_id_set_t;
|
|||
const char *
|
||||
_find_prefix (const char *name);
|
||||
|
||||
char *
|
||||
_notmuch_message_id_compressed (void *ctx, const char *message_id);
|
||||
|
||||
notmuch_status_t
|
||||
_notmuch_database_ensure_writable (notmuch_database_t *notmuch);
|
||||
|
||||
|
|
Loading…
Reference in a new issue