Non portable code

Brian Bruns camber at ais.org
Wed Oct 2 10:26:20 EDT 2002


Hopefully the non-portable code is limited to certain freetds specific 
functions. That is, instead of calling non-portable constructs directly we 
generally make a wrapper function that calls them for us, that way porting 
is limited to ifdef's in the wrapper functions and keeps the mainline code 
clean looking.

We should perhaps combined vstrbuild.c and threadsafe.c into a port.c or 
something similar to make this policy explicit?

As far as diffs go, please post them to the patches section on the 
sourceforge site, unified diff format is preferred.

Cheers,

Brian

On Wed, 2 Oct 2002, Jonas Benjaminsson wrote:

> Hi all
> 
> I'm porting FreeTDS to Windows and it's going well.
> 
> (Brian or James: How should I commit the changes
> I make, by sending you the diffs or by accessing
> the CVS directly?)
> 
> But...
> 
> When I find code like the one below I shiver.
> 
> Ok, it's an easy aproach but will never compile
> on a non Unix system. And what about the speed?
> 
> Well, just wanted to share my thoughts.
> 
> 
> /Jonas Benjaminsson
> 
> 
> 
> 
> The code was found in asprintf.c
> 
>  FILE *fp;
>   int len;
>   char *buf;
> 
>   *ret = NULL;
>   if ((fp = fopen("/dev/null", "w")) == NULL)
>     return -1;
>   len = vfprintf(fp, fmt, ap);
>   if (fclose(fp) != 0)
>     return -1;
>   if (len < 0)
>     return len;
>   if ((buf = malloc(len + 1)) == NULL)
>     return -1;
>   vsprintf(buf, fmt, ap);
>   *ret = buf;
>   return len;
> 
> 
> 
> 
> 
> 
> ---
> You are currently subscribed to freetds as: [camber at ais.org]
> To unsubscribe, forward this message to $subst('Email.Unsub')
> 




More information about the FreeTDS mailing list