mirror of
https://github.com/zeek/zeek.git
synced 2025-10-12 11:38:20 +00:00

This is based on commit 48f75b5f6415fe9d597e3e991cec635b1bc400dc from the binpac repository.
37 lines
695 B
C++
37 lines
695 B
C++
#include "pac_utils.h"
|
|
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
char* copy_string(const char* s) {
|
|
char* c = new char[strlen(s) + 1];
|
|
strcpy(c, s);
|
|
return c;
|
|
}
|
|
|
|
namespace {
|
|
|
|
const char* do_fmt(const char* format, va_list ap) {
|
|
static char buf[1024];
|
|
vsnprintf(buf, sizeof(buf), format, ap);
|
|
return buf;
|
|
}
|
|
|
|
} // namespace
|
|
|
|
string strfmt(const char* format, ...) {
|
|
va_list ap;
|
|
va_start(ap, format);
|
|
const char* r = do_fmt(format, ap);
|
|
va_end(ap);
|
|
return string(r);
|
|
}
|
|
|
|
char* nfmt(const char* format, ...) {
|
|
va_list ap;
|
|
va_start(ap, format);
|
|
const char* r = do_fmt(format, ap);
|
|
va_end(ap);
|
|
return copy_string(r);
|
|
}
|