Fixed problem with sign extension in print lib. PrintXY could not print out French characters like é.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3761 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
AJFISH 2007-09-01 15:56:49 +00:00
parent 8fb6b714d3
commit e7fe49961a

View File

@ -154,7 +154,7 @@ BasePrintLibVSPrint (
// //
// Get the first character from the format string // Get the first character from the format string
// //
FormatCharacter = (*Format | (*(Format + 1) << 8)) & FormatMask; FormatCharacter = ((*Format & 0xff) | (*(Format + 1) << 8)) & FormatMask;
// //
// Loop until the end of the format string is reached or the output buffer is full // Loop until the end of the format string is reached or the output buffer is full
@ -183,7 +183,7 @@ BasePrintLibVSPrint (
// //
for (Done = FALSE; !Done; ) { for (Done = FALSE; !Done; ) {
Format += BytesPerFormatCharacter; Format += BytesPerFormatCharacter;
FormatCharacter = (*Format | (*(Format + 1) << 8)) & FormatMask; FormatCharacter = ((*Format & 0xff) | (*(Format + 1) << 8)) & FormatMask;
switch (FormatCharacter) { switch (FormatCharacter) {
case '.': case '.':
Flags |= PRECISION; Flags |= PRECISION;
@ -228,7 +228,7 @@ BasePrintLibVSPrint (
for (Count = 0; ((FormatCharacter >= '0') && (FormatCharacter <= '9')); ){ for (Count = 0; ((FormatCharacter >= '0') && (FormatCharacter <= '9')); ){
Count = (Count * 10) + FormatCharacter - '0'; Count = (Count * 10) + FormatCharacter - '0';
Format += BytesPerFormatCharacter; Format += BytesPerFormatCharacter;
FormatCharacter = (*Format | (*(Format + 1) << 8)) & FormatMask; FormatCharacter = ((*Format & 0xff) | (*(Format + 1) << 8)) & FormatMask;
} }
Format -= BytesPerFormatCharacter; Format -= BytesPerFormatCharacter;
if ((Flags & PRECISION) == 0) { if ((Flags & PRECISION) == 0) {
@ -548,7 +548,7 @@ BasePrintLibVSPrint (
// //
// Get the next character from the format string // Get the next character from the format string
// //
FormatCharacter = (*Format | (*(Format + 1) << 8)) & FormatMask; FormatCharacter = ((*Format & 0xff) | (*(Format + 1) << 8)) & FormatMask;
} }
// //