branch, for-each-ref, tag: add option to omit empty lines
If the given format string expands to the empty string, a newline is still printed. This makes using the output linewise more tedious. For example, git update-ref --stdin does not accept empty lines. Add options to "git branch", "git for-each-ref", and "git tag" to not print these empty lines. The default behavior remains the same. Signed-off-by: Øystein Walle <oystwa@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
73876f4861
commit
aabfdc9514
@ -19,7 +19,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
|
||||
int i;
|
||||
struct ref_sorting *sorting;
|
||||
struct string_list sorting_options = STRING_LIST_INIT_DUP;
|
||||
int maxcount = 0, icase = 0;
|
||||
int maxcount = 0, icase = 0, omit_empty = 0;
|
||||
struct ref_array array;
|
||||
struct ref_filter filter;
|
||||
struct ref_format format = REF_FORMAT_INIT;
|
||||
@ -35,6 +35,8 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
|
||||
N_("quote placeholders suitably for python"), QUOTE_PYTHON),
|
||||
OPT_BIT(0 , "tcl", &format.quote_style,
|
||||
N_("quote placeholders suitably for Tcl"), QUOTE_TCL),
|
||||
OPT_BOOL(0, "omit-empty", &omit_empty,
|
||||
N_("do not output a newline after empty formatted refs")),
|
||||
|
||||
OPT_GROUP(""),
|
||||
OPT_INTEGER( 0 , "count", &maxcount, N_("show only <n> matched refs")),
|
||||
@ -88,7 +90,8 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
|
||||
if (format_ref_array_item(array.items[i], &format, &output, &err))
|
||||
die("%s", err.buf);
|
||||
fwrite(output.buf, 1, output.len, stdout);
|
||||
putchar('\n');
|
||||
if (output.len || !omit_empty)
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
strbuf_release(&err);
|
||||
|
Reference in New Issue
Block a user