unsigned long lazy_flags;
/* Message document modified since last sync */
- notmuch_bool_t modified;
+ bool modified;
/* last view of database the struct is synced with */
unsigned long last_view;
struct maildir_flag_tag {
char flag;
const char *tag;
- notmuch_bool_t inverse;
+ bool inverse;
};
/* ASCII ordered table of Maildir flags and associated tags */
static struct maildir_flag_tag flag2tag[] = {
- { 'D', "draft", FALSE},
- { 'F', "flagged", FALSE},
- { 'P', "passed", FALSE},
- { 'R', "replied", FALSE},
- { 'S', "unread", TRUE }
+ { 'D', "draft", false},
+ { 'F', "flagged", false},
+ { 'P', "passed", false},
+ { 'R', "replied", false},
+ { 'S', "unread", true }
};
/* We end up having to call the destructor explicitly because we had
} catch (const Xapian::Error &error) {
_notmuch_database_log(_notmuch_message_database (message), "A Xapian exception occurred creating message: %s\n",
error.get_msg().c_str());
- notmuch->exception_reported = TRUE;
+ notmuch->exception_reported = true;
*status_ret = NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION;
return NULL;
}
} catch (Xapian::Error &error) {
_notmuch_database_log(_notmuch_message_database (message), "A Xapian exception occurred when reading header: %s\n",
error.get_msg().c_str());
- message->notmuch->exception_reported = TRUE;
+ message->notmuch->exception_reported = true;
return NULL;
}
}
try {
message->doc.remove_term ((*i));
- message->modified = TRUE;
+ message->modified = true;
} catch (const Xapian::InvalidArgumentError) {
/* Ignore failure to remove non-existent term. */
}
try {
message->doc.remove_term ((*i));
- message->modified = TRUE;
+ message->modified = true;
} catch (const Xapian::InvalidArgumentError) {
/* Ignore failure to remove non-existent term. */
} catch (const Xapian::Error &error) {
if (!notmuch->exception_reported) {
_notmuch_database_log(_notmuch_message_database (message), "A Xapian exception occurred creating message: %s\n",
error.get_msg().c_str());
- notmuch->exception_reported = TRUE;
+ notmuch->exception_reported = true;
}
return NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION;
}
talloc_free (folder);
- message->modified = TRUE;
+ message->modified = true;
return NOTMUCH_STATUS_SUCCESS;
}
_notmuch_message_clear_data (notmuch_message_t *message)
{
message->doc.set_data ("");
- message->modified = TRUE;
+ message->modified = true;
}
static void
} catch (Xapian::Error &error) {
_notmuch_database_log(_notmuch_message_database (message), "A Xapian exception occurred when reading date: %s\n",
error.get_msg().c_str());
- message->notmuch->exception_reported = TRUE;
+ message->notmuch->exception_reported = true;
return 0;
}
Xapian::sortable_serialise (time_value));
message->doc.add_value (NOTMUCH_VALUE_FROM, from);
message->doc.add_value (NOTMUCH_VALUE_SUBJECT, subject);
- message->modified = TRUE;
+ message->modified = true;
}
/* Upgrade a message to support NOTMUCH_FEATURE_LAST_MOD. The caller
{
/* _notmuch_message_sync will update the last modification
* revision; we just have to ask it to. */
- message->modified = TRUE;
+ message->modified = true;
}
/* Synchronize changes made to message->doc out into the database. */
db = static_cast <Xapian::WritableDatabase *> (message->notmuch->xapian_db);
db->replace_document (message->doc_id, message->doc);
- message->modified = FALSE;
+ message->modified = false;
}
/* Delete a message document from the database, leaving a ghost
notmuch_database_t *notmuch;
notmuch_query_t *query;
unsigned int count = 0;
- notmuch_bool_t is_ghost;
+ bool is_ghost;
mid = notmuch_message_get_message_id (message);
tid = notmuch_message_get_thread_id (message);
return NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG;
message->doc.add_term (term, 0);
- message->modified = TRUE;
+ message->modified = true;
talloc_free (term);
try {
message->doc.remove_term (term);
- message->modified = TRUE;
+ message->modified = true;
} catch (const Xapian::InvalidArgumentError) {
/* We'll let the philosophers try to wrestle with the
* question of whether failing to remove that which was not
_notmuch_message_has_term (notmuch_message_t *message,
const char *prefix_name,
const char *value,
- notmuch_bool_t *result)
+ bool *result)
{
char *term;
- notmuch_bool_t out = FALSE;
+ bool out = false;
notmuch_private_status_t status = NOTMUCH_PRIVATE_STATUS_SUCCESS;
if (value == NULL)
i.skip_to (term);
if (i != message->doc.termlist_end () &&
!strcmp ((*i).c_str (), term))
- out = TRUE;
+ out = true;
} catch (Xapian::Error &error) {
status = NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION;
}
}
static void
-_ensure_maildir_flags (notmuch_message_t *message, notmuch_bool_t force)
+_ensure_maildir_flags (notmuch_message_t *message, bool force)
{
const char *flags;
notmuch_filenames_t *filenames;
notmuch_bool_t
notmuch_message_has_maildir_flag (notmuch_message_t *message, char flag)
{
- _ensure_maildir_flags (message, FALSE);
+ _ensure_maildir_flags (message, false);
return message->maildir_flags && (strchr (message->maildir_flags, flag) != NULL);
}
notmuch_status_t status;
unsigned i;
- _ensure_maildir_flags (message, TRUE);
+ _ensure_maildir_flags (message, true);
/* If none of the filenames have any maildir info field (not even
* an empty info with no flags set) then there's no information to
* go on, so do nothing. */
char *filename_new, *dir;
char flag_map[128];
int flags_in_map = 0;
- notmuch_bool_t flags_changed = FALSE;
+ bool flags_changed = false;
unsigned int i;
char *s;
if (flag_map[flag] == 0) {
flag_map[flag] = 1;
flags_in_map++;
- flags_changed = TRUE;
+ flags_changed = true;
}
}
if (flag_map[flag]) {
flag_map[flag] = 0;
flags_in_map--;
- flags_changed = TRUE;
+ flags_changed = true;
}
}
return message->property_map;
}
-notmuch_bool_t
+bool
_notmuch_message_frozen (notmuch_message_t *message)
{
return message->frozen;
notmuch_status_t
notmuch_message_reindex (notmuch_message_t *message,
- notmuch_indexopts_t unused (*indexopts))
+ notmuch_indexopts_t *indexopts)
{
notmuch_database_t *notmuch = NULL;
notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS;
goto DONE;
}
+ ret = notmuch_message_remove_all_properties_with_prefix (message, "index.");
+ if (ret)
+ goto DONE; /* XXX TODO: distinguish from other error returns above? */
+ if (indexopts && notmuch_indexopts_get_decrypt_policy (indexopts) == NOTMUCH_DECRYPT_FALSE) {
+ ret = notmuch_message_remove_all_properties (message, "session-key");
+ if (ret)
+ goto DONE;
+ }
+
/* re-add the filenames with the associated indexopts */
for (; notmuch_filenames_valid (orig_filenames);
notmuch_filenames_move_to_next (orig_filenames)) {
if (found == 0)
_notmuch_message_set_header_values (message, date, from, subject);
- ret = _notmuch_message_index_file (message, message_file);
+ ret = _notmuch_message_index_file (message, indexopts, message_file);
if (ret == NOTMUCH_STATUS_FILE_ERROR)
continue;