[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: |
Antonio Diaz Diaz |
Subject: |
Re: [Zutils-bug] Version 1.0-rc3 of zutils released |
Date: |
Mon, 29 Oct 2012 17:28:20 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.11) Gecko/20050905 |
Hello Dagobert. Thanks for the feedback.
Dagobert Michelsen wrote:
I just did a test on Solaris 9 Sparc with Sun Studio 12 and got the following
issues:
1. requires inttypes.h instead of stdint.h and requires extra include signal.h
There are due the old OS and probably not worth fixing:
I think so. And in the case of signal.h I think it is a bug in the OS
because zutils already includes csignal.
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), 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().
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,
Antonio.