From 9280b803576dc54bfc7f51c8e5154d1f29692991 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 27 Mar 2005 14:37:59 +0000 Subject: Add ba*printf() functions --- include/bluetooth.h | 7 ++++++- src/bluetooth.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/include/bluetooth.h b/include/bluetooth.h index a005c1c7..d7747996 100644 --- a/include/bluetooth.h +++ b/include/bluetooth.h @@ -36,9 +36,9 @@ extern "C" { #endif #include +#include #include #include -#include #ifndef AF_BLUETOOTH #define AF_BLUETOOTH 31 @@ -129,6 +129,11 @@ char *batostr(const bdaddr_t *ba); int ba2str(const bdaddr_t *ba, char *str); int str2ba(const char *str, bdaddr_t *ba); +int baprintf(const char *format, ...); +int bafprintf(FILE *stream, const char *format, ...); +int basprintf(char *str, const char *format, ...); +int basnprintf(char *str, size_t size, const char *format, ...); + int bt_error(uint16_t code); char *bt_compidtostr(int id); diff --git a/src/bluetooth.c b/src/bluetooth.c index 110d65cd..484b263b 100644 --- a/src/bluetooth.c +++ b/src/bluetooth.c @@ -33,9 +33,10 @@ #endif #include +#include +#include #include #include -#include #include #include @@ -105,6 +106,54 @@ int str2ba(const char *str, bdaddr_t *ba) return 0; } +int baprintf(const char *format, ...) +{ + va_list ap; + int len; + + va_start(ap, format); + len = vprintf(format, ap); + va_end(ap); + + return len; +} + +int bafprintf(FILE *stream, const char *format, ...) +{ + va_list ap; + int len; + + va_start(ap, format); + len = vfprintf(stream, format, ap); + va_end(ap); + + return len; +} + +int basprintf(char *str, const char *format, ...) +{ + va_list ap; + int len; + + va_start(ap, format); + len = vsnprintf(str, (~0U) >> 1, format, ap); + va_end(ap); + + return len; +} + +int basnprintf(char *str, size_t size, const char *format, ...) +{ + va_list ap; + int len; + + va_start(ap, format); + len = vsnprintf(str, size, format, ap); + va_end(ap); + + return len; +} + /* Bluetooth error codes to Unix errno mapping */ int bt_error(uint16_t code) { -- cgit