Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 09 Feb 2002 12:52:15 -0500
From:      "Brian F. Feldman" <green@FreeBSD.ORG>
To:        "M. Warner Losh" <imp@village.org>
Cc:        fyre@orbital.wiretapped.net, tim@robbins.dropbear.id.au, freebsd-standards@FreeBSD.ORG
Subject:   Re: diff problem 
Message-ID:  <200202091752.g19HqFP11551@green.bikeshed.org>
In-Reply-To: Message from "M. Warner Losh" <imp@village.org>  of "Fri, 08 Feb 2002 23:23:56 MST." <20020208.232356.28086539.imp@village.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
"M. Warner Losh" <imp@village.org> wrote:
> In message: <20020209140259.A51448@descent.robbins.dropbear.id.au>
>             Tim Robbins <tim@robbins.dropbear.id.au> writes:
> : GNU diff, from diffutils 2.7 did give a warning before it was locally
> : hacked to pieces. This is the relevant change:
> : 
> : diff --show-c-function -ru diffutils-2.7/util.c /usr/src/contrib/diff/util.c
> : --- diffutils-2.7/util.c        Sat Oct  1 15:14:15 1994
> : +++ /usr/src/contrib/diff/util.c        Wed Sep 20 13:24:32 2000
> : @@ -480,7 +485,7 @@ print_1_line (line_flag, line)
> :    output_1_line (text, limit, flag_format, line_flag);
> :  
> :    if ((!line_flag || line_flag[0]) && limit[-1] != '\n')
> : -    fprintf (out, "\n\\ No newline at end of file\n");
> : +    fputc ('\n', out);
> :  }
> :  
> :  /* Output a line from TEXT up to LIMIT.  Without -t, output verbatim.
> : 
> : Commit message for the reverse of this:
> : ==
> : revision 1.3
> : date: 2000/07/24 07:40:02;  author: green;  state: Exp;  lines: +2 -3
> : Get rid of the stupid bug where diff sticks trash in your generated
> : diff output; there being no trailing newline caused it to bitch and
> : moan and ruin diffs.  That's dumb, if I may say so myself.
> : 
> : Yes, this file is coming off the vendor branch.  It hasn't been
> : updated in 6 years.
> : 
> : Approved by:    peter
> : ==
> : 
> : When a file is missing the final newline, GNU diff 2.7 and GNU patch 2.5.4
> : can reconstruct the file correctly.
> : 
> : I have absolutely no idea why we have both version 2.5 and version 2.1 of
> : patch in the tree. 2.5 lives in /usr/src/contrib/patch, 2.1 lives in
> : /usr/src/gnu/usr.bin/patch. Version 2.1 ends up in /usr/bin, version 2.5
> : is not installed anywhere I can find.
> : 
> : IMO patch 2.1 should be installed as 'patch21' or similar, patch 2.5 should
> : be actually installed(!!) and the "stupid bug" patch to GNU diff should be
> : rolled back. I will submit a problem report on this.
> : 
> : The standards don't specify what should be done when the file is missing
> : a trailing newline so this isn't really a standards matter.
> 
> I'd like to revert this change.  The main reason is that gnupatch can
> reconstruct files that have missing stuff at the end, and subversion
> whines that FreeBSD's diff is bogus.

Do I get to whine that subversion's non-standard use of pseudo-diff lines is 
bogus, then?  All told, I'd actually rather our diff would refuse to act 
upon files that have no end-line.  Encourage people to use non-stupid 
editing tools that conform to the way things have been done for decades.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green@FreeBSD.org  <> bfeldman@tislabs.com      \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-standards" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202091752.g19HqFP11551>