Precision = Count;\r
}\r
break;\r
+ \r
+ case '\0':\r
+ //\r
+ // Make no output if Format string terminates unexpectedly when\r
+ // looking up for flag, width, precision and type. \r
+ //\r
+ Format -= BytesPerFormatCharacter;\r
+ Precision = 0;\r
+ //\r
+ // break skiped on purpose.\r
+ //\r
default:\r
Done = TRUE;\r
break;\r
Count = 0;\r
}\r
ArgumentString = (CHAR8 *)ValueBuffer + Count;\r
- Digits = 3 - (Count % 3);\r
+ \r
+ Digits = Count % 3;\r
+ if (Digits != 0) {\r
+ Digits = 3 - Digits;\r
+ }\r
if (Comma && Count != 0) {\r
Count += ((Count - 1) / 3);\r
}\r
if (Prefix != 0) {\r
Count++;\r
+ Precision++;\r
}\r
Flags |= ARGUMENT_REVERSED;\r
ZeroPad = TRUE;\r
if ((Flags & PREFIX_ZERO) != 0) {\r
- if ((Flags & PAD_TO_WIDTH) != 0) {\r
- if ((Flags & PRECISION) == 0) {\r
- Precision = Width;\r
+ if ((Flags & LEFT_JUSTIFY) == 0) {\r
+ if ((Flags & PAD_TO_WIDTH) != 0) {\r
+ if ((Flags & PRECISION) == 0) {\r
+ Precision = Width;\r
+ }\r
}\r
}\r
}\r