mirror of
https://github.com/dlang/phobos.git
synced 2025-04-26 21:22:20 +03:00
Win64 fixes
This commit is contained in:
parent
2346ef9a68
commit
18f7d60f0d
3 changed files with 49 additions and 17 deletions
|
@ -262,7 +262,7 @@ class OutBuffer
|
|||
auto psize = buffer.length;
|
||||
for (;;)
|
||||
{
|
||||
version(Win32)
|
||||
version(Windows)
|
||||
{
|
||||
count = _vsnprintf(p,psize,f,args);
|
||||
if (count != -1)
|
||||
|
@ -270,7 +270,7 @@ class OutBuffer
|
|||
psize *= 2;
|
||||
p = cast(char *) alloca(psize); // buffer too small, try again with larger size
|
||||
}
|
||||
version(Posix)
|
||||
else version(Posix)
|
||||
{
|
||||
count = vsnprintf(p,psize,f,args);
|
||||
if (count == -1)
|
||||
|
@ -286,6 +286,10 @@ class OutBuffer
|
|||
+/
|
||||
p = cast(char *) alloca(psize); // buffer too small, try again with larger size
|
||||
}
|
||||
else
|
||||
{
|
||||
static assert(0);
|
||||
}
|
||||
}
|
||||
write(cast(ubyte[]) p[0 .. count]);
|
||||
/+
|
||||
|
@ -301,21 +305,29 @@ class OutBuffer
|
|||
* Append output of C's printf() to internal buffer.
|
||||
*/
|
||||
|
||||
version (X86_64)
|
||||
void printf(string format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, __va_argsave);
|
||||
vprintf(format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
else
|
||||
void printf(string format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
ap = cast(va_list)&format;
|
||||
ap += format.sizeof;
|
||||
vprintf(format, ap);
|
||||
version (Win64)
|
||||
{
|
||||
va_list ap;
|
||||
ap = cast(va_list)&format;
|
||||
ap += format.sizeof;
|
||||
vprintf(format, ap);
|
||||
}
|
||||
else version (X86_64)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, __va_argsave);
|
||||
vprintf(format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
else
|
||||
{
|
||||
va_list ap;
|
||||
ap = cast(va_list)&format;
|
||||
ap += format.sizeof;
|
||||
vprintf(format, ap);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue