[PATCH v2 02/20] tag: make tag operation parser public
Peter Wang
novalazy at gmail.com
Sat Nov 24 17:16:28 PST 2012
Make the tag operation parser accessible outside notmuch-tag.c
so it can be reused by the upcoming insert command.
---
notmuch-client.h | 9 +++++++++
notmuch-tag.c | 17 ++++++-----------
2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/notmuch-client.h b/notmuch-client.h
index ae9344b..a7c3df2 100644
--- a/notmuch-client.h
+++ b/notmuch-client.h
@@ -65,6 +65,11 @@ typedef GMimeCipherContext notmuch_crypto_context_t;
#define STRINGIFY(s) STRINGIFY_(s)
#define STRINGIFY_(s) #s
+typedef struct {
+ const char *tag;
+ notmuch_bool_t remove;
+} notmuch_tag_operation_t;
+
typedef struct mime_node mime_node_t;
struct sprinter;
struct notmuch_show_params;
@@ -159,6 +164,10 @@ notmuch_cat_command (void *ctx, int argc, char *argv[]);
int
notmuch_config_command (void *ctx, int argc, char *argv[]);
+int
+parse_tag_operations (int i, int argc, char *argv[],
+ notmuch_tag_operation_t *tag_ops, int *tag_ops_count);
+
const char *
notmuch_time_relative_date (const void *ctx, time_t then);
diff --git a/notmuch-tag.c b/notmuch-tag.c
index 35a76db..831a0e4 100644
--- a/notmuch-tag.c
+++ b/notmuch-tag.c
@@ -54,14 +54,9 @@ _escape_tag (char *buf, const char *tag)
return buf;
}
-typedef struct {
- const char *tag;
- notmuch_bool_t remove;
-} tag_operation_t;
-
static char *
_optimize_tag_query (void *ctx, const char *orig_query_string,
- const tag_operation_t *tag_ops)
+ const notmuch_tag_operation_t *tag_ops)
{
/* This is subtler than it looks. Xapian ignores the '-' operator
* at the beginning both queries and parenthesized groups and,
@@ -116,7 +111,7 @@ _optimize_tag_query (void *ctx, const char *orig_query_string,
* element. */
static int
tag_query (void *ctx, notmuch_database_t *notmuch, const char *query_string,
- tag_operation_t *tag_ops, notmuch_bool_t synchronize_flags)
+ notmuch_tag_operation_t *tag_ops, notmuch_bool_t synchronize_flags)
{
notmuch_query_t *query;
notmuch_messages_t *messages;
@@ -170,9 +165,9 @@ tag_query (void *ctx, notmuch_database_t *notmuch, const char *query_string,
/* Parse +tag and -tag operations between argv[i] and argv[argc-1].
* The array tag_ops must be at least argc - i elements long.
* Returns the index into argv where parsing stopped, or -1 on error. */
-static int
+int
parse_tag_operations (int i, int argc, char *argv[],
- tag_operation_t *tag_ops, int *tag_ops_count)
+ notmuch_tag_operation_t *tag_ops, int *tag_ops_count)
{
*tag_ops_count = 0;
@@ -207,7 +202,7 @@ parse_tag_operations (int i, int argc, char *argv[],
int
notmuch_tag_command (void *ctx, int argc, char *argv[])
{
- tag_operation_t *tag_ops;
+ notmuch_tag_operation_t *tag_ops;
int tag_ops_count;
char *query_string;
notmuch_config_t *config;
@@ -228,7 +223,7 @@ notmuch_tag_command (void *ctx, int argc, char *argv[])
/* Array of tagging operations (add or remove), terminated with an
* empty element. */
- tag_ops = talloc_array (ctx, tag_operation_t, argc + 1);
+ tag_ops = talloc_array (ctx, notmuch_tag_operation_t, argc + 1);
if (tag_ops == NULL) {
fprintf (stderr, "Out of memory.\n");
return 1;
--
1.7.12.1
More information about the notmuch
mailing list