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=01678a3d0283e17bbeeb55eaab9dcff0581f0a49;hb=4c5f3cc94c4d96847409ab8987debc48fcf9cf9d;hpb=feccee87a78e68d575dbdf44b34ca0cb5a21ea8d diff --git a/Tools/Java/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java b/Tools/Java/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java index 01678a3d02..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) { @@ -86,6 +90,7 @@ public final class SourceFileReplacer implements Common.ForDoAll { } private class DxsLaplace extends Common.Laplace { public String operation(String wholeline) { + wholeline = replaceMacro(wholeline, mi.hashnonlocalmacro); if (mi.getModuleType().equals("PEIM")) { return addincludefile(wholeline, "\\"); } else { @@ -105,7 +110,7 @@ public final class SourceFileReplacer implements Common.ForDoAll { private class CLaplace extends Common.Laplace { public String operation(String wholeline) { // remove EFI_DRIVER_ENTRY_POINT - wholeline = wholeline.replaceAll("(EFI_[A-Z]+_ENTRY_POINT\\s*\\(\\s*" + mi.entrypoint + "\\s*\\)\\s*;)", MigrationTool.MIGRATIONCOMMENT + " $1"); + wholeline = wholeline.replaceAll("(EFI_[A-Z]+_ENTRY_POINT\\s*\\(\\s*\\w(\\w|\\d)*\\s*\\))", MigrationTool.MIGRATIONCOMMENT + " $1"); // redefine module entry point for some self-relocated modules wholeline = wholeline.replaceAll (mi.entrypoint + "([^{]*?})", "_ModuleEntryPoint" + "$1"); // remove R8 library contractor @@ -256,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; } @@ -277,7 +289,8 @@ public final class SourceFileReplacer implements Common.ForDoAll { //mi.hashrequiredr9libs.add(MigrationTool.db.getR9Lib(r8thing)); if ((r9thing = MigrationTool.db.getR9Macro(r8thing)) != null) { if (wholeline.contains(r8thing)) { - wholeline = wholeline.replaceAll(r8thing, r9thing); + String findString = "(?