for-each-ref, quote: convert *_quote_print -> *_quote_buf

The print_value() function in for-each-ref.c prints values to stdout
immediately using {sq|perl|python|tcl}_quote_print().  Change these
lower-level quote functions to instead leave their results in strbuf
so that we can later add post-processing to the results of them.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy
2013-07-30 14:01:25 +05:30
committed by Junio C Hamano
parent 8f6a3e5d71
commit 10d0167fef
3 changed files with 34 additions and 29 deletions

View File

@ -867,24 +867,29 @@ static void sort_refs(struct ref_sort *sort, struct refinfo **refs, int num_refs
static void print_value(struct refinfo *ref, int atom, int quote_style)
{
struct atom_value *v;
struct strbuf sb = STRBUF_INIT;
get_value(ref, atom, &v);
switch (quote_style) {
case QUOTE_NONE:
fputs(v->s, stdout);
break;
case QUOTE_SHELL:
sq_quote_print(stdout, v->s);
sq_quote_buf(&sb, v->s);
break;
case QUOTE_PERL:
perl_quote_print(stdout, v->s);
perl_quote_buf(&sb, v->s);
break;
case QUOTE_PYTHON:
python_quote_print(stdout, v->s);
python_quote_buf(&sb, v->s);
break;
case QUOTE_TCL:
tcl_quote_print(stdout, v->s);
tcl_quote_buf(&sb, v->s);
break;
}
if (quote_style != QUOTE_NONE) {
fputs(sb.buf, stdout);
strbuf_release(&sb);
}
}
static int hex1(char ch)