3632cfc248
The standard libc regex library on OSX does not support alternation in POSIX Basic Regular Expression mode. This breaks the diff.funcname functionality on OSX. To fix this, we use the GNU regex library which is already present in the compat/ diretory for the MinGW port. However, simply adding compat/ to the COMPAT_CFLAGS variable causes a conflict between the system fnmatch.h and the one present in compat/. To remedy this, move the regex and fnmatch functionality to their own subdirectories in compat/ so they can be included seperately. Signed-off-by: Arjen Laarhoven <arjen@yaph.org> Tested-by: Mike Ralphson <mike@abacus.co.uk> (AIX) Tested-by: Johannes Sixt <johannes.sixt@telecom.at> (MinGW) Signed-off-by: Junio C Hamano <gitster@pobox.com>
67 lines
1.5 KiB
Bash
Executable File
67 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2007 Johannes E. Schindelin
|
|
#
|
|
|
|
test_description='Test custom diff function name patterns'
|
|
|
|
. ./test-lib.sh
|
|
|
|
LF='
|
|
'
|
|
|
|
cat > Beer.java << EOF
|
|
public class Beer
|
|
{
|
|
int special;
|
|
public static void main(String args[])
|
|
{
|
|
String s=" ";
|
|
for(int x = 99; x > 0; x--)
|
|
{
|
|
System.out.print(x + " bottles of beer on the wall "
|
|
+ x + " bottles of beer\n"
|
|
+ "Take one down, pass it around, " + (x - 1)
|
|
+ " bottles of beer on the wall.\n");
|
|
}
|
|
System.out.print("Go to the store, buy some more,\n"
|
|
+ "99 bottles of beer on the wall.\n");
|
|
}
|
|
}
|
|
EOF
|
|
|
|
sed 's/beer\\/beer,\\/' < Beer.java > Beer-correct.java
|
|
|
|
test_expect_success 'default behaviour' '
|
|
git diff --no-index Beer.java Beer-correct.java |
|
|
grep "^@@.*@@ public class Beer"
|
|
'
|
|
|
|
test_expect_success 'preset java pattern' '
|
|
echo "*.java diff=java" >.gitattributes &&
|
|
git diff --no-index Beer.java Beer-correct.java |
|
|
grep "^@@.*@@ public static void main("
|
|
'
|
|
|
|
git config diff.java.funcname '!static
|
|
!String
|
|
[^ ].*s.*'
|
|
|
|
test_expect_success 'custom pattern' '
|
|
git diff --no-index Beer.java Beer-correct.java |
|
|
grep "^@@.*@@ int special;$"
|
|
'
|
|
|
|
test_expect_success 'last regexp must not be negated' '
|
|
git config diff.java.funcname "!static" &&
|
|
test_must_fail git diff --no-index Beer.java Beer-correct.java
|
|
'
|
|
|
|
test_expect_success 'alternation in pattern' '
|
|
git config diff.java.funcname "^[ ]*\\(\\(public\\|static\\).*\\)$"
|
|
git diff --no-index Beer.java Beer-correct.java |
|
|
grep "^@@.*@@ public static void main("
|
|
'
|
|
|
|
test_done
|