Re: [PATCH v14 07/13] ref-filter: add support for %(contents:lines=X)
From: Eric Sunshine <hidden>
Date: 2016-06-15 23:06:21
On Sat, Aug 29, 2015 at 10:12 AM, Karthik Nayak [off-list ref] wrote:
quoted hunk ↗ jump to hunk
In 'tag.c' we can print N lines from the annotation of the tag using the '-n<num>' option. Copy code from 'tag.c' to 'ref-filter' and modify it to support appending of N lines from the annotation of tags to the given strbuf. Implement %(contents:lines=X) where X lines of the given object are obtained. Add documentation and test for the same. Signed-off-by: Karthik Nayak <redacted> ---@@ -608,6 +672,15 @@ static void grab_sub_body_contents(struct atom_value *val, int deref, struct obj v->s = xmemdupz(sigpos, siglen); else if (!strcmp(name, "contents")) v->s = xstrdup(subpos); + else if (skip_prefix(name, "contents:lines=", &valp)) { + struct contents *contents = xmalloc(sizeof(struct contents)); + + if (strtoul_ui(valp, 10, &contents->lines)) + die(_("positive width expected align:%s"), valp);
I forgot to mention this when I reviewed the patch earlier[1], but you copied this error message a bit too literally from the %(align:) atom. [1]: http://article.gmane.org/gmane.comp.version-control.git/276807
+ hashcpy(contents->oid.hash, obj->sha1);
+ v->handler = contents_lines_handler;
+ v->contents = contents;
+ }
}
}