Introduce a parsing function for each atom in valid_atom. Using this
we can define special parsing functions for each of the atoms. Since
we have a third field in valid_atom structure, we now fill out missing
cmp_type values.

Signed-off-by: Karthik Nayak <[email protected]>
---
 ref-filter.c | 59 ++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/ref-filter.c b/ref-filter.c
index e205dd2..fbbda17 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -19,42 +19,43 @@ typedef enum { FIELD_STR, FIELD_ULONG, FIELD_TIME } 
cmp_type;
 static struct {
        const char *name;
        cmp_type cmp_type;
+       void (*parser)(struct used_atom *atom);
 } valid_atom[] = {
-       { "refname" },
-       { "objecttype" },
+       { "refname", FIELD_STR },
+       { "objecttype", FIELD_STR },
        { "objectsize", FIELD_ULONG },
-       { "objectname" },
-       { "tree" },
-       { "parent" },
+       { "objectname", FIELD_STR },
+       { "tree", FIELD_STR },
+       { "parent", FIELD_STR },
        { "numparent", FIELD_ULONG },
-       { "object" },
-       { "type" },
-       { "tag" },
-       { "author" },
-       { "authorname" },
-       { "authoremail" },
+       { "object", FIELD_STR },
+       { "type", FIELD_STR },
+       { "tag", FIELD_STR },
+       { "author", FIELD_STR },
+       { "authorname", FIELD_STR },
+       { "authoremail", FIELD_STR },
        { "authordate", FIELD_TIME },
-       { "committer" },
-       { "committername" },
-       { "committeremail" },
+       { "committer", FIELD_STR },
+       { "committername", FIELD_STR },
+       { "committeremail", FIELD_STR },
        { "committerdate", FIELD_TIME },
-       { "tagger" },
-       { "taggername" },
-       { "taggeremail" },
+       { "tagger", FIELD_STR },
+       { "taggername", FIELD_STR },
+       { "taggeremail", FIELD_STR },
        { "taggerdate", FIELD_TIME },
-       { "creator" },
+       { "creator", FIELD_STR },
        { "creatordate", FIELD_TIME },
-       { "subject" },
-       { "body" },
-       { "contents" },
-       { "upstream" },
-       { "push" },
-       { "symref" },
-       { "flag" },
-       { "HEAD" },
-       { "color" },
-       { "align" },
-       { "end" },
+       { "subject", FIELD_STR },
+       { "body", FIELD_STR },
+       { "contents", FIELD_STR },
+       { "upstream", FIELD_STR },
+       { "push", FIELD_STR },
+       { "symref", FIELD_STR },
+       { "flag", FIELD_STR },
+       { "HEAD", FIELD_STR },
+       { "color", FIELD_STR },
+       { "align", FIELD_STR },
+       { "end", FIELD_STR },
 };
 
 #define REF_FORMATTING_STATE_INIT  { 0, NULL }
-- 
2.6.2

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to