X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FJava%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FSourceFileReplacer.java;h=cdb833db838ff372e79ff6dca6978a814887f0ed;hp=e37f7f46b243ede6a5a45d8634153414ac9616d8;hb=4c5f3cc94c4d96847409ab8987debc48fcf9cf9d;hpb=49324055442ba901c0baf751963452cac7e8542a diff --git a/Tools/Java/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java b/Tools/Java/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java index e37f7f46b2..cdb833db83 100644 --- a/Tools/Java/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java +++ b/Tools/Java/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java @@ -17,6 +17,8 @@ import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.tianocore.UsageTypes; + public final class SourceFileReplacer implements Common.ForDoAll { private static final SourceFileReplacer SFReplacer = new SourceFileReplacer(); private ModuleInfo mi; @@ -73,7 +75,9 @@ public final class SourceFileReplacer implements Common.ForDoAll { } public boolean recognize(String filename) { - return filename.contains(".h") || filename.contains(".H") || filename.contains(".uni"); + return filename.contains(".h") || filename.contains(".H") || filename.contains(".uni") || + filename.contains(".s") || filename.contains(".S") || filename.contains(".asm") || + (!filename.contains(".inf") && filename.contains(".i")); } public String namechange(String oldname) { @@ -257,12 +261,19 @@ public final class SourceFileReplacer implements Common.ForDoAll { Matcher mtrhobstatus; String templine = wholeline; for (int i = 0; i < specialhoblibfunc.length; i++) { - ptnhobstatus = Pattern.compile("(Status\\s*=\\s*)?" + specialhoblibfunc[i] + "(.*?\\)\\s*;)", Pattern.DOTALL); - mtrhobstatus = ptnhobstatus.matcher(templine); - if (mtrhobstatus.find()) { - templine = mtrhobstatus.replaceAll(specialhoblibfunc[i] + mtrhobstatus.group(2) + "\n " + - MigrationTool.MIGRATIONCOMMENT + "R9 Hob-building library functions will assert if build failure.\n Status = EFI_SUCCESS;"); - } + do { + ptnhobstatus = Pattern.compile("((?:\t| )*)(\\w(?:\\w|\\d)*)\\s*=\\s*" + specialhoblibfunc[i] + "(.*?;)", Pattern.DOTALL); + mtrhobstatus = ptnhobstatus.matcher(templine); + if (!mtrhobstatus.find()) { + break; + } + String captureIndent = mtrhobstatus.group(1); + String captureStatus = mtrhobstatus.group(2); + String replaceString = captureIndent + specialhoblibfunc[i] + mtrhobstatus.group(3) + "\n"; + replaceString += captureIndent + MigrationTool.MIGRATIONCOMMENT + "R9 Hob-building library functions will assert if build failure.\n"; + replaceString += captureIndent + captureStatus + " = EFI_SUCCESS;"; + templine = mtrhobstatus.replaceFirst(replaceString); + } while (true); } return templine; } @@ -297,7 +308,8 @@ public final class SourceFileReplacer implements Common.ForDoAll { it = symbolSet.iterator(); while (it.hasNext()) { r8thing = it.next(); - mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing)); // add a library here + mi.addLibraryClass(MigrationTool.db.getR9Lib(r8thing), UsageTypes.ALWAYS_CONSUMED); + //mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing)); // add a library here r8tor9 temp; if ((r9thing = MigrationTool.db.getR9Func(r8thing)) != null) {