Home | History | Annotate | only in /src/usr.bin/cmp
History log of /src/usr.bin/cmp
RevisionDateAuthorComments
 1.4 09-Jan-1997  tls RCS ID police
 1.3 08-Sep-1995  tls Sync with 4.4lite2
 1.2 31-Jul-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 04-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.13 03-Jul-2017  wiz Remove workaround for ancient HTML generation code.
 1.12 14-Dec-2016  abhinav Add a HISTORY section
Move information about exit status to EXIT STATUS section
Add more xrefs

ok wiz@
 1.11 30-Oct-2016  christos fix usage (thanks wiz)
 1.10 30-Oct-2016  christos add a flag to avoid mmap...
 1.9 07-Aug-2003  agc branches: 1.9.80;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.8 08-Feb-2002  ross Generate <>& symbolically. I'm avoiding .../dist/... directories for now.
 1.7 01-Dec-2001  wiz Whitespace cleanup.
 1.6 18-Oct-1997  lukem WARNSify, fix .Nm usage
 1.5 09-Jan-1997  tls RCS ID police
 1.4 08-Sep-1995  tls Sync with 4.4lite2
 1.3 21-Sep-1993  jtc Document the fact that cmp now conforms to POSIX.2.
 1.2 01-Aug-1993  mycroft Add RCS indentifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 04-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.9.80.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.9.80.1 04-Nov-2016  pgoyette Sync with HEAD
 1.21 20-Mar-2021  cheusov cmp.c: use C99 strtoll(3) instead of legacy strtoq(3)
 1.20 30-Oct-2016  christos fix usage (thanks wiz)
 1.19 30-Oct-2016  christos add a flag to avoid mmap...
 1.18 29-Aug-2011  joerg branches: 1.18.24;
Use __dead
 1.17 11-Apr-2009  lukem Fix WARNS=4 issues (many -Wcast-qual, one -Wsign-compare on amd64)
 1.16 21-Jul-2008  lukem branches: 1.16.6;
Remove the \n and tabs from the __COPYRIGHT() strings.
Tweak to use a consistent format.
 1.15 19-Jan-2006  garbled branches: 1.15.22;
Apply patch from PR bin/23836 cmp did not correctly parse skip arguments
given in hex or octal, as the manpage states it can.
 1.14 06-Feb-2005  dsl Taking (out) the __P
 1.13 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.12 12-Jan-1998  mikel make usage string match manpage
 1.11 18-Oct-1997  lukem getopt returns -1 not EOF
 1.10 18-Oct-1997  lukem WARNSify, fix .Nm usage
 1.9 09-Jan-1997  tls RCS ID police
 1.8 01-Feb-1996  mrg don't warn about missing files with -s. POSIX doesn't define a specific
action, and, most other implimentations use this (sane) method. (from jtc).
 1.7 08-Sep-1995  tls Sync with 4.4lite2
 1.6 25-Mar-1994  mycroft Fix bug in handling short reads.
 1.5 02-Dec-1993  mycroft As suggested by Xavier Leroy <xavier@Theory.Stanford.EDU>, make sure we don't
flag a short read on the 2nd file as an EOF when it isn't. This implementation
differs in that at most one read is done per file per comparison, so that an
early mismatch may avoid hanging on input or continuing some expensive process
if reading from a pipe.
 1.4 23-Nov-1993  jtc Get rid of otoi(), use strtoul() instead. Not only gets rid of a function,
but allows hex offsets as well.
Misc other minor tweaks.
 1.3 21-Sep-1993  jtc Changed to conform to POSIX.2:
EOF message printed to stderr.
Removed bogositys wrt. getopt() processing (special casing `-' is unnecessary).
Updated usage message to document fact that -s and -l options are mutually
exclusive.
 1.2 01-Aug-1993  mycroft Add RCS identifiers.
 1.1 21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2 04-Sep-1995  tls imported from 44lite2
 1.1.1.1 21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.15.22.1 18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.16.6.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.18.24.1 04-Nov-2016  pgoyette Sync with HEAD
 1.9 29-Aug-2011  joerg Use __dead
 1.8 11-Apr-2009  lukem Fix WARNS=4 issues (many -Wcast-qual, one -Wsign-compare on amd64)
 1.7 21-Aug-2007  christos branches: 1.7.16;
provide more detailed messages with -l. From Anon Ymous
 1.6 03-Jun-2006  christos If one file is shorter than the other, print the byte and line offsets if
available. From our anonymous contributor.
 1.5 06-Feb-2005  dsl branches: 1.5.6;
Taking (out) the __P
 1.4 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.3 09-Jan-1997  tls RCS ID police
 1.2 08-Sep-1995  tls Sync with 4.4lite2
 1.1 04-Sep-1995  tls branches: 1.1.1;
Initial revision
 1.1.1.1 04-Sep-1995  tls imported from 44lite2
 1.5.6.1 19-Jun-2006  chap Sync with head.
 1.7.16.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.12 11-Apr-2009  lukem Fix WARNS=4 issues (many -Wcast-qual, one -Wsign-compare on amd64)
 1.11 22-Aug-2007  christos branches: 1.11.16;
change error printing to signed for consistency. From Anon Ymous
 1.10 21-Aug-2007  christos provide more detailed messages with -l. From Anon Ymous
 1.9 03-Jun-2006  christos If one file is shorter than the other, print the byte and line offsets if
available. From our anonymous contributor.
 1.8 06-Feb-2005  dsl branches: 1.8.6;
Taking (out) the __P
 1.7 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.6 04-Jan-2001  lukem use %ll_ instead of the less standard %q_
 1.5 19-Oct-1997  mrg fix compile warnings on the alpha.
 1.4 18-Oct-1997  lukem WARNSify, fix .Nm usage
 1.3 09-Jan-1997  tls RCS ID police
 1.2 08-Sep-1995  tls Sync with 4.4lite2
 1.1 04-Sep-1995  tls branches: 1.1.1;
Initial revision
 1.1.1.1 04-Sep-1995  tls imported from 44lite2
 1.8.6.1 19-Jun-2006  chap Sync with head.
 1.11.16.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.26 12-Jan-2025  simonb Make cmp -s and cmp -l much faster by comparing blocks and skipping any
line number calculations not needed. Approx 3-4x faster for two multi-GB
in-cache files on my Zen 3.

Restores the spirit of a NetII optimisation lost with 4.4lite2 import
in 1995.
 1.25 09-Jan-2021  christos branches: 1.25.8;
PR/55916: William Ahern: cmp -s + regular files + skipping is broken
Move test after length is adjusted
 1.24 20-Nov-2013  kleink Explicitly include <stdint.h> for uintmax_t; from Eitan Adler.
 1.23 28-Nov-2011  wiz branches: 1.23.6;
Remove unused header. From Henning Petersen in PR 45658.
 1.22 18-Apr-2009  lukem branches: 1.22.6;
Compare size_t vs off_t by casting both to uintmax_t
 1.21 11-Apr-2009  lukem Fix WARNS=4 issues (many -Wcast-qual, one -Wsign-compare on amd64)
 1.20 03-Jun-2006  christos branches: 1.20.28;
off-by-one (thanks to our anonymous contributor)
 1.19 03-Jun-2006  christos If one file is shorter than the other, print the byte and line offsets if
available. From our anonymous contributor.
 1.18 11-Apr-2005  enami branches: 1.18.2;
Don't put a space before function call operator.
 1.17 11-Apr-2005  enami byte offset and line count shouldn't be initialized inside the loop.
 1.16 11-Apr-2005  enami Fix indent and wrap long lines.
 1.15 07-Mar-2005  dsl Initialise dfound outside loop so that 0 sized files compare correctly
and to that 'cmp -l' will exit with error is the last block matches.
Pointed out in a private mail bt someone who wishes to remain anonymous.
 1.14 06-Feb-2005  dsl mmap normal files in 1MB chunks.
Due to a bug in mmap() the address space isn't counted against ulimit
until the page is faulted in - so mmapping a large file suceeds, but
cmp SIGSEGVs when it runs out of address space.
Also I don't believe that the madvise( MAP_SEQUENTIAL) has the desired
effect, and mmaping a large file is probably very bad for the UBC.
 1.13 06-Feb-2005  dsl Taking (out) the __P
 1.12 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.11 04-Jan-2001  lukem use %ll_ instead of the less standard %q_
 1.10 27-Jul-2000  mycroft Use MAP_SHARED.
 1.9 18-Jul-2000  jdolecek Do not mmap() with MAP_PRIVATE - looks like kernel tries to preallocate
some memory in case the mmapped contents would be changed and this fails
for very large files; it's unnecessary anyway, cmp(1) does not change file
contents in any way.
This fixes bin/10625 by Uwe Klaus.

While here, change the code to fallback to classic stdio if mmap fails.
 1.8 20-Mar-2000  kleink branches: 1.8.4;
* Hint MADV_SEQUENTIAL.
* -1 -> MAP_FAILED.
 1.7 25-Aug-1998  ross Add { and } to shut up egcs. Reformat the more questionable code.
 1.6 09-Dec-1997  mrg use MAP_PRIVATE|MAP_FILE rather than "0"
 1.5 19-Oct-1997  mrg fix compile warnings on the alpha.
 1.4 18-Oct-1997  lukem WARNSify, fix .Nm usage
 1.3 09-Jan-1997  tls RCS ID police
 1.2 08-Sep-1995  tls Sync with 4.4lite2
 1.1 04-Sep-1995  tls branches: 1.1.1;
Initial revision
 1.1.1.1 04-Sep-1995  tls imported from 44lite2
 1.8.4.2 24-Aug-2000  enami Pull up rev. 1.10 (approved by thorpej):
date: 2000/07/27 02:58:57; author: mycroft; state: Exp; lines: +4 -4
Use MAP_SHARED.
 1.8.4.1 20-Jul-2000  jdolecek do not mmap() with MAP_PRIVATE - it's not needed for cmp(1) and causes
memory shortage for bigger files.

This fixes bin/10625 by Uwe Klaus.

While here, change the code to fallback to classic stdio in (now unlikely)
case mmap() fails.
 1.18.2.1 19-Jun-2006  chap Sync with head.
 1.20.28.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.22.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.22.6.1 17-Apr-2012  yamt sync with head
 1.23.6.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.25.8.1 02-Aug-2025  perseant Sync with HEAD
 1.14 28-Nov-2011  wiz Remove unused header. From Henning Petersen in PR 45658.
 1.13 11-Apr-2009  lukem branches: 1.13.6;
Fix WARNS=4 issues (many -Wcast-qual, one -Wsign-compare on amd64)
 1.12 21-Aug-2007  christos branches: 1.12.16;
provide more detailed messages with -l. From Anon Ymous
 1.11 03-Jun-2006  christos If one file is shorter than the other, print the byte and line offsets if
available. From our anonymous contributor.
 1.10 09-Apr-2006  christos branches: 1.10.2;
Coverity CID 1624: Plug memory leak.
 1.9 06-Feb-2005  dsl Taking (out) the __P
 1.8 07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.
 1.7 04-Jan-2001  lukem use %ll_ instead of the less standard %q_
 1.6 25-Aug-1998  ross Add { and } to shut up egcs. Reformat the more questionable code.
 1.5 19-Oct-1997  mrg fix compile warnings on the alpha.
 1.4 18-Oct-1997  lukem WARNSify, fix .Nm usage
 1.3 09-Jan-1997  tls RCS ID police
 1.2 08-Sep-1995  tls Sync with 4.4lite2
 1.1 04-Sep-1995  tls branches: 1.1.1;
Initial revision
 1.1.1.1 04-Sep-1995  tls imported from 44lite2
 1.10.2.1 19-Jun-2006  chap Sync with head.
 1.12.16.1 13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.13.6.1 17-Apr-2012  yamt sync with head

RSS XML Feed