Hi Antonio, Am 29.10.2012 um 17:28 schrieb Antonio Diaz Diaz <ant_d...@teleline.es>: >> 2. Wrong type on str.insert: should be (char *) NULL instead of 0L >> This leads to ambiguous casts either on 32 bit or with 0UL on 64 bit. This >> can >> easily be corrected with >> >> http://sourceforge.net/apps/trac/gar/browser/csw/mgar/pkg/zutils/trunk/files/0004-Avoid-ambiguity-between-char-and-unsigned-long-on-sp.patch > > I think this is also a bug in the OS. > > The two declarations involved are (from bits/basic_string.h): > basic_string& insert(size_type __pos, size_type __n, _CharT __c); > and > void insert(iterator __p, size_type __n, _CharT __c); > > The code in zcat > str.insert( 0U, 1, '1' ); > > matches the first declaration (0U is a position in str),
for 32 bit this is correct, however on 64 bit the type is 0UL which causes the ambiguity. When I change the type to 0UL it works for 64 bit, but not 32 bit. What is needed is a type that works on both 32 and 64 bit. > while > str.insert( str.begin(), 1, '1' ); > > would match the second. But I do not think the proposed patch > str.insert( (char *) NULL, 1, '1' ); > > should match either. "(char *) NULL" is neither an integer nor a valid > iterator. > > In fact gcc does not accept the patch unless -fpermissive is used. And even > so gcc converts it to a position instead of an iterator or a pointer. If you > need to "fix" it, I recommend you to use str.begin(). I see. >>> Zcat, zcmp, zdiff and zgrep are improved replacements for the shell scripts >>> provided with GNU gzip. Ztest is unique to zutils. >> We have been traditionally naming these with uppercase "Z". I remember you >> were >> talking to the gzip team about adjusting the names to remove the collisions. >> Has this been settled? > > Well, it has been settled here[1], as explained in the INSTALL file: > > "If you are installing zutils along with GNU gzip and want to keep the gzip > scripts, the recommended method is to configure gzip as follows: > > ./configure --program-transform-name='s/^z/gz/' > > This renames, at installation time, the gzip scripts and man pages to > 'gzcat', 'gzcat.1', etc, avoiding the name clashing with the programs and man > pages from zutils." > > [1] http://lists.gnu.org/archive/html/bug-gzip/2012-01/msg00006.html Ok. Best regards -- Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896 _______________________________________________ Zutils-bug mailing list Zutils-bug@nongnu.org https://lists.nongnu.org/mailman/listinfo/zutils-bug