diff options
author | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-06-28 09:41:50 +0000 |
---|---|---|
committer | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-06-28 09:41:50 +0000 |
commit | ab1096fdf6d3e2d6acb67e8bdf884af8bbc2d8fe (patch) | |
tree | c49c5887c602a0821ca3dc8f571ba72bdc8631fc /MdePkg/Library/BasePrintLib | |
parent | eb6f7758565616762bf1b7143f5f336abadb6d16 (diff) | |
download | edk2-platforms-ab1096fdf6d3e2d6acb67e8bdf884af8bbc2d8fe.tar.xz |
1.BaseMemoryLibMmx: Add X64 Cpu Arch support.
2.BasePrintLib: Fix some minor bugs
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@651 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BasePrintLib')
-rw-r--r-- | MdePkg/Library/BasePrintLib/PrintLib.c | 26 | ||||
-rw-r--r-- | MdePkg/Library/BasePrintLib/PrintLibInternal.c | 6 |
2 files changed, 27 insertions, 5 deletions
diff --git a/MdePkg/Library/BasePrintLib/PrintLib.c b/MdePkg/Library/BasePrintLib/PrintLib.c index bbafeeaec5..1484d891b6 100644 --- a/MdePkg/Library/BasePrintLib/PrintLib.c +++ b/MdePkg/Library/BasePrintLib/PrintLib.c @@ -227,6 +227,17 @@ BasePrintLibVSPrint ( Precision = Count;
}
break;
+
+ case '\0':
+ //
+ // Make no output if Format string terminates unexpectedly when
+ // looking up for flag, width, precision and type.
+ //
+ Format -= BytesPerFormatCharacter;
+ Precision = 0;
+ //
+ // break skiped on purpose.
+ //
default:
Done = TRUE;
break;
@@ -299,19 +310,26 @@ BasePrintLibVSPrint ( Count = 0;
}
ArgumentString = (CHAR8 *)ValueBuffer + Count;
- Digits = 3 - (Count % 3);
+
+ Digits = Count % 3;
+ if (Digits != 0) {
+ Digits = 3 - Digits;
+ }
if (Comma && Count != 0) {
Count += ((Count - 1) / 3);
}
if (Prefix != 0) {
Count++;
+ Precision++;
}
Flags |= ARGUMENT_REVERSED;
ZeroPad = TRUE;
if ((Flags & PREFIX_ZERO) != 0) {
- if ((Flags & PAD_TO_WIDTH) != 0) {
- if ((Flags & PRECISION) == 0) {
- Precision = Width;
+ if ((Flags & LEFT_JUSTIFY) == 0) {
+ if ((Flags & PAD_TO_WIDTH) != 0) {
+ if ((Flags & PRECISION) == 0) {
+ Precision = Width;
+ }
}
}
}
diff --git a/MdePkg/Library/BasePrintLib/PrintLibInternal.c b/MdePkg/Library/BasePrintLib/PrintLibInternal.c index 9314b60911..30b4539141 100644 --- a/MdePkg/Library/BasePrintLib/PrintLibInternal.c +++ b/MdePkg/Library/BasePrintLib/PrintLibInternal.c @@ -158,6 +158,7 @@ BasePrintLibConvertValueToString ( if (Value < 0) {
Value = -Value;
Buffer = BasePrintLibFillBuffer (Buffer, 1, '-', Increment);
+ Width--;
}
Count = BasePrintLibValueToString (ValueBuffer, Value, 10);
@@ -166,7 +167,10 @@ BasePrintLibConvertValueToString ( Buffer = BasePrintLibFillBuffer (Buffer, Width - Count, '0', Increment);
}
- Digits = 3 - (Count % 3);
+ Digits = Count % 3;
+ if (Digits != 0) {
+ Digits = 3 - Digits;
+ }
for (Index = 0; Index < Count; Index++) {
Buffer = BasePrintLibFillBuffer (Buffer, 1, ValueBuffer[Count - Index], Increment);
if ((Flags & COMMA_TYPE) != 0) {
|