diff --git a/app/src/processing/app/debug/Compiler.java b/app/src/processing/app/debug/Compiler.java index 8a38db7e90a..41cb47b4325 100644 --- a/app/src/processing/app/debug/Compiler.java +++ b/app/src/processing/app/debug/Compiler.java @@ -275,6 +275,23 @@ private List compileFiles(File outputPath, File sourcePath, return objectPaths; } + /** + * Strip escape sequences used in makefile dependency files (.d) + * https://github.com/arduino/Arduino/issues/2255#issuecomment-57645845 + * + * @param dep + * @return + */ + protected static String unescapeDepFile(String line) { + // Replaces: "\\" -> "\" + // Replaces: "\ " -> " " + // Replaces: "\#" -> "#" + line = line.replaceAll("\\\\([ #\\\\])", "$1"); + // Replaces: "$$" -> "$" + line = line.replace("$$", "$"); + return line; + } + private boolean isAlreadyCompiled(File src, File obj, File dep, Map prefs) { boolean ret=true; try { @@ -293,9 +310,7 @@ private boolean isAlreadyCompiled(File src, File obj, File dep, Map