[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Zutils-bug] Version 1.0-rc3 of zutils released
From: |
Dagobert Michelsen |
Subject: |
Re: [Zutils-bug] Version 1.0-rc3 of zutils released |
Date: |
Mon, 29 Oct 2012 17:29:37 +0100 |
Hi Antonio,
Am 29.10.2012 um 17:28 schrieb Antonio Diaz Diaz <address@hidden>:
>> 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