File tree 2 files changed +23
-3
lines changed
2 files changed +23
-3
lines changed Original file line number Diff line number Diff line change @@ -44,13 +44,11 @@ size_t Print::write(const uint8_t *buffer, size_t size)
44
44
return n;
45
45
}
46
46
47
- size_t Print::printf (const char *format, ... )
47
+ size_t Print::vprintf (const char *format, va_list arg )
48
48
{
49
49
char loc_buf[64 ];
50
50
char * temp = loc_buf;
51
- va_list arg;
52
51
va_list copy;
53
- va_start (arg, format);
54
52
va_copy (copy, arg);
55
53
int len = vsnprintf (temp, sizeof (loc_buf), format, copy);
56
54
va_end (copy);
@@ -74,6 +72,25 @@ size_t Print::printf(const char *format, ...)
74
72
return len;
75
73
}
76
74
75
+ size_t Print::printf (const __FlashStringHelper *ifsh, ...)
76
+ {
77
+ va_list arg;
78
+ va_start (arg, ifsh);
79
+ const char * format = (reinterpret_cast <const char *>(ifsh));
80
+ size_t ret = vprintf (format, arg);
81
+ va_end (arg);
82
+ return ret;
83
+ }
84
+
85
+ size_t Print::printf (const char *format, ...)
86
+ {
87
+ va_list arg;
88
+ va_start (arg, format);
89
+ size_t ret = vprintf (format, arg);
90
+ va_end (arg);
91
+ return ret;
92
+ }
93
+
77
94
size_t Print::print (const String &s)
78
95
{
79
96
return write (s.c_str (), s.length ());
Original file line number Diff line number Diff line change @@ -72,7 +72,10 @@ class Print
72
72
return write ((const uint8_t *) buffer, size);
73
73
}
74
74
75
+ size_t vprintf (const char *format, va_list arg);
76
+
75
77
size_t printf (const char * format, ...) __attribute__ ((format (printf, 2 , 3 )));
78
+ size_t printf (const __FlashStringHelper *ifsh, ...);
76
79
77
80
// add availableForWrite to make compatible with Arduino Print.h
78
81
// default to zero, meaning "a single write may block"
You can’t perform that action at this time.
0 commit comments