summaryrefslogtreecommitdiff
path: root/BaseTools/Source/C/Common/ParseInf.c
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/C/Common/ParseInf.c')
-rw-r--r--BaseTools/Source/C/Common/ParseInf.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/BaseTools/Source/C/Common/ParseInf.c b/BaseTools/Source/C/Common/ParseInf.c
index eb01d30527..bbccb61732 100644
--- a/BaseTools/Source/C/Common/ParseInf.c
+++ b/BaseTools/Source/C/Common/ParseInf.c
@@ -506,11 +506,19 @@ Returns:
//
// Add each character to the result
//
- if (IsHex || (AsciiString[Index] == '0' && (AsciiString[Index + 1] == 'x' || AsciiString[Index + 1] == 'X'))) {
+
+ //
+ // Skip first two chars only if the string starts with '0x' or '0X'
+ //
+ if (AsciiString[Index] == '0' && (AsciiString[Index + 1] == 'x' || AsciiString[Index + 1] == 'X')) {
+ IsHex = TRUE;
+ Index += 2;
+ }
+ if (IsHex) {
//
// Convert the hex string.
//
- for (Index = Index + 2; AsciiString[Index] != '\0'; Index++) {
+ for (; AsciiString[Index] != '\0'; Index++) {
CurrentChar = AsciiString[Index];
if (CurrentChar == ' ') {
break;