ewah: support platforms that require aligned reads
[gitweb.git] / builtin / for-each-ref.c
index afe83b984354913d348bf58de04c4b2bd5d307af..1d4083c2ddef07c6488d36720e6a0c48b04c6585 100644 (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)
@@ -962,7 +967,9 @@ static int opt_parse_sort(const struct option *opt, const char *arg, int unset)
        if (!arg) /* should --no-sort void the list ? */
                return -1;
 
-       *sort_tail = s = xcalloc(1, sizeof(*s));
+       s = xcalloc(1, sizeof(*s));
+       s->next = *sort_tail;
+       *sort_tail = s;
 
        if (*arg == '-') {
                s->reverse = 1;