mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-25 22:54:51 +02:00
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:
parent
8fb6b714d3
commit
e7fe49961a
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user