diff options
Diffstat (limited to 'main/busybox/diff.patch')
-rw-r--r-- | main/busybox/diff.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/main/busybox/diff.patch b/main/busybox/diff.patch new file mode 100644 index 000000000..702c66ca2 --- /dev/null +++ b/main/busybox/diff.patch @@ -0,0 +1,83 @@ +commit 61f5f7823c4f217dd9bad2f1df547f81b9338c76 +Author: Matheus Izvekov <mizvekov@gmail.com> +Date: Fri Jul 9 19:40:00 2010 +0200 + + 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> + +diff --git a/editors/diff.c b/editors/diff.c +index 07594e8..8d91b83 100644 +--- a/editors/diff.c ++++ b/editors/diff.c +@@ -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; + } +diff --git a/testsuite/diff.tests b/testsuite/diff.tests +index 06d5a4f..27a4b33 100755 +--- a/testsuite/diff.tests ++++ b/testsuite/diff.tests +@@ -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 |