summaryrefslogtreecommitdiffstats
path: root/tag-util.c
AgeCommit message (Collapse)Author
2020-08-09Fix typosJonas Bernoulli
2017-10-09cli: convert notmuch_bool_t to stdboolJani Nikula
C99 stdbool turned 18 this year. There really is no reason to use our own, except in the library interface for backward compatibility. Convert the cli and test binaries to stdbool.
2017-06-25remove ineffective assignmentsPiotr Trojanek
Detected by cppcheck.
2017-06-25fix leaks due to missing invocations of va_endPiotr Trojanek
As the Linux man page states: "Each invocation of va_start() must be matched by a corresponding invocation of va_end() in the same function." Detected by cppcheck.
2017-06-25minor whitespace cleanupsPiotr Trojanek
2014-03-06cli: add missing \n in error messageJani Nikula
The error messages returned by illegal_tag() don't contain newlines.
2014-03-06cli: export function for illegal tag checkingJani Nikula
This lets us check for forbidden tags consistently across the cli. No functional changes.
2013-06-29tag-util: do not reset list in parse_tag_command_linePeter Wang
The 'insert' command will be better served if parse_tag_command_line modifies a pre-populated list (of new.tags) instead of clobbering the list outright. The sole existing caller, notmuch_tag_command, is unaffected by this change.
2013-06-29tag-util: move out 'tag' command-line checkPeter Wang
Move an error condition specific to the 'tag' command out of parse_tag_command_line so that parse_tag_command_line can be used for the forthcoming 'insert' command.
2013-03-30cli: make caller check tag count in parse_tag_command_lineJani Nikula
2013-01-07notmuch-tag.c: convert to use tag-utilDavid Bremner
Command line parsing is factored out into a function parse_tag_command_line in tag-util.c. There is some duplicated code eliminated in tag_query, and a bunch of translation from using the bare tag_op structs to using that tag-utils API.
2013-01-06tag-util: factor out rules for illegal tags, use in parse_tag_lineDavid Bremner
This will allow us to be consistent between batch tagging and command line tagging as far as what is an illegal tag.
2013-01-06dump/restore: Use Xapian queries for batch-tag formatAustin Clements
This switches the new batch-tag format away from using a home-grown hex-encoding scheme for message IDs in the dump to simply using Xapian queries with Xapian quoting syntax. This has a variety of advantages beyond presenting a cleaner and more consistent interface. Foremost is that it will dramatically simplify the quoting for batch tagging, which shares the same input format. While the hex-encoding is no better or worse for the simple ID queries used by dump/restore, it becomes onerous for general-purpose queries used in batch tagging. It also better handles strange cases like "id:foo and bar", since this is no longer syntactically valid.
2012-12-26parse_tag_line: use enum for return value.David Bremner
This is essentially cosmetic, since success=0 is promised by the comments in tag-utils.h.
2012-12-22tag-utils: use the tag_opt_list_t as talloc context, if possible.David Bremner
The memory usage discipline of tag_op_list_t is never to free the internal array of tag operations before freeing the whole list, so it makes sense to take advantage of hierarchical de-allocation by talloc. By not relying on the context passed into tag_parse_line, we can allow tag_op_list_t structures to live longer than that context.
2012-12-09tag-util: optimization of tag applicationDavid Bremner
The idea is not to bother with restore operations if they don't change the set of tags. This is actually a relatively common case. In order to avoid fancy datastructures, this method is quadratic in the number of tags; at least on my mail database this doesn't seem to be a big problem.
2012-12-09tag-util.[ch]: New files for common tagging routinesDavid Bremner
These are meant to be shared between notmuch-tag and notmuch-restore. The bulk of the routines implement a "tag operation list" abstract data type act as a structured representation of a set of tag operations (typically coming from a single tag command or line of input).