\r
--*/\r
{\r
- CHAR8 StrPtr[40];\r
- CHAR8 *Token;\r
+ CHAR8 TemStr[5] = "0000";\r
unsigned Major;\r
unsigned Minor;\r
+ UINTN Length;\r
\r
Major = 0;\r
Minor = 0;\r
- memset (StrPtr, 0, 40);\r
- Token = strtok (Str, ".");\r
\r
- while (Token != NULL) {\r
- strcat (StrPtr, Token);\r
- Token = strtok (NULL, ".");\r
+ if (strstr (Str, ".") != NULL) {\r
+ sscanf (\r
+ Str,\r
+ "%02x.%02x",\r
+ &Major,\r
+ &Minor\r
+ );\r
+ } else {\r
+ Length = strlen(Str);\r
+ if (Length < 4) {\r
+ strncpy (TemStr + 4 - Length, Str, Length);\r
+ } else {\r
+ strncpy (TemStr, Str + Length - 4, 4);\r
+ }\r
+ \r
+ sscanf (\r
+ TemStr,\r
+ "%02x%02x",\r
+ &Major,\r
+ &Minor\r
+ );\r
}\r
\r
- sscanf (\r
- StrPtr,\r
- "%02d%02d",\r
- &Major,\r
- &Minor\r
- );\r
-\r
*MajorVer = (UINT8) Major;\r
*MinorVer = (UINT8) Minor;\r
return EFI_SUCCESS;\r
if not self.__GetNextToken():\r
raise Warning("expected Component version", self.FileName, self.CurrentLineNumber)\r
\r
- Pattern = re.compile('-$|[0-9]{0,1}[0-9]{1}\.[0-9]{0,1}[0-9]{1}')\r
+ Pattern = re.compile('-$|[0-9a-fA-F]{1,2}\.[0-9a-fA-F]{1,2}$', re.DOTALL)\r
if Pattern.match(self.__Token) == None:\r
raise Warning("Unknown version format '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
CompStatementObj.CompVer = self.__Token\r