X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcom%2Fdogcows%2FEditor.java;h=15dad35a8f5712c70c21017377e30e73dbea181f;hb=5513994bbc39ef7c7ca1917e2d07d8c53b30ea8d;hp=564e74ff00cdf7b699fef18a9c66be37e552a74f;hpb=d5c3685fc4d454fee9b42436c56c2fd18b17a029;p=chaz%2Fvimcoder diff --git a/src/com/dogcows/Editor.java b/src/com/dogcows/Editor.java index 564e74f..15dad35 100644 --- a/src/com/dogcows/Editor.java +++ b/src/com/dogcows/Editor.java @@ -125,7 +125,7 @@ public class Editor sourceFile = new File(directory, name + "." + ext); if (!sourceFile.canRead()) { - String text = Util.expandTemplate(Util.readResource(lang + "Template"), + String text = Util.expandTemplate(readTemplate(lang + "Template"), terms); FileWriter writer = new FileWriter(sourceFile); writer.write(text); @@ -136,8 +136,8 @@ public class Editor File driverFile = new File(directory, "driver." + ext); if (!driverFile.canRead()) { - String text = Util.expandTemplate(Util.readResource(lang + "Driver"), - terms); + String text = Util.expandTemplate(readTemplate(lang + "Driver"), + terms); FileWriter writer = new FileWriter(driverFile); writer.write(text); writer.close(); @@ -168,8 +168,8 @@ public class Editor // Finally, expand the Makefile template and write it. File makeFile = new File(directory, "Makefile"); { - String text = Util.expandTemplate(Util.readResource(lang + "Makefile"), - terms); + String text = Util.expandTemplate(readTemplate(lang + "Makefile"), + terms); FileWriter writer = new FileWriter(makeFile); writer.write(text); writer.close(); @@ -241,8 +241,7 @@ public class Editor * get the return code from the child if we can. The workaround here is * to stall the thread for a little while or until we know the child * does exit. If the child never exits before the timeout, we will - * assume it is not backgrounding and that everything worked. This all - * works very well in practice, but perhaps there's a better way... */ + * assume it is not backgrounding and that everything worked. */ long expire = System.currentTimeMillis() + 250; while (System.currentTimeMillis() < expire) { @@ -260,6 +259,28 @@ public class Editor } } + + /** + * Read a template. We first look in the storage directory. If we can't + * find one, we look among the resources. + * @param tName The name of the template. + * @return The contents of the template file, or an empty string. + */ + private String readTemplate(String tName) + { + File templateFile = new File(VimCoder.getStorageDirectory(), tName); + try + { + if (templateFile.canRead()) return Util.readFile(templateFile); + return Util.readResource(tName); + } + catch (IOException exception) + { + return ""; + } + } + + /** * Convert an array of data types to an array of strings according to a * given language.