Matcher mtrhobstatus;\r
String templine = wholeline;\r
for (int i = 0; i < specialhoblibfunc.length; i++) {\r
- ptnhobstatus = Pattern.compile("(Status\\s*=\\s*)?" + specialhoblibfunc[i] + "(.*?\\)\\s*;)", Pattern.DOTALL);\r
- mtrhobstatus = ptnhobstatus.matcher(templine);\r
- if (mtrhobstatus.find()) {\r
- templine = mtrhobstatus.replaceAll(specialhoblibfunc[i] + mtrhobstatus.group(2) + "\n " + \r
- MigrationTool.MIGRATIONCOMMENT + "R9 Hob-building library functions will assert if build failure.\n Status = EFI_SUCCESS;");\r
- }\r
+ do {\r
+ ptnhobstatus = Pattern.compile("((?:\t| )*)(\\w(?:\\w|\\d)*)\\s*=\\s*" + specialhoblibfunc[i] + "(.*?;)", Pattern.DOTALL);\r
+ mtrhobstatus = ptnhobstatus.matcher(templine);\r
+ if (!mtrhobstatus.find()) {\r
+ break;\r
+ }\r
+ String captureIndent = mtrhobstatus.group(1);\r
+ String captureStatus = mtrhobstatus.group(2);\r
+ String replaceString = captureIndent + specialhoblibfunc[i] + mtrhobstatus.group(3) + "\n";\r
+ replaceString += captureIndent + MigrationTool.MIGRATIONCOMMENT + "R9 Hob-building library functions will assert if build failure.\n";\r
+ replaceString += captureIndent + captureStatus + " = EFI_SUCCESS;";\r
+ templine = mtrhobstatus.replaceFirst(replaceString);\r
+ } while (true);\r
}\r
return templine;\r
}\r