diff options
| author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-06-08 16:39:04 -0400 | 
|---|---|---|
| committer | Marti Bolivar <mbolivar@leaflabs.com> | 2011-06-08 16:39:04 -0400 | 
| commit | 3f77427ecdcda5bc9dcceb7f79ec278e9cfcb42f (patch) | |
| tree | 1e3b7fccf188ffc37fb2bd0e150092f90b38e3f7 /wirish/Print.cpp | |
| parent | 8e4baf428403f4e575fc1d3296299dae69c91f6e (diff) | |
| download | librambutan-3f77427ecdcda5bc9dcceb7f79ec278e9cfcb42f.tar.gz librambutan-3f77427ecdcda5bc9dcceb7f79ec278e9cfcb42f.zip | |
Update Print to match Arduino master.
Add base argument to integral Print methods, defaulting to DEC so as
not to break backwards compatibility.  Add precision argument to
floating-point Print methods.
These changes increase compatibility with the Arduino Print
implementation.
Diffstat (limited to 'wirish/Print.cpp')
| -rw-r--r-- | wirish/Print.cpp | 77 | 
1 files changed, 35 insertions, 42 deletions
| diff --git a/wirish/Print.cpp b/wirish/Print.cpp index 9130c9c..58c7cc7 100644 --- a/wirish/Print.cpp +++ b/wirish/Print.cpp @@ -59,58 +59,56 @@ void Print::write(const void *buffer, uint32 size) {      }  } -void Print::print(uint8 b) { -    this->write(b); +void Print::print(uint8 b, int base) { +    print((uint64)b, base);  }  void Print::print(char c) { -    print((uint8)c); +    write(c);  }  void Print::print(const char str[]) {      write(str);  } -void Print::print(int n) { -    print((long long)n); +void Print::print(int n, int base) { +    print((long long)n, base);  } -void Print::print(unsigned int n) { -    print((unsigned long long)n); +void Print::print(unsigned int n, int base) { +    print((unsigned long long)n, base);  } -void Print::print(long n) { -    print((long long)n); +void Print::print(long n, int base) { +    print((long long)n, base);  } -void Print::print(unsigned long n) { -    print((unsigned long long)n); +void Print::print(unsigned long n, int base) { +    print((unsigned long long)n, base);  } -void Print::print(long long n) { +void Print::print(long long n, int base) { +    if (base == BYTE) { +        write((uint8)n); +        return; +    }      if (n < 0) {          print('-');          n = -n;      } -    printNumber(n, 10); -} - -void Print::print(unsigned long long n) { -    printNumber(n, 10); +    printNumber(n, base);  }  void Print::print(unsigned long long n, int base) { -    if (base == 0) { -        print((char)n); -    } else if (base == 10) { -        print(n); +    if (base == BYTE) { +        write((uint8)n);      } else {          printNumber(n, base);      }  } -void Print::print(double n) { -    printFloat(n, 2); +void Print::print(double n, int digits) { +    printFloat(n, digits);  }  void Print::println(void) { @@ -128,38 +126,33 @@ void Print::println(const char c[]) {      println();  } -void Print::println(uint8 b) { -    print(b); -    println(); -} - -void Print::println(int n) { -    print(n); +void Print::println(uint8 b, int base) { +    print(b, base);      println();  } -void Print::println(unsigned int n) { -    print(n); +void Print::println(int n, int base) { +    print(n, base);      println();  } -void Print::println(long n) { -    print((long long)n); +void Print::println(unsigned int n, int base) { +    print(n, base);      println();  } -void Print::println(unsigned long n) { -    print((unsigned long long)n); +void Print::println(long n, int base) { +    print((long long)n, base);      println();  } -void Print::println(long long n) { -    print(n); +void Print::println(unsigned long n, int base) { +    print((unsigned long long)n, base);      println();  } -void Print::println(unsigned long long n) { -    print(n); +void Print::println(long long n, int base) { +    print(n, base);      println();  } @@ -168,8 +161,8 @@ void Print::println(unsigned long long n, int base) {      println();  } -void Print::println(double n) { -    print(n); +void Print::println(double n, int digits) { +    print(n, digits);      println();  } | 
