diff options
-rw-r--r-- | editors/diff.c | 6 | ||||
-rwxr-xr-x | testsuite/diff.tests | 31 |
2 files changed, 33 insertions, 4 deletions
diff --git a/editors/diff.c b/editors/diff.c index 07594e8d8..8d91b83bf 100644 --- a/editors/diff.c +++ b/editors/diff.c | |||
@@ -760,9 +760,11 @@ static int FAST_FUNC add_to_dirlist(const char *filename, | |||
760 | void *userdata, int depth UNUSED_PARAM) | 760 | void *userdata, int depth UNUSED_PARAM) |
761 | { | 761 | { |
762 | struct dlist *const l = userdata; | 762 | struct dlist *const l = userdata; |
763 | const char *file = filename + l->len; | ||
763 | l->dl = xrealloc_vector(l->dl, 6, l->e); | 764 | l->dl = xrealloc_vector(l->dl, 6, l->e); |
764 | /* + 1 skips "/" after dirname */ | 765 | while(*file == '/') |
765 | l->dl[l->e] = xstrdup(filename + l->len + 1); | 766 | file++; |
767 | l->dl[l->e] = xstrdup(file); | ||
766 | l->e++; | 768 | l->e++; |
767 | return TRUE; | 769 | return TRUE; |
768 | } | 770 | } |
diff --git a/testsuite/diff.tests b/testsuite/diff.tests index 06d5a4fd7..27a4b33a7 100755 --- a/testsuite/diff.tests +++ b/testsuite/diff.tests | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | . ./testing.sh | 5 | . ./testing.sh |
6 | 6 | ||
7 | # testing "test name" "options" "expected result" "file input" "stdin" | 7 | # testing "test name" "commands" "expected result" "file input" "stdin" |
8 | 8 | ||
9 | # diff outputs date/time in the header, which should not be analysed | 9 | # diff outputs date/time in the header, which should not be analysed |
10 | # NB: sed has tab character in s command! | 10 | # NB: sed has tab character in s command! |
@@ -100,9 +100,11 @@ testing "diff always takes context from old file" \ | |||
100 | "abc\na c\ndef\n" \ | 100 | "abc\na c\ndef\n" \ |
101 | "a c\n" | 101 | "a c\n" |
102 | 102 | ||
103 | # testing "test name" "options" "expected result" "file input" "stdin" | 103 | # testing "test name" "commands" "expected result" "file input" "stdin" |
104 | 104 | ||
105 | # clean up | ||
105 | rm -rf diff1 diff2 | 106 | rm -rf diff1 diff2 |
107 | |||
106 | mkdir diff1 diff2 diff2/subdir | 108 | mkdir diff1 diff2 diff2/subdir |
107 | echo qwe >diff1/- | 109 | echo qwe >diff1/- |
108 | echo asd >diff2/subdir/- | 110 | echo asd >diff2/subdir/- |
@@ -187,4 +189,29 @@ SKIP= | |||
187 | # clean up | 189 | # clean up |
188 | rm -rf diff1 diff2 | 190 | rm -rf diff1 diff2 |
189 | 191 | ||
192 | # NOT using directory structure from prev test... | ||
193 | mkdir diff1 diff2 | ||
194 | echo qwe >diff1/- | ||
195 | echo rty >diff2/- | ||
196 | optional FEATURE_DIFF_DIR | ||
197 | testing "diff diff1 diff2/" \ | ||
198 | "diff -ur diff1 diff2/ | $TRIM_TAB; diff -ur .///diff1 diff2//// | $TRIM_TAB" \ | ||
199 | "\ | ||
200 | --- diff1/- | ||
201 | +++ diff2/- | ||
202 | @@ -1 +1 @@ | ||
203 | -qwe | ||
204 | +rty | ||
205 | --- .///diff1/- | ||
206 | +++ diff2////- | ||
207 | @@ -1 +1 @@ | ||
208 | -qwe | ||
209 | +rty | ||
210 | " \ | ||
211 | "" "" | ||
212 | SKIP= | ||
213 | |||
214 | # clean up | ||
215 | rm -rf diff1 diff2 | ||
216 | |||
190 | exit $FAILCOUNT | 217 | exit $FAILCOUNT |