Commit 411e5b31 authored by Natanael Copa's avatar Natanael Copa

main/busybox: updated patch for diff

fixes #381
parent 0cde249f
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=busybox
pkgver=1.16.2
pkgrel=1
pkgrel=2
pkgdesc="Size optimized toolbox of many common UNIX utilities"
url=http://busybox.net
license="GPL-2"
......@@ -70,6 +70,6 @@ static() {
md5sums="2ba980f720a5bdce4ec05423519acc35 busybox-1.16.2.tar.bz2
4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch
f2d22840613fc6e3f359c87af9781caa diff.patch
fcf0691c8d6ece1e0ace086bda354100 diff.patch
20d9beea7d0c0aaca14553a8f98fee12 flock-bb.patch
4bc85af9dd659cbb83c9a819b3481a47 busyboxconfig"
commit d1ed648727f3a0df2d067d869040306ba1e2c52e
Author: Natanael Copa <natanael.copa@gmail.com>
Date: Fri Jul 9 09:38:03 2010 +0000
diff: strip trailing / on dirs
fixes #2203
https://bugs.busybox.net/show_bug.cgi?id=2203
From 61f5f7823c4f217dd9bad2f1df547f81b9338c76 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov <mizvekov@gmail.com>
Date: Fri, 09 Jul 2010 17:40:00 +0000
Subject: 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..e2da626 100644
index 07594e8..8d91b83 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -788,9 +788,15 @@ static void diffdir(char *p[2], const char *s_start)
@@ -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"
memset(&list, 0, sizeof(list));
for (i = 0; i < 2; i++) {
+ char *lc;
/*list[i].s = list[i].e = 0; - memset did it */
/*list[i].dl = NULL; */
-# testing "test name" "options" "expected result" "file input" "stdin"
+# testing "test name" "commands" "expected result" "file input" "stdin"
+ /* trim trailing / in dirs. */
+ lc = last_char_is(p[i], '/');
+ if (lc && lc != p[i])
+ *lc = '\0';
+# 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
+
/* We need to trim root directory prefix.
* Using list.len to specify its length,
* add_to_dirlist will remove it. */
exit $FAILCOUNT
--
cgit v0.8.2.1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment