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
>> easily be corrected with
> 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);
> 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.
> 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
> 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().
>>> 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
>> talking to the gzip team about adjusting the names to remove the collisions.
>> Has this been settled?
> Well, it has been settled here, 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."
>  http://lists.gnu.org/archive/html/bug-gzip/2012-01/msg00006.html
"You don't become great by trying to be great, you become great by wanting to
and then doing it so hard that you become great in the process." - xkcd #896
Zutils-bug mailing list