X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=tag-util.h;h=bbe54d9990f9bac7e30f9b0d1b679d69ee7c1680;hp=4628f1630ad6263951b8672d5d43a6699281306a;hb=HEAD;hpb=f00c925bd10c024d5b9f88d8903c7a0d14e9cc6a diff --git a/tag-util.h b/tag-util.h index 4628f163..411e8cae 100644 --- a/tag-util.h +++ b/tag-util.h @@ -8,25 +8,25 @@ typedef struct _tag_op_list_t tag_op_list_t; /* Use powers of 2 */ typedef enum { - TAG_FLAG_NONE = 0, + TAG_FLAG_NONE = 0, /* Operations are synced to maildir, if possible. */ - TAG_FLAG_MAILDIR_SYNC = (1 << 0), + TAG_FLAG_MAILDIR_SYNC = (1 << 0), /* Remove all tags from message before applying list. */ - TAG_FLAG_REMOVE_ALL = (1 << 1), + TAG_FLAG_REMOVE_ALL = (1 << 1), /* Don't try to avoid database operations. Useful when we * know that message passed needs these operations. */ - TAG_FLAG_PRE_OPTIMIZED = (1 << 2), + TAG_FLAG_PRE_OPTIMIZED = (1 << 2), /* Accept strange tags that might be user error; * intended for use by notmuch-restore. */ - TAG_FLAG_BE_GENEROUS = (1 << 3) + TAG_FLAG_BE_GENEROUS = (1 << 3) } tag_op_flag_t; @@ -34,16 +34,16 @@ typedef enum { * skipped lines are positive. */ typedef enum { - TAG_PARSE_OUT_OF_MEMORY = -1, + TAG_PARSE_OUT_OF_MEMORY = -1, - /* Line parsed successfuly. */ - TAG_PARSE_SUCCESS = 0, + /* Line parsed successfully. */ + TAG_PARSE_SUCCESS = 0, /* Line has a syntax error */ - TAG_PARSE_INVALID = 1, + TAG_PARSE_INVALID = 1, /* Line was blank or a comment */ - TAG_PARSE_SKIPPED = 2 + TAG_PARSE_SKIPPED = 2 } tag_parse_status_t; @@ -89,6 +89,18 @@ tag_parse_status_t parse_tag_command_line (void *ctx, int argc, char **argv, char **query_str, tag_op_list_t *ops); +/* + * Test tags for some forbidden cases. + * + * Relax the checks if 'remove' is true to allow removal of previously + * added forbidden tags. + * + * return: NULL if OK, + * explanatory message otherwise. + */ +const char * +illegal_tag (const char *tag, bool remove); + /* * Create an empty list of tag operations * @@ -99,19 +111,19 @@ tag_op_list_t * tag_op_list_create (void *ctx); /* - * Add a tag operation (delete iff remove == TRUE) to a list. + * Add a tag operation (delete iff remove == true) to a list. * The list is expanded as necessary. */ int tag_op_list_append (tag_op_list_t *list, const char *tag, - notmuch_bool_t remove); + bool remove); /* * Apply a list of tag operations, in order, to a given message. * - * Flags can be bitwise ORed; see enum above for possibilies. + * Flags can be bitwise ORed; see enum above for possibilities. */ notmuch_status_t @@ -145,7 +157,7 @@ tag_op_list_tag (const tag_op_list_t *list, size_t i); * Is the i'th tag operation a remove? */ -notmuch_bool_t +bool tag_op_list_isremove (const tag_op_list_t *list, size_t i); #endif