diff --git a/src/unity.c b/src/unity.c index f46600d03f50fc4d1ef2495332e77d26da57220f..090d5b8bd02be3c4f2b50d53fc803cf57d7565e3 100644 --- a/src/unity.c +++ b/src/unity.c @@ -164,12 +164,9 @@ void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T s } //----------------------------------------------- -/// basically do an itoa using as little ram as possible void UnityPrintNumber(const _U_SINT number_to_print) { - _U_UINT divisor = 1; - _U_UINT next_divisor; - _U_UINT number; + _U_UINT number = (_U_UINT)number_to_print; if (number_to_print < 0) { @@ -177,29 +174,7 @@ void UnityPrintNumber(const _U_SINT number_to_print) UNITY_OUTPUT_CHAR('-'); number = (_U_UINT)(-number_to_print); } - else - { - //Non-negative number - number = (_U_UINT)number_to_print; - } - - // figure out initial divisor - while (number / divisor > 9) - { - next_divisor = divisor * 10; - if (next_divisor > divisor) - divisor = next_divisor; - else - break; - } - - // now mod and print, then divide divisor - do - { - UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10))); - divisor /= 10; - } - while (divisor > 0); + UnityPrintNumberUnsigned(number); } //----------------------------------------------- @@ -207,16 +182,11 @@ void UnityPrintNumber(const _U_SINT number_to_print) void UnityPrintNumberUnsigned(const _U_UINT number) { _U_UINT divisor = 1; - _U_UINT next_divisor; // figure out initial divisor while (number / divisor > 9) { - next_divisor = divisor * 10; - if (next_divisor > divisor) - divisor = next_divisor; - else - break; + divisor *= 10; } // now mod and print, then divide divisor