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.
This commit is contained in:
Jim Meyering 2007-05-04 09:57:10 +02:00
parent bf8cfacd24
commit ab402c29f9
6 changed files with 20 additions and 5 deletions

View File

@ -1,3 +1,13 @@
2007-05-04 Jim Meyering <jim@meyering.net>
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 <jim@meyering.net>
Avoid test failure when run with a permissive umask.

3
NEWS
View File

@ -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]

1
THANKS
View File

@ -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

View File

@ -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
{

View File

@ -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)

View File

@ -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