From ab402c29f9bbb7b6b55482e848bcb320b9eb70b9 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 4 May 2007 09:57:10 +0200 Subject: tr -c: don't abort when translating with S2 larger than complement of S1 * src/tr.c (main): Remove invalid assertion triggered by e.g., tr -c a '[b*256]'. There's nothing wrong with having Set2 larger than Set1. Reported by Guntram Blohm. * tests/tr/Test.pm (no-abort-1): Test for the above. * NEWS: Mention this bug fix. * THANKS: Add Guntram Blohm. --- ChangeLog | 10 ++++++++++ NEWS | 3 +++ THANKS | 1 + src/tr.c | 3 +-- tests/tr/Makefile.am | 4 ++-- tests/tr/Test.pm | 4 +++- 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index e6a1b4f4d..5efd94b2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-05-04 Jim Meyering + + tr -c: don't abort when translating with S2 larger than complement of S1 + * src/tr.c (main): Remove invalid assertion triggered by e.g., + tr -c a '[b*256]'. There's nothing wrong with having Set2 larger + than Set1. Reported by Guntram Blohm. + * tests/tr/Test.pm (no-abort-1): Test for the above. + * NEWS: Mention this bug fix. + * THANKS: Add Guntram Blohm. + 2007-05-03 Jim Meyering Avoid test failure when run with a permissive umask. diff --git a/NEWS b/NEWS index 0542cd987..e254a172b 100644 --- a/NEWS +++ b/NEWS @@ -23,6 +23,9 @@ GNU coreutils NEWS -*- outline -*- split --line-bytes=N (-C N) no longer creates an empty file [this bug is present at least as far back as textutils-1.22 (Jan, 1997)] + tr -c no longer aborts when translating with Set2 larger than the + complement of Set1. + * Noteworthy changes in release 6.9 (2007-03-22) [stable] diff --git a/THANKS b/THANKS index 533ea9461..4ffd1a840 100644 --- a/THANKS +++ b/THANKS @@ -188,6 +188,7 @@ Greg Troxel gdt@bbn.com Greg Wooledge gawooledge@sherwin.com Gregory Leblanc gleblanc@cu-portland.edu Guido Leenders guido.leenders@invantive.com +Guntram Blohm Extern.Guntram.Blohm@AUDI.DE H. J. Lu hjl@valinux.com Hans Ginzel hans@matfyz.cz Hans Lermen lermen@fgan.de diff --git a/src/tr.c b/src/tr.c index d4453f4da..22287e2dc 100644 --- a/src/tr.c +++ b/src/tr.c @@ -1,5 +1,5 @@ /* tr -- a filter to translate characters - Copyright (C) 91, 1995-2006 Free Software Foundation, Inc. + Copyright (C) 91, 1995-2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1816,7 +1816,6 @@ main (int argc, char **argv) xlate[i] = ch; } } - assert (get_next (s2, NULL) == -1 || truncate_set1); } else { diff --git a/tests/tr/Makefile.am b/tests/tr/Makefile.am index 1d9605aa2..c9f4cf8f5 100644 --- a/tests/tr/Makefile.am +++ b/tests/tr/Makefile.am @@ -33,7 +33,7 @@ ross-1b.I ross-1b.X ross-2.I ross-2.X ross-3.I ross-3.X ross-4.I ross-4.X \ ross-5.I ross-5.X ross-6.I ross-6.X empty-eq.I empty-eq.X empty-cc.I \ empty-cc.X repeat-bs-9.I repeat-bs-9.X repeat-0.I repeat-0.X repeat-zeros.I \ repeat-zeros.X repeat-compl.I repeat-compl.X repeat-xC.I repeat-xC.X \ -fowler-1.I fowler-1.X +fowler-1.I fowler-1.X no-abort-1.I no-abort-1.X run_gen = 1.O 1.E 2.O 2.E 3.O 3.E 4.O 4.E 5.O 5.E 6.O 6.E 7.O 7.E 8.O 8.E 9.O \ 9.E a.O a.E b.O b.E c.O c.E d.O d.E e.O e.E f.O f.E g.O g.E h.O h.E i.O i.E \ j.O j.E k.O k.E l.O l.E m.O m.E n.O n.E o.O o.E p.O p.E q.O q.E r.O r.E s.O \ @@ -46,7 +46,7 @@ ross-1b.O ross-1b.E ross-2.O ross-2.E ross-3.O ross-3.E ross-4.O ross-4.E \ ross-5.O ross-5.E ross-6.O ross-6.E empty-eq.O empty-eq.E empty-cc.O \ empty-cc.E repeat-bs-9.O repeat-bs-9.E repeat-0.O repeat-0.E repeat-zeros.O \ repeat-zeros.E repeat-compl.O repeat-compl.E repeat-xC.O repeat-xC.E \ -fowler-1.O fowler-1.E +fowler-1.O fowler-1.E no-abort-1.O no-abort-1.E ##test-files-end EXTRA_DIST = Test.pm $x-tests $(explicit) $(maint_gen) diff --git a/tests/tr/Test.pm b/tests/tr/Test.pm index 3475740e0..625b47b98 100755 --- a/tests/tr/Test.pm +++ b/tests/tr/Test.pm @@ -1,6 +1,6 @@ # Test "tr". -# Copyright (C) 1996, 1997, 2000, 2002, 2004, 2005, 2006 Free Software +# Copyright (C) 1996, 1997, 2000, 2002, 2004-2007 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -135,6 +135,8 @@ my @tv = ( # From Glenn Fowler. ['fowler-1', q|ah -H|, 'aha', '-H-', 0], +# Prior to coreutils-6.10, this would provoke a failed assertion. +['no-abort-1', '-c ' . q|a '[b*256]'|, 'abc', 'abb', 0], ); sub test_vector -- cgit v1.2.3-54-g00ecf