freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: entropy AT freetds.org
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] CS_INT size bug
- Date: Sun, 03 Sep 2006 20:22:40 -0400
jklowden AT schemamania.org wrote:
On Sun, Sep 03, 2006 at 04:42:12PM -0400, entropy AT freetds.org wrote:
Norbert Sendetzky wrote:
I'm using a standard 32bit x86 machine.The problem is that your code is making assumptions about what type a CS_INT is. If it were reasonable for your code to do that, then there would be no such thing as a CS_INT, and instead it would just be "int" or "long".
The problem I'm facing are lots of warnings when compiling the sybase backend of my library (OpenDBX, http://www.linuxnetworks.de/opendbx/) against FreeTDS instead of the Sybase ctlib.
In Sybase' ctlib, CS_INT is defined as "long" and as "int" in FreeTDS which is problematic when using printf() functions. This is because of the different expectations gcc/printf have when handling "%d" and "%ld" modifiers.
The most portable thing your code can do in this case is explicitly cast to a type, then use the printf(3) format for that type.
That's good advice from a C perspective. The application shouldn't assume anything about opaque types.From the library's perspective, though, maybe we're making a mistake? Wedo a bunch of things in the header files -- e.g. use #define instead of enum
-- just because that's how Sybase did it 20 years ago. It wouldn't be wrong to change it.
Not sure what you mean. In my copy of FreeTDS, CS_INT is a typedef. I don't see how an enum would be helpful.
[550]entropy@zippy:~/freetds/include $ grep CS_INT cstypes.h | head -1
typedef tds_sysdep_int32_type CS_INT;
Even though I don't think it's relevant here, I'm opposed to the idea of sweeping changes where we would convert CPP macros to enums. I don't think the religious benefits outweigh the practical lossage, such as breaking existing code using #ifdef on those macros.
--
Cheers,
entropy
-
[freetds] CS_INT size bug,
Norbert Sendetzky, 09/02/2006
- Re: [freetds] CS_INT size bug, jklowden, 09/02/2006
- <Possible follow-up(s)>
-
Re: [freetds] CS_INT size bug,
Norbert Sendetzky, 09/03/2006
-
Re: [freetds] CS_INT size bug,
entropy, 09/03/2006
-
Re: [freetds] CS_INT size bug,
jklowden, 09/03/2006
- Re: [freetds] CS_INT size bug, entropy, 09/03/2006
-
Re: [freetds] CS_INT size bug,
jklowden, 09/03/2006
-
Re: [freetds] CS_INT size bug,
entropy, 09/03/2006
- Re: [freetds] CS_INT size bug, michael . peppler, 09/04/2006
-
Re: [freetds] CS_INT size bug,
Norbert Sendetzky, 09/05/2006
- Re: [freetds] CS_INT size bug, entropy, 09/05/2006
-
Re: [freetds] CS_INT size bug,
Lowden, James K, 09/05/2006
- Re: [freetds] CS_INT size bug, entropy, 09/06/2006
-
Re: [freetds] CS_INT size bug,
Norbert Sendetzky, 09/06/2006
- Re: [freetds] CS_INT size bug, entropy, 09/06/2006
- Re: [freetds] CS_INT size bug, Norbert Sendetzky, 09/07/2006
Archive powered by MHonArc 2.6.24.