diff: fix "diff dir1 dir2/". Closes bug 2203

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Matheus Izvekov 2010-07-09 19:40:00 +02:00 committed by Denys Vlasenko
parent 1883cb1746
commit 61f5f7823c
2 changed files with 33 additions and 4 deletions

View File

@ -760,9 +760,11 @@ static int FAST_FUNC add_to_dirlist(const char *filename,
void *userdata, int depth UNUSED_PARAM)
{
struct dlist *const l = userdata;
const char *file = filename + l->len;
l->dl = xrealloc_vector(l->dl, 6, l->e);
/* + 1 skips "/" after dirname */
l->dl[l->e] = xstrdup(filename + l->len + 1);
while(*file == '/')
file++;
l->dl[l->e] = xstrdup(file);
l->e++;
return TRUE;
}

View File

@ -4,7 +4,7 @@
. ./testing.sh
# testing "test name" "options" "expected result" "file input" "stdin"
# testing "test name" "commands" "expected result" "file input" "stdin"
# diff outputs date/time in the header, which should not be analysed
# NB: sed has tab character in s command!
@ -100,9 +100,11 @@ testing "diff always takes context from old file" \
"abc\na c\ndef\n" \
"a c\n"
# testing "test name" "options" "expected result" "file input" "stdin"
# testing "test name" "commands" "expected result" "file input" "stdin"
# clean up
rm -rf diff1 diff2
mkdir diff1 diff2 diff2/subdir
echo qwe >diff1/-
echo asd >diff2/subdir/-
@ -187,4 +189,29 @@ SKIP=
# clean up
rm -rf diff1 diff2
# NOT using directory structure from prev test...
mkdir diff1 diff2
echo qwe >diff1/-
echo rty >diff2/-
optional FEATURE_DIFF_DIR
testing "diff diff1 diff2/" \
"diff -ur diff1 diff2/ | $TRIM_TAB; diff -ur .///diff1 diff2//// | $TRIM_TAB" \
"\
--- diff1/-
+++ diff2/-
@@ -1 +1 @@
-qwe
+rty
--- .///diff1/-
+++ diff2////-
@@ -1 +1 @@
-qwe
+rty
" \
"" ""
SKIP=
# clean up
rm -rf diff1 diff2
exit $FAILCOUNT