Merge branch 'jk/maint-rev-list-nul'
authorJunio C Hamano <gitster@pobox.com>
Wed, 17 Nov 2010 22:59:33 +0000 (14:59 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 17 Nov 2010 22:59:33 +0000 (14:59 -0800)
* jk/maint-rev-list-nul:
rev-list: handle %x00 NUL in user format

1  2 
builtin/rev-list.c
t/test-lib.sh
diff --combined builtin/rev-list.c
index 158ce1111af12db1445d82cfa5728bc19837570d,3b2dca08093bf5eb8fe1a2ffe08036fdd903cedb..ba27d39f977f2807cddb6e18364837b9fd50e970
@@@ -11,9 -11,9 +11,9 @@@
  static const char rev_list_usage[] =
  "git rev-list [OPTION] <commit-id>... [ -- paths... ]\n"
  "  limiting output:\n"
 -"    --max-count=nr\n"
 -"    --max-age=epoch\n"
 -"    --min-age=epoch\n"
 +"    --max-count=<n>\n"
 +"    --max-age=<epoch>\n"
 +"    --min-age=<epoch>\n"
  "    --sparse\n"
  "    --no-merges\n"
  "    --remove-empty\n"
@@@ -33,7 -33,7 +33,7 @@@
  "    --objects | --objects-edge\n"
  "    --unpacked\n"
  "    --header | --pretty\n"
 -"    --abbrev=nr | --no-abbrev\n"
 +"    --abbrev=<n> | --no-abbrev\n"
  "    --abbrev-commit\n"
  "    --left-right\n"
  "  special purpose:\n"
@@@ -147,8 -147,10 +147,10 @@@ static void show_commit(struct commit *
                        }
                } else {
                        if (revs->commit_format != CMIT_FMT_USERFORMAT ||
-                           buf.len)
-                               printf("%s%c", buf.buf, info->hdr_termination);
+                           buf.len) {
+                               fwrite(buf.buf, 1, buf.len, stdout);
+                               putchar(info->hdr_termination);
+                       }
                }
                strbuf_release(&buf);
        } else {
diff --combined t/test-lib.sh
index 2af8f10c837fd8c1543cf17d877ae0684cbc61a4,25f8bf95cdc7624c80ca57affb7eae799e0090c0..bbe79e0fcbd88a1d1c02cd5c51c820def8fdd53f
@@@ -248,6 -248,10 +248,10 @@@ test_decode_color () 
                -e 's/.\[m/<RESET>/g'
  }
  
+ nul_to_q () {
+       perl -pe 'y/\000/Q/'
+ }
  q_to_nul () {
        perl -pe 'y/Q/\000/'
  }
@@@ -970,13 -974,11 +974,13 @@@ case $(uname -s) i
        # no POSIX permissions
        # backslashes in pathspec are converted to '/'
        # exec does not inherit the PID
 +      test_set_prereq MINGW
        ;;
  *)
        test_set_prereq POSIXPERM
        test_set_prereq BSLASHPSPEC
        test_set_prereq EXECKEEPSPID
 +      test_set_prereq NOT_MINGW
        ;;
  esac