diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-02-06 14:20:15 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-02-06 14:20:15 -0800 |
commit | b828fef678c21d017f18d2094bfdaac94e5fbf7a (patch) | |
tree | 9aca1a08f3bdcde70d2de9a32ef0360b89b0a053 | |
parent | e62a641de17b172ffc4d3a803085c8afbfbec3d1 (diff) | |
parent | a0cf49c16ae37177dcfcefa1149bf09f84721cf5 (diff) | |
download | git-b828fef678c21d017f18d2094bfdaac94e5fbf7a.tar.gz |
Merge branch 'maint'
* maint:
Fix parsing numeric color values
INSTALL: git-merge no longer uses cpio
-rw-r--r-- | INSTALL | 4 | ||||
-rw-r--r-- | color.c | 2 | ||||
-rwxr-xr-x | t/t4026-color.sh | 69 |
3 files changed, 72 insertions, 3 deletions
@@ -79,8 +79,8 @@ Issues of note: - "perl" and POSIX-compliant shells are needed to use most of the barebone Porcelainish scripts. - - "cpio" is used by git-merge for saving and restoring the index, - and by git-clone when doing a local (possibly hardlinked) clone. + - "cpio" is used by git-clone when doing a local (possibly + hardlinked) clone. - Some platform specific issues are dealt with Makefile rules, but depending on your specific installation, you may not @@ -17,7 +17,7 @@ static int parse_color(const char *name, int len) return i - 1; } i = strtol(name, &end, 10); - if (*name && !*end && i >= -1 && i <= 255) + if (end - name == len && i >= -1 && i <= 255) return i; return -2; } diff --git a/t/t4026-color.sh b/t/t4026-color.sh new file mode 100755 index 0000000000..b61e5169f4 --- /dev/null +++ b/t/t4026-color.sh @@ -0,0 +1,69 @@ +#!/bin/sh +# +# Copyright (c) 2008 Timo Hirvonen +# + +test_description='Test diff/status color escape codes' +. ./test-lib.sh + +color() +{ + git config diff.color.new "$1" && + test "`git config --get-color diff.color.new`" = "$2" +} + +invalid_color() +{ + git config diff.color.new "$1" && + test -z "`git config --get-color diff.color.new 2>/dev/null`" +} + +test_expect_success 'reset' ' + color "reset" "[m" +' + +test_expect_success 'attribute before color name' ' + color "bold red" "[1;31m" +' + +test_expect_success 'color name before attribute' ' + color "red bold" "[1;31m" +' + +test_expect_success 'attr fg bg' ' + color "ul blue red" "[4;34;41m" +' + +test_expect_success 'fg attr bg' ' + color "blue ul red" "[4;34;41m" +' + +test_expect_success 'fg bg attr' ' + color "blue red ul" "[4;34;41m" +' + +test_expect_success '256 colors' ' + color "254 bold 255" "[1;38;5;254;48;5;255m" +' + +test_expect_success 'color too small' ' + invalid_color "-2" +' + +test_expect_success 'color too big' ' + invalid_color "256" +' + +test_expect_success 'extra character after color number' ' + invalid_color "3X" +' + +test_expect_success 'extra character after color name' ' + invalid_color "redX" +' + +test_expect_success 'extra character after attribute' ' + invalid_color "dimX" +' + +test_done |