More portability fixes.

This commit is contained in:
Markus F.X.J. Oberhumer
2007-01-14 12:47:38 +01:00
parent 9c59a5d9b6
commit 6361213e07
12 changed files with 350 additions and 92 deletions
+28 -18
View File
@@ -1055,30 +1055,40 @@ void Packer::initLoader(const void *pdata, int plen, int small)
linker->addSection("IDENTSTR", ident, size, 0);
}
#if 1 && (ACC_CC_BORLANDC)
#else
void Packer::addLoader(const char *s)
{
if (s)
linker->addLoader(s);
}
#endif
#if 1 && (ACC_CC_BORLANDC)
void __acc_cdecl_va Packer::addLoader(const char *s, ...)
#else
// provide specialization for [T = const char *]
template <>
void __acc_cdecl_va Packer::addLoader<char>(const char *s, ...)
#endif
#define C const char *
void Packer::addLoader(C a)
{ addLoaderVA(a, NULL); }
void Packer::addLoader(C a, C b)
{ addLoaderVA(a, b, NULL); }
void Packer::addLoader(C a, C b, C c)
{ addLoaderVA(a, b, c, NULL); }
void Packer::addLoader(C a, C b, C c, C d)
{ addLoaderVA(a, b, c, d, NULL); }
void Packer::addLoader(C a, C b, C c, C d, C e)
{ addLoaderVA(a, b, c, d, e, NULL); }
void Packer::addLoader(C a, C b, C c, C d, C e, C f)
{ addLoaderVA(a, b, c, d, e, f, NULL); }
void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g)
{ addLoaderVA(a, b, c, d, e, f, g, NULL); }
void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g, C h)
{ addLoaderVA(a, b, c, d, e, f, g, h, NULL); }
void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g, C h, C i)
{ addLoaderVA(a, b, c, d, e, f, g, h, i, NULL); }
void Packer::addLoader(C a, C b, C c, C d, C e, C f, C g, C h, C i, C j)
{ addLoaderVA(a, b, c, d, e, f, g, h, i, j, NULL); }
#undef C
void __acc_cdecl_va Packer::addLoaderVA(const char *s, ...)
{
va_list ap;
const char *t = s;
va_start(ap, s);
while (s != NULL)
while (t != NULL)
{
linker->addLoader(s);
s = va_arg(ap, const char *);
linker->addLoader(t);
t = va_arg(ap, const char *);
}
va_end(ap);
}