aboutsummaryrefslogtreecommitdiff
path: root/tag-util.c
AgeCommit message (Collapse)Author
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).