From f13226663c1d11c511bce354e1136a415da7bebe Mon Sep 17 00:00:00 2001 From: sg- Date: Tue, 17 Nov 2015 08:35:45 -0600 Subject: [PATCH 1/4] add variable arguemnt support to stream --- libraries/mbed/api/Stream.h | 2 ++ libraries/mbed/common/Stream.cpp | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/libraries/mbed/api/Stream.h b/libraries/mbed/api/Stream.h index a57053e67c..e92ec8155c 100644 --- a/libraries/mbed/api/Stream.h +++ b/libraries/mbed/api/Stream.h @@ -37,6 +37,8 @@ public: char *gets(char *s, int size); int printf(const char* format, ...); int scanf(const char* format, ...); + int vprintf(const char* format, va_list args); + int vscanf(const char* format, va_list args); operator std::FILE*() {return _file;} diff --git a/libraries/mbed/common/Stream.cpp b/libraries/mbed/common/Stream.cpp index 6d3a33526f..ec5b7cf3c2 100644 --- a/libraries/mbed/common/Stream.cpp +++ b/libraries/mbed/common/Stream.cpp @@ -108,4 +108,16 @@ int Stream::scanf(const char* format, ...) { return r; } +int Stream::vprintf(const char* format, va_list args) { + fflush(_file); + int r = vfprintf(_file, format, args); + return r; +} + +int Stream::vscanf(const char* format, va_list args) { + fflush(_file); + int r = vfscanf(_file, format, args); + return r; +} + } // namespace mbed From d0b934eba038ae3ada5397770151e6a70b6b6d26 Mon Sep 17 00:00:00 2001 From: sg- Date: Tue, 17 Nov 2015 09:00:10 -0600 Subject: [PATCH 2/4] remove std:: namespace and update include accessability --- libraries/mbed/api/Stream.h | 1 + libraries/mbed/common/Stream.cpp | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/mbed/api/Stream.h b/libraries/mbed/api/Stream.h index e92ec8155c..c1ee429ea8 100644 --- a/libraries/mbed/api/Stream.h +++ b/libraries/mbed/api/Stream.h @@ -18,6 +18,7 @@ #include "platform.h" #include "FileLike.h" +#include "stdarg.h" namespace mbed { diff --git a/libraries/mbed/common/Stream.cpp b/libraries/mbed/common/Stream.cpp index ec5b7cf3c2..3302442a92 100644 --- a/libraries/mbed/common/Stream.cpp +++ b/libraries/mbed/common/Stream.cpp @@ -15,8 +15,6 @@ */ #include "Stream.h" -#include - namespace mbed { Stream::Stream(const char *name) : FileLike(name), _file(NULL) { @@ -91,7 +89,7 @@ off_t Stream::flen() { } int Stream::printf(const char* format, ...) { - std::va_list arg; + va_list arg; va_start(arg, format); fflush(_file); int r = vfprintf(_file, format, arg); @@ -100,7 +98,7 @@ int Stream::printf(const char* format, ...) { } int Stream::scanf(const char* format, ...) { - std::va_list arg; + va_list arg; va_start(arg, format); fflush(_file); int r = vfscanf(_file, format, arg); From 7fff98a3fda2c84d36e501d987e980e9631368c6 Mon Sep 17 00:00:00 2001 From: sg- Date: Mon, 23 Nov 2015 10:08:51 -0600 Subject: [PATCH 3/4] use cstdarg lib and not stdarg --- libraries/mbed/api/Stream.h | 6 +++--- libraries/mbed/common/Stream.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libraries/mbed/api/Stream.h b/libraries/mbed/api/Stream.h index c1ee429ea8..a83403863b 100644 --- a/libraries/mbed/api/Stream.h +++ b/libraries/mbed/api/Stream.h @@ -18,7 +18,7 @@ #include "platform.h" #include "FileLike.h" -#include "stdarg.h" +#include "cstdarg" namespace mbed { @@ -38,8 +38,8 @@ public: char *gets(char *s, int size); int printf(const char* format, ...); int scanf(const char* format, ...); - int vprintf(const char* format, va_list args); - int vscanf(const char* format, va_list args); + int vprintf(const char* format, std::va_list args); + int vscanf(const char* format, std::va_list args); operator std::FILE*() {return _file;} diff --git a/libraries/mbed/common/Stream.cpp b/libraries/mbed/common/Stream.cpp index 3302442a92..2b3105f27c 100644 --- a/libraries/mbed/common/Stream.cpp +++ b/libraries/mbed/common/Stream.cpp @@ -89,7 +89,7 @@ off_t Stream::flen() { } int Stream::printf(const char* format, ...) { - va_list arg; + std::va_list arg; va_start(arg, format); fflush(_file); int r = vfprintf(_file, format, arg); @@ -98,7 +98,7 @@ int Stream::printf(const char* format, ...) { } int Stream::scanf(const char* format, ...) { - va_list arg; + std::va_list arg; va_start(arg, format); fflush(_file); int r = vfscanf(_file, format, arg); @@ -106,13 +106,13 @@ int Stream::scanf(const char* format, ...) { return r; } -int Stream::vprintf(const char* format, va_list args) { +int Stream::vprintf(const char* format, std::va_list args) { fflush(_file); int r = vfprintf(_file, format, args); return r; } -int Stream::vscanf(const char* format, va_list args) { +int Stream::vscanf(const char* format, std::va_list args) { fflush(_file); int r = vfscanf(_file, format, args); return r; From dfc3b57115269bb91d05acc9eee7406d2f2ef54b Mon Sep 17 00:00:00 2001 From: sg- Date: Tue, 24 Nov 2015 09:10:07 -0600 Subject: [PATCH 4/4] update system include symantic --- libraries/mbed/api/Stream.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/mbed/api/Stream.h b/libraries/mbed/api/Stream.h index a83403863b..ca5dfe6b51 100644 --- a/libraries/mbed/api/Stream.h +++ b/libraries/mbed/api/Stream.h @@ -18,7 +18,7 @@ #include "platform.h" #include "FileLike.h" -#include "cstdarg" +#include namespace mbed {