Karthik Nayak <[email protected]> writes:
> On Wed, Sep 2, 2015 at 2:37 PM, Matthieu Moy
> <[email protected]> wrote:
>> Karthik Nayak <[email protected]> writes:
>>
>>> --- a/builtin/tag.c
>>> +++ b/builtin/tag.c
>>> @@ -185,6 +185,10 @@ static enum contains_result contains(struct commit
>>> *candidate,
>>> return contains_test(candidate, want);
>>> }
>>>
>>> +/*
>>> + * Currently modified and used in ref-filter as append_lines(), will
>>> + * eventually be removed as we port tag.c to use ref-filter APIs.
>>> + */
>>> static void show_tag_lines(const struct object_id *oid, int lines)
>>
>> I would rather have one "cut and paste" patch followed by a "modify and
>> use" patch for review.
>>
>> As-is, reading the patch doesn't tell me what change you did.
>>
>> That said, I did get this information in the interdiff, so I won't
>> insist on that.
>
> Its only borrowed slightly, so I don't really see the need for this.
> But if you insist, we could do that .
As you prefer.
Perhaps just adapt the comment to say "Currently redundant with
ref-filter'.c's append_line ...", but that's not important.
>>> +static void append_lines(struct strbuf *out, const char *buf, unsigned
>>> long size, int lines)
>>> +{
>>> + int i;
>>> + const char *sp, *eol;
>>> + size_t len;
>>> +
>>> + if ((sp = strstr(buf, "\n\n")) && (sp <= buf + size))
>>> + size += 2;
>>
>> Why is this "size += 2" needed?
>>
>
> We pass size as "sublen + bodylen - siglen" if there exists a "\n\n"
> between sublen and bodylen this is not accounted for. hence we
> add 2 here.
That's too much magic for uncommented code. If this is really needed,
then thes explanations should go in a comment, and I think this logic
should be moved out of append_lines (if you read the comment above, the
function, it is actually lying about what the function does).
I think you can simplify this: you know where the buffer ends (bodypos +
bodylen) and where it starts (subpos), so you know the size: bodypos +
bodylen - subpos.
IOW, I think you can apply this:
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -645,9 +645,6 @@ static void append_lines(struct strbuf *out, const char
*buf, unsigned long size
const char *sp, *eol;
size_t len;
- if ((sp = strstr(buf, "\n\n")) && (sp <= buf + size))
- size += 2;
-
sp = buf;
for (i = 0; i < lines && sp < buf + size; i++) {
@@ -707,7 +704,7 @@ static void grab_sub_body_contents(struct atom_value *val,
int deref, struct obj
struct strbuf s = STRBUF_INIT;
if (strtoul_ui(valp, 10, &v->u.contents.lines))
die(_("positive width expected
contents:lines=%s"), valp);
- append_lines(&s, subpos, sublen + bodylen - siglen,
v->u.contents.lines);
+ append_lines(&s, subpos, bodypos + bodylen - subpos,
v->u.contents.lines);
v->s = strbuf_detach(&s, NULL);
}
}
(half-tested only)
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
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