* strace.cc (strace::vprntf): Move prntf functionality to this function

adding an va_list interface to strace.
        (strace::printf): Calls strace::vprntf now.
        (strace_printf): New function providing an extern "C" interface to
        trace output.
        * include/sys/strace.h: Make plain C clean.
        (class strace): Add `vprntf' method.
This commit is contained in:
Corinna Vinschen
2001-02-26 09:50:24 +00:00
parent 6626ebfef7
commit 88429768bb
3 changed files with 50 additions and 4 deletions

View File

@@ -183,17 +183,15 @@ strace::write (unsigned category, const char *buf, int count)
Warning: DO NOT SET ERRNO HERE! */
void
strace::prntf (unsigned category, const char *func, const char *fmt, ...)
strace::vprntf (unsigned category, const char *func, const char *fmt, va_list ap)
{
DWORD err = GetLastError ();
int count;
char buf[10000];
va_list ap;
PROTECT(buf);
SetLastError (err);
va_start (ap, fmt);
count = this->vsprntf (buf, func, fmt, ap);
CHECK(buf);
if (category & _STRACE_SYSTEM)
@@ -210,6 +208,27 @@ strace::prntf (unsigned category, const char *func, const char *fmt, ...)
SetLastError (err);
}
void
strace::prntf (unsigned category, const char *func, const char *fmt, ...)
{
va_list ap;
va_start (ap, fmt);
this->vprntf (category, func, fmt, ap);
}
extern "C" void
strace_printf (unsigned category, const char *func, const char *fmt, ...)
{
va_list ap;
if ((category & _STRACE_SYSTEM) || strace.active)
{
va_start (ap, fmt);
strace.vprntf (category, func, fmt, ap);
}
}
static NO_COPY const struct tab
{
int v;