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

Reply via email to