From 1b874511b60252a5c71c7a29046afdc99e5391bb Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 23 Nov 2012 23:09:10 -0800 Subject: cut: treat -b2-,3- like -b2-, not like -b3- MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * src/cut.c (set_fields): When two right-open-ended ranges are specified, don't blindly let the latter one take precedence over the former. Instead, use the union of the ranges. * tests/misc/cut.pl: Add tests to exercise this. * NEWS (Bug fixes): Mention it. Reported by Marcel Böhme in http://bugs.gnu.org/12966 Thanks to Berhard Voelker for catching log and NEWS typos. --- src/cut.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/cut.c b/src/cut.c index 2a571483a..b464840d7 100644 --- a/src/cut.c +++ b/src/cut.c @@ -391,8 +391,10 @@ set_fields (const char *fieldstr) In any case, 'initial' contains the start of the range. */ if (!rhs_specified) { - /* 'n-'. From 'initial' to end of line. */ - eol_range_start = initial; + /* 'n-'. From 'initial' to end of line. If we've already + seen an M- range, ignore subsequent N- unless N < M. */ + if (eol_range_start == 0 || initial < eol_range_start) + eol_range_start = initial; field_found = true; } else -- cgit v1.2.3-54-g00ecf