Skip to content

Commit bc846b1

Browse files
committed
Fix logic in print functions so that they actually print numbers
1 parent d4bf6a7 commit bc846b1

File tree

3 files changed

+26
-24
lines changed

3 files changed

+26
-24
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
1818
### Fixed
1919
- Compile errors / portability issues in `WString.h` and `Print.h`, first reported by `dfrencham` on GitHub
2020
- Compile errors / inheritance issues in `Print.h` and `Stream.h`, first reported by `dfrencham` on GitHub
21+
- Print functions for int, double, long, etc
2122

2223
### Security
2324

SampleProjects/TestSomething/test/serial.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ unittest(serial_ports)
5656
Serial.print((double)3.4);
5757
Serial.print((char)'a');
5858
Serial.print("b");
59+
assertEqual("xyz123.4000000000ab", state->serialPort[0].dataOut);
5960
}
6061

6162
#endif

cpp/arduino/Print.h

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -33,38 +33,38 @@ class Print
3333
virtual size_t write(uint8_t) = 0;
3434
size_t write(const char *str) { return str == NULL ? 0 : write((const uint8_t *)str, String(str).length()); }
3535

36-
3736
virtual size_t write(const uint8_t *buffer, size_t size) {
3837
size_t n;
3938
for (n = 0; size && write(*buffer++) && ++n; --size);
4039
return n;
4140
}
41+
4242
size_t write(const char *buffer, size_t size) { return write((const uint8_t *)buffer, size); }
4343

44-
size_t print(const String &s) { return write(s.c_str(), s.length()); }
45-
size_t print(const __FlashStringHelper *str) { return print(reinterpret_cast<PGM_P>(str)); }
46-
size_t print(const char* str) { return print(String(str)); }
47-
size_t print(char c) { return print(String(c)); }
48-
size_t print(unsigned char b, int base) { return print(String(b, base)); }
49-
size_t print(int n, int base) { return print(String(n, base)); }
50-
size_t print(unsigned int n, int base) { return print(String(n, base)); }
51-
size_t print(long n, int base) { return print(String(n, base)); }
52-
size_t print(unsigned long n, int base) { return print(String(n, base)); }
53-
size_t print(double n, int digits) { return print(String(n, digits)); }
54-
size_t print(const Printable& x) { return x.printTo(*this); }
44+
size_t print(const String &s) { return write(s.c_str(), s.length()); }
45+
size_t print(const __FlashStringHelper *str) { return print(reinterpret_cast<PGM_P>(str)); }
46+
size_t print(const char* str) { return print(String(str)); }
47+
size_t print(char c) { return print(String(c)); }
48+
size_t print(unsigned char b, int base = DEC) { return print(String(b, base)); }
49+
size_t print(int n, int base = DEC) { return print(String(n, base)); }
50+
size_t print(unsigned int n, int base = DEC) { return print(String(n, base)); }
51+
size_t print(long n, int base = DEC) { return print(String(n, base)); }
52+
size_t print(unsigned long n, int base = DEC) { return print(String(n, base)); }
53+
size_t print(double n, int base = DEC) { return print(String(n, base)); }
54+
size_t print(const Printable& x) { return x.printTo(*this); }
5555

56-
size_t println(void) { return print("\r\n"); }
57-
size_t println(const String &s) { return print(s) + println(); }
58-
size_t println(const __FlashStringHelper *str) { return println(reinterpret_cast<PGM_P>(str)); }
59-
size_t println(const char* c) { return println(String(c)); }
60-
size_t println(char c) { return println(String(c)); }
61-
size_t println(unsigned char b, int base) { return println(String(b, base)); }
62-
size_t println(int num, int base) { return println(String(num, base)); }
63-
size_t println(unsigned int num, int base) { return println(String(num, base)); }
64-
size_t println(long num, int base) { return println(String(num, base)); }
65-
size_t println(unsigned long num, int base) { return println(String(num, base)); }
66-
size_t println(double num, int digits) { return println(String(num, digits)); }
67-
size_t println(const Printable& x) { return print(x) + println(); }
56+
size_t println(void) { return print("\r\n"); }
57+
size_t println(const String &s) { return print(s) + println(); }
58+
size_t println(const __FlashStringHelper *str) { return println(reinterpret_cast<PGM_P>(str)); }
59+
size_t println(const char* c) { return println(String(c)); }
60+
size_t println(char c) { return println(String(c)); }
61+
size_t println(unsigned char b, int base = DEC) { return println(String(b, base)); }
62+
size_t println(int num, int base = DEC) { return println(String(num, base)); }
63+
size_t println(unsigned int num, int base = DEC) { return println(String(num, base)); }
64+
size_t println(long num, int base = DEC) { return println(String(num, base)); }
65+
size_t println(unsigned long num, int base = DEC) { return println(String(num, base)); }
66+
size_t println(double num, int base = DEC) { return println(String(num, base)); }
67+
size_t println(const Printable& x) { return print(x) + println(); }
6868

6969
virtual void flush() { }
7070

0 commit comments

Comments
 (0)