History log of /freebsd-current/usr.bin/diff/diff.1
Revision Date Author Comments
# d9a9f23d 27-Mar-2024 Dag-Erling Smørgrav <des@FreeBSD.org>

diff: Integrate libdiff from OpenBSD GoT.

This adds support for two new diff algorithms, Myers diff and Patience
diff.

These algorithms perform a different form of search compared to the
classic Stone algorithm and support escapes when worst case scenarios
are encountered.

Add the -A flag to allow selection of the algorithm, but default to
using the new Myers diff implementation.

The libdiff implementation currently only supports a subset of input and
output options supported by diff. When these options are used, but the
algorithm is not selected, automatically fallback to the classic Stone
algorithm until support for these modes can be added.

Based on work originally done by thj@ with contributions from kevans@.

Sponsored by: Klara, Inc.
Reviewed by: thj
Differential Revision: https://reviews.freebsd.org/D44302


# 6561c0ec 18-Mar-2024 Dag-Erling Smørgrav <des@FreeBSD.org>

diff: Improve history section.

Reviewed by: gbe
Differential Revision: https://reviews.freebsd.org/D44409


# 87740ff2 15-Mar-2024 David E. O'Brien <obrien@FreeBSD.org>

diff(1) add FreeBSD HISTORY


# 312b1076 26-Feb-2024 Dag-Erling Smørgrav <des@FreeBSD.org>

diff: Bump manual page date.

Sponsored by: Klara, Inc.


# 53de23f4 26-Feb-2024 Dag-Erling Smørgrav <des@FreeBSD.org>

diff: Fix --expand-tabs and --side-by-side.

* Overhaul column width and padding calculation.
* Rewrite print_space() so it is now a) correct and b) understandable.
* Rewrite tab expansion in fetch() for the same reason.

This brings us in line with GNU diff for all cases I could think of.

Sponsored by: Klara, Inc.
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D44014


# 4185d1f7 26-Dec-2023 Pin-Yi Kuo <kuokuoyiyi@gapp.nthu.edu.tw>

diff(1): fix a typo

On the manpage of diff(1), "when" is mistyped to "wen".

Event: Advanced UNIX Programming Course (Fall'23) at NTHU.
Signed-off-by: Pin-Yi Kuo <kuokuoyiyi@gapp.nthu.edu.tw>
Reviewed by: imp, zlei
Pull Request: https://github.com/freebsd/freebsd-src/pull/943


# bdcbfde3 23-Nov-2023 Warner Losh <imp@FreeBSD.org>

usr.bin: Remove ancient SCCS tags.

Remove ancient SCCS tags from the tree, automated scripting, with two
minor fixup to keep things compiling. All the common forms in the tree
were removed with a perl script.

Sponsored by: Netflix


# b2c76c41 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line nroff pattern

Remove /^\.\\"\s*\$FreeBSD\$$\n/


# 8cf449db 10-Mar-2022 Tom Jones <thj@FreeBSD.org>

diff: add support for --help and --version

Add support for --help and --version to be compatible with gnu diff.

gnu diff --help writes to stdout, do the same to be compatible

Reviewed by: bapt, pstef, debrup, Pau Amma
Sponsored by: Klara Inc.
Differential Revision: https://reviews.freebsd.org/D34508


# 8f79bd9b 18-Feb-2022 Tom Jones <thj@FreeBSD.org>

diff: Detect Objective-C methods

When searching back for function definitions, consider lines starting
with '+' and '-', this allows us to pick up Objective-C methods as well
as C style function definitions.

Reviewed by: bapt
Sponsored by: Klara Inc.
Differential Revision: https://reviews.freebsd.org/D34202


# e51aabf8 05-Sep-2021 Piotr Pawel Stefaniak <pstef@FreeBSD.org>

diff: implement option -F (--show-function-line)

With unified and context diffs, show the last line that matches the
provided pattern before the context.

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D31714


# f38702e5 04-Sep-2021 Cameron Katri <me@cameronkatri.com>

diff(1): Add --color support

Adds a --color flag to diff(1) that supports the same options as GNU's
diff(1). The colors are customizable with the env var DIFFCOLORS in
a format similar to grep(1)'s GREPCOLORS. An example would be 04;36:41
for additions to be underlined light blue, and deletions have a red
background.

Differential Revision: https://reviews.freebsd.org/D30545


# 204fa3b0 19-Jun-2020 Fernando Apesteguía <fernape@FreeBSD.org>

diff(1): Add EXAMPLES section

Add examples for -r, -u, -N, -x, -q and -I

Approved by: 0mp@
Differential Revision: https://reviews.freebsd.org/D25345


# 8ccef193 01-Jun-2020 Baptiste Daroussin <bapt@FreeBSD.org>

Document long version of -b option

PR: 234195
Submitted by: Fehmi Noyan Isi <fnoyanisi@yahoo.com>
Reported by: Andras Farkas <deepbluemistake@gmail.com>
MFC after: 3 days


# 43fbd654 13-Feb-2020 Kyle Evans <kevans@FreeBSD.org>

diff: fix segfault with --tabsize and no/malformed argument

--tabsize was previously listed as optional_argument, but didn't account for
the optionality of it in the argument handling. This is irrelevant -- the
manpage doesn't indicate that the argument is optional, and indeed there's
no clear interpretation of omitting the argument because there's no other
side effect of --tabsize.

The "malformed" argument part of the header on this message is simply
referring to usage like this:

% diff --tabsize 4 A B

With an optional_argument, the argument must be attached to the parameter
directly (e.g. --tabsize=4), so the argument is effectively NULL with the
above invocation as if no argument had been passed.

PR: 243974
Submitted by: fehmi noyan isi <fnoyanisi yahoo com> (diff.c portion)
MFC after: 3 days


# 469635f6 12-Feb-2020 Mateusz Piotrowski <0mp@FreeBSD.org>

diff.1: Fix style & document -y as extension to POSIX

- Long options must be stylized with the Fl macro as well.

Reviewed by: bapt
Approved by: bcr (mentor)
Differential Revision: https://reviews.freebsd.org/D23642


# 79208b10 06-Feb-2020 Baptiste Daroussin <bapt@FreeBSD.org>

Fix most of the style warnings


# 64793e74 07-Feb-2020 Baptiste Daroussin <bapt@FreeBSD.org>

diff: implement -y (--side-by-side) along with -W and --suppress-common-lines

PR: 219933
Submitted by: fehmi noyan isi <fnoyanisi@yahoo.com>
MFC after: 3 weeks


# e68edb8c 18-Aug-2018 Kyle Evans <kevans@FreeBSD.org>

diff(1): Implement -B/--ignore-blank-lines

As noted by cem in r338035, coccinelle invokes diff(1) with the -B flag.
This was not previously implemented here, so one was forced to create a link
for GNU diff to /usr/local/bin/diff

Implement the -B flag and add some primitive tests for it. It is implemented
in the same fashion that -I is implemented; each chunk's lines are scanned,
and if a non-blank line is encountered then the chunk will be output.
Otherwise, it's skipped.

MFC after: 2 weeks


# 933870f0 20-Apr-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Cross reference pr(1) which diff might call with -l option


# bcf91ad6 20-Apr-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Document all long options


# fddcb7b8 20-Apr-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Implement a basic --changed-group-format

etcupdate(8) requires that option, while GNU diff supports many more variation
of that options, their behaviour beside the simple verion implemented here are
quite inconsistent as such I do not plan to implement those.

The only special keyword supported by this implementation are: %< and %>
%= is not implemented as the documentation of GNU diff says: common lines, but
it actually when tested print the changes from the first file


# a077708d 08-Apr-2017 Baptiste Daroussin <bapt@FreeBSD.org>

add a stub --speed-large-files for compatibility with GNU diff

There is no intention to implement it, but lots of scripts/tools using
diff(1) passes GNU diff option


# 7dacb9e7 22-Mar-2017 Enji Cooper <ngie@FreeBSD.org>

diff(1): document remaining long options

While here, try and tie together some of the short options with
their long option equivalents, where possible.

Sponsored by: Dell EMC Isilon


# 78b83a1e 22-Mar-2017 Enji Cooper <ngie@FreeBSD.org>

diff(1): fix SYNOPSIS section noting non-existent option, --no-ignore-case

`--no-ignore-case` should be `--no-ignore-file-name-case` per code for
compatibility with [g]diff(1).

Sponsored by: Dell EMC Isilon


# 9ba27624 19-Mar-2017 Enji Cooper <ngie@FreeBSD.org>

diff(1): add --strip-trailing-cr to last example in the SYNOPSIS

This syncs the last example in the SYNOPSIS with the other examples.

Reviewed by: bapt
Sponsored by: Dell EMC Isilon
Differential Revision: D10017


# b7ea08a9 15-Mar-2017 Enji Cooper <ngie@FreeBSD.org>

diff(1): sort long options under -D example in SYNOPSYS

Sponsored by: Dell EMC Isilon


# 57f942af 11-Mar-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Fix wrong date in diff(1)

Reported by: rgrimes


# 3bbe3f67 10-Mar-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import diff from OpenBSD and remove GNU diff

Some of the modifications from the previous summer of code has been integrated
Modification for compatibility with GNU diff output has been added

Main difference with OpenBSD:
Implement multiple GNU diff options:
* --ignore-file-name-case
* --no-ignore-file-name-case
* --normal
* --tabsize
* --strip-trailing-cr
Make diff -p compatible with GNU diff
Implement diff -l
Make diff -r compatible with GNU diff

Capsicumize diffing 2 regular files
Add a simple test suite

Approved by: AsiaBSDcon devsummit
Obtained from: OpenBSD, GSoC
Relnotes: yes