tr -c: don't abort when translating with S2 larger than complement of S1
authorJim Meyering <jim@meyering.net>
Fri, 4 May 2007 07:57:10 +0000 (09:57 +0200)
committerJim Meyering <jim@meyering.net>
Fri, 4 May 2007 08:03:01 +0000 (10:03 +0200)
* 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
NEWS
THANKS
src/tr.c
tests/tr/Makefile.am
tests/tr/Test.pm

index e6a1b4f..5efd94b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index 0542cd9..e254a17 100644 (file)
--- 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 533ea94..4ffd1a8 100644 (file)
--- 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
index d4453f4..22287e2 100644 (file)
--- 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
        {
index 1d9605a..c9f4cf8 100644 (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)
index 3475740..625b47b 100755 (executable)
@@ -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