for-each-ref --format='%(flag)'
This expands to "symref" or "packed" or an empty string, exposing the internal "flag" the for_each_ref() callback functions are called with. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
5cdd628c84
commit
88fb7f27f6
|
@ -71,6 +71,7 @@ static struct {
|
||||||
{ "contents" },
|
{ "contents" },
|
||||||
{ "upstream" },
|
{ "upstream" },
|
||||||
{ "symref" },
|
{ "symref" },
|
||||||
|
{ "flag" },
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -558,6 +559,13 @@ static void grab_values(struct atom_value *val, int deref, struct object *obj, v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline char *copy_advance(char *dst, const char *src)
|
||||||
|
{
|
||||||
|
while (*src)
|
||||||
|
*dst++ = *src++;
|
||||||
|
return dst;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Parse the object referred by ref, and grab needed value.
|
* Parse the object referred by ref, and grab needed value.
|
||||||
*/
|
*/
|
||||||
|
@ -610,6 +618,20 @@ static void populate_value(struct refinfo *ref)
|
||||||
continue;
|
continue;
|
||||||
refname = branch->merge[0]->dst;
|
refname = branch->merge[0]->dst;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(name, "flag")) {
|
||||||
|
char buf[256], *cp = buf;
|
||||||
|
if (ref->flag & REF_ISSYMREF)
|
||||||
|
cp = copy_advance(cp, ",symref");
|
||||||
|
if (ref->flag & REF_ISPACKED)
|
||||||
|
cp = copy_advance(cp, ",packed");
|
||||||
|
if (cp == buf)
|
||||||
|
v->s = "";
|
||||||
|
else {
|
||||||
|
*cp = '\0';
|
||||||
|
v->s = xstrdup(buf + 1);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue