summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2005-03-27 14:37:59 +0000
committerMarcel Holtmann <marcel@holtmann.org>2005-03-27 14:37:59 +0000
commit9280b803576dc54bfc7f51c8e5154d1f29692991 (patch)
treeccb68150325d139414204095879928923ae35c2d
parent8bd7ef87e49b68c3090448f337454a1704f5e048 (diff)
Add ba*printf() functions
-rw-r--r--include/bluetooth.h7
-rw-r--r--src/bluetooth.c51
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 <stdint.h>
+#include <string.h>
#include <endian.h>
#include <byteswap.h>
-#include <string.h>
#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 <stdio.h>
+#include <errno.h>
+#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
-#include <errno.h>
#include <sys/socket.h>
#include <bluetooth/bluetooth.h>
@@ -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)
{