join: new options: --check-order and --nocheck-order.
authorJames Youngman <jay@gnu.org>
Tue, 19 Feb 2008 13:13:00 +0000 (14:13 +0100)
committerJim Meyering <meyering@redhat.com>
Tue, 19 Feb 2008 14:17:39 +0000 (15:17 +0100)
commita1e715698a038af7ff341011a2aeecf6729c8de9
tree7786e67b64636ee6cca2a2ca720dcc9f1ef14fbf
parent4242d4f5c4f32374b684882a74e1b773ad01b1d6
join: new options: --check-order and --nocheck-order.

* src/join.c: Support --check-order and --nocheck-order.
New variables check_input_order, seen_unpairable and
issued_disorder_warning[]. For --check-order, verify that the
input files are in sorted order.  For the default case, check the
order only if there are unpairable lines.
(join): Perform ordering checks after reaching EOF on either
input.
(usage): Mention --check-order and --nocheck-order.
(dupline): Save a copy of the previously-read input line so that
we can detect disorder on the input.
(get_line): Temporarily save a copy of the previous line (by
calling dupline) and check relative ordering (by calling
checkorder) before returning the newly-read line.
(getseq, join): Tell get_line which file we are reading from.
(advance_seq): New function, factoring out some of the code
commonly surrounding calls to getseq.
(checkorder): New function.  Verifies that a pair of consecutive
input lines are in sorted order.
* doc/coreutils.texi (join invocation): Document the new options
--check-order and --nocheck-order.
* tests/join/Test.pm (tv): Added tests for --check-order and
--nocheck-order.
* NEWS: Mention this new feature.
NEWS
doc/coreutils.texi
src/join.c
tests/join/Test.pm