* Niki W. Waibel <niki.waibel@gmx.net>
* Sebastian Harl <sh at tokkee.org>
* Michał Mirosław <mirq-linux at rere.qmqm.pl>
-**/
+ **/
#include "collectd.h"
return dest;
} /* char *sstrncpy */
+/* ssnprintf returns zero on success, one if truncation occurred
+ and a negative integer onerror. */
+int ssnprintf(char *str, size_t sz, const char *format, ...) {
+ va_list ap;
+ va_start(ap, format);
+
+ int ret = vsnprintf(str, sz, format, ap);
+
+ va_end(ap);
+
+ if (ret < 0) {
+ return ret;
+ }
+ return (size_t)ret >= sz;
+} /* int ssnprintf */
+
char *ssnprintf_alloc(char const *format, ...) /* {{{ */
{
char static_buffer[1024] = "";
else if (kn->data_type == KSTAT_DATA_UINT32)
retval = (long long)kn->value.ui32;
else if (kn->data_type == KSTAT_DATA_INT64)
- retval =
- (long long)kn->value.i64; /* According to ANSI C99 `long long' must hold
- at least 64 bits */
+ retval = (long long)kn->value.i64; /* According to ANSI C99 `long long' must
+ hold at least 64 bits */
else if (kn->data_type == KSTAT_DATA_UINT64)
retval = (long long)kn->value.ui64; /* XXX: Might overflow! */
else