X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FSourceFileReplacer.java;h=03617ab7167cc61e51d0031b20be09fced2b994a;hp=6f56e51969c0706a00c870046316be2306b8a2e5;hb=90503bad37fea5edf22531754c203f77268dfa36;hpb=03af6beba5f15564ff10aa1766f224c2f25a530a diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java b/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java index 6f56e51969..03617ab716 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/SourceFileReplacer.java @@ -51,7 +51,7 @@ public class SourceFileReplacer { "EfiLibInstallAllDriverProtocols " + "EfiLibCompareLanguage " + "BufToHexString " + - "EfiStrTrim " + + "EfiStrTrim " + //is the r8only lib going to be enlarged???? Caution !!!! "EfiValueToHexStr " + "HexStringToBuf " + "IsHexDigit " + @@ -69,33 +69,37 @@ public class SourceFileReplacer { public void flush() throws Exception { PrintWriter outfile; - String temp = null; - if (ui.yesOrNo("Change Source Code is to be doing . See details ?")) { + String outname = null; + String inname = null; + if (ui.yesOrNo("Changes will be made to the Source Code. View details?")) { showdetails = true; } - File tempdir = new File(modulepath + File.separator + "result" + File.separator); - if (!tempdir.exists()) tempdir.mkdir(); - String[] list = new File(modulepath + File.separator + "temp").list(); //what I change is the non-local .h commented-out files - for (int i = 0 ; i < list.length ; i++) { - if (list[i].contains(".c")) { - ui.println("\nModifying file : " + list[i]); - outfile = new PrintWriter(new BufferedWriter(new FileWriter(modulepath + File.separator + "result" + File.separator + list[i]))); - outfile.append(sourcefilereplace(modulepath + File.separator + "temp" + File.separator + list[i])); + + Iterator di = mi.localmodulesources.iterator(); + while (di.hasNext()) { + inname = di.next(); + if (inname.contains(".c") || inname.contains(".C")) { + if (inname.contains(".C")) { + outname = inname.replaceFirst(".C", ".c"); + } else { + outname = inname; + } + ui.println("\nModifying file: " + inname); + Common.ensureDir(modulepath + File.separator + "result" + File.separator + outname); + outfile = new PrintWriter(new BufferedWriter(new FileWriter(modulepath + File.separator + "result" + File.separator + outname))); + outfile.append(sourcefilereplace(modulepath + File.separator + "temp" + File.separator + inname)); outfile.flush(); outfile.close(); - } else { - if (list[i].contains(".h")) { - temp = list[i]; - } else if (list[i].contains(".C")) { - temp = list[i].replaceFirst(".C", ".c"); - } else if (list[i].contains(".H")) { - temp = list[i].replaceFirst(".H", ".h"); + } else if (inname.contains(".h") || inname.contains(".H") || inname.contains(".dxs") || inname.contains(".uni")) { + if (inname.contains(".H")) { + outname = inname.replaceFirst(".H", ".h"); } else { - continue; + outname = inname; } - ui.println("\nCopying file : " + temp); - outfile = new PrintWriter(new BufferedWriter(new FileWriter(modulepath + File.separator + "result" + File.separator + temp))); - outfile.append(sourcefiletostring(modulepath + File.separator + "temp" + File.separator + list[i])); + ui.println("\nCopying file: " + inname); + Common.ensureDir(modulepath + File.separator + "result" + File.separator + outname); + outfile = new PrintWriter(new BufferedWriter(new FileWriter(modulepath + File.separator + "result" + File.separator + outname))); + outfile.append(Common.sourcefiletostring(modulepath + File.separator + "temp" + File.separator + inname)); outfile.flush(); outfile.close(); } @@ -108,11 +112,10 @@ public class SourceFileReplacer { private void addr8only() throws Exception { String paragraph = null; - String line = sourcefiletostring(Database.defaultpath + File.separator + "R8Lib.c"); + String line = Common.sourcefiletostring(Database.defaultpath + File.separator + "R8Lib.c"); + Common.ensureDir(modulepath + File.separator + "result" + File.separator + "R8Lib.c"); PrintWriter outfile1 = new PrintWriter(new BufferedWriter(new FileWriter(modulepath + File.separator + "result" + File.separator + "R8Lib.c"))); PrintWriter outfile2 = new PrintWriter(new BufferedWriter(new FileWriter(modulepath + File.separator + "result" + File.separator + "R8Lib.h"))); - //outfile1.append("#include \"R8Lib.h\"\n\n"); - //outfile2.append("#include \"R8Lib.h\"\n\n"); Pattern ptnr8only = Pattern.compile("////#?(\\w*)?.*?R8_(\\w*).*?////~", Pattern.DOTALL); Matcher mtrr8only = ptnr8only.matcher(line); Matcher mtrr8onlyhead; @@ -134,16 +137,9 @@ public class SourceFileReplacer { outfile1.close(); outfile2.flush(); outfile2.close(); - } - - private String sourcefiletostring(String filename) throws Exception { - BufferedReader rd = new BufferedReader(new FileReader(filename)); - StringBuffer wholefile = new StringBuffer(); - String line; - while ((line = rd.readLine()) != null) { - wholefile.append(line + "\n"); - } - return wholefile.toString(); + + mi.localmodulesources.add("R8Lib.h"); + mi.localmodulesources.add("R8Lib.c"); } // Caution : if there is @ in file , it will be replaced with \n , so is you use Doxygen ... God Bless you! @@ -167,7 +163,7 @@ public class SourceFileReplacer { // replace BS -> gBS , RT -> gRT Matcher mat = pat.matcher(line); if (mat.find()) { // add a library here - ui.println("Converting all BS->gBS,RT->gRT"); + ui.println("Converting all BS->gBS, RT->gRT"); line = mat.replaceAll("g$1$2$3"); //unknown correctiveness } mat.reset(); @@ -214,8 +210,6 @@ public class SourceFileReplacer { while (rt.hasNext()) { temp = rt.next(); if (r8only.contains(temp.r8thing)) { - mi.localmodulesources.add("R8Lib.h"); - mi.localmodulesources.add("R8Lib.c"); filer8only.add(r8thing); mi.hashr8only.add(r8thing); addr8 = true; @@ -310,7 +304,7 @@ public class SourceFileReplacer { fileppi.clear(); fileprotocol.clear(); filer8only.clear(); - + return line; }