summaryrefslogtreecommitdiffstats
path: root/MdePkg/Library/BasePrintLib
diff options
context:
space:
mode:
authormdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2009-02-05 21:58:48 +0000
committermdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2009-02-05 21:58:48 +0000
commit57dd2382b7499d47b00fe10c120a929a78032bc1 (patch)
tree44a0988303c5a4406bf2694eb7176ef0896fbb21 /MdePkg/Library/BasePrintLib
parente54ce9047b336ae82736b9306213373e3945ca52 (diff)
downloadedk2-57dd2382b7499d47b00fe10c120a929a78032bc1.tar.gz
edk2-57dd2382b7499d47b00fe10c120a929a78032bc1.tar.bz2
edk2-57dd2382b7499d47b00fe10c120a929a78032bc1.zip
Add comment to explain use of the types "int" and "unsigned int" in the implementation of the BasePrintLib which does not follow the source code conventions used for the rest of the EDK II project.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7444 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BasePrintLib')
-rw-r--r--MdePkg/Library/BasePrintLib/PrintLibInternal.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/MdePkg/Library/BasePrintLib/PrintLibInternal.c b/MdePkg/Library/BasePrintLib/PrintLibInternal.c
index 9fe52f22bc..a9a53866e7 100644
--- a/MdePkg/Library/BasePrintLib/PrintLibInternal.c
+++ b/MdePkg/Library/BasePrintLib/PrintLibInternal.c
@@ -489,6 +489,14 @@ BasePrintLibVSPrint (
//
case 'd':
if ((Flags & LONG_TYPE) == 0) {
+ //
+ // 'd','x', and 'X' that are not preceeded by 'l' or 'L' are assumed to be type "int".
+ // This assumption is made so the format string defintion is compatible with the ANSI C
+ // Specification for formatted strings. It is recommended that the Base Types be used
+ // everywhere, but in this one case, compliance with ANSI C is more important, and
+ // provides an implementation that is compatible with that largest possible set of CPU
+ // architectures. This is why the type "int" is used in this one case.
+ //
Value = (VA_ARG (Marker, int));
} else {
Value = VA_ARG (Marker, INT64);
@@ -517,6 +525,14 @@ BasePrintLibVSPrint (
Radix = 16;
Comma = FALSE;
if ((Flags & LONG_TYPE) == 0 && Value < 0) {
+ //
+ // 'd','x', and 'X' that are not preceeded by 'l' or 'L' are assumed to be type "int".
+ // This assumption is made so the format string defintion is compatible with the ANSI C
+ // Specification for formatted strings. It is recommended that the Base Types be used
+ // everywhere, but in this one case, compliance with ANSI C is more important, and
+ // provides an implementation that is compatible with that largest possible set of CPU
+ // architectures. This is why the type "unsigned int" is used in this one case.
+ //
Value = (unsigned int)Value;
}
}