[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


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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]