From: Marcelo J. <mar...@gm...> - 2007-01-05 13:49:46
|
On 1/5/07, Dark Servant <dar...@gm...> wrote: > nope, content-length on win32 still fucked up > > problem seems to be here: > else if( c == 'h' ) // off_t > { > bignum = ( off_t )va_arg( argp, off_t ); > sprintf( tempbuf, "%lld", bignum ); > printf("got: %s size is %i",tempbuf, strlen(tempbuf)); > if( membuffer_append( buf, tempbuf, strlen( tempbuf ) ) != 0 ) { > goto error_handler; > } > } > > the %lld just produced useless numbers. Giving a 1534 as bignum produces > 302575584100222462 - well ;) > just using %d or %ld gives the correct number, but %lld does not work. Maybe > there is not longlongint on win32? You use the microsoft compiler, right? The problem is that i am not confortable with that compiler, though the windows code support that we have is for it. I would be much more confortable if we started to use mingw. We would be using the same compiler and this kind of problem could be avoided. If someone wants to try this, it would be nice. Now it is my time to go on vacations :) so I will only have time for this in a month. Anyway, we need a windows developer, and it is hard for me to work with windows (I don't have it at home). In the mean time, you could probably do some simple tests like this and post the results here: int v_int = 1; long v_long = 2; off_t v_off_t = 3; ... etc printf("v_int = %d\n", v_int); ... etc I would not like to fill the code with #ifdef WIN32, so either we find a solution that works in both, or (what I preffer) we start using minGW. Regards! Marcelo. |