[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: [PATCH] diff: return 1 when skipping directories with -r,
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2011-01-26 0:09:36
Message-ID: 201101260109.36392.vda.linux () googlemail ! com
[Download RAW message or body]
On Tuesday 25 January 2011 17:24, Roman Borisov wrote:
> On 01/25/2011 07:03 PM, ext Alexander Shishkin wrote:
> > Diff in diffutils will return 1 in case -r option is specified without
> > -N something exists only in one of the directories.
> >
> > Signed-off-by: Alexander Shishkin<virtuoso@slind.org>
> > ---
> > editors/diff.c | 9 ++++++---
> > 1 files changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/editors/diff.c b/editors/diff.c
> > index cc7ba47..ca4a4ea 100644
> > --- a/editors/diff.c
> > +++ b/editors/diff.c
> > @@ -794,7 +794,9 @@ static int FAST_FUNC skip_dir(const char *filename,
> > free(othername);
> > if (r != 0 || !S_ISDIR(osb.st_mode)) {
> > /* other dir doesn't have similarly named
> > - * directory, don't recurse */
> > + * directory, don't recurse; return 1 upon
> > + * exit, just like diffutils' diff */
> > + exit_status |= 1;
> > return SKIP;
> > }
> > }
> > @@ -846,9 +848,10 @@ static void diffdir(char *p[2], const char *s_start)
> > break;
> > pos = !dp[0] ? 1 : (!dp[1] ? -1 : strcmp(dp[0], dp[1]));
> > k = pos> 0;
> > - if (pos&& !(option_mask32& FLAG(N)))
> > + if (pos&& !(option_mask32& FLAG(N))) {
> > printf("Only in %s: %s\n", p[k], dp[k]);
> > - else {
> > + exit_status |= 1;
> > + } else {
> > char *fullpath[2], *path[2]; /* if -N */
> >
> > for (i = 0; i< 2; i++) {
>
> thanks,
> tried the patch;
> the issue was gone: bb->diff returns the same result as diff-utils
Applied, thanks!
--
vda
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic