diff --git a/app/test/processing/app/windows/RegQueryParserTest.java b/app/test/processing/app/windows/RegQueryParserTest.java index c1b0ae758..469f4db53 100644 --- a/app/test/processing/app/windows/RegQueryParserTest.java +++ b/app/test/processing/app/windows/RegQueryParserTest.java @@ -26,4 +26,17 @@ public class RegQueryParserTest { String folderPath = new RegQueryParser(output).getValueOfKey(); assertEquals("C:\\Users\\username\\AppData\\Local", folderPath); } + + @Test + public void testRegQueryParserXP() throws Exception { + String output = "! REG.EXE VERSION 3.0\n" + + "\n" + + "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\n" + + "\n" + + "\tLocal AppData REG_SZ C:\\Documents and Settings\\username\\My Documents"; + + String folderPath = new RegQueryParser(output).getValueOfKey(); + assertEquals("C:\\Documents and Settings\\username\\My Documents", folderPath); + } + } diff --git a/arduino-core/src/processing/app/windows/RegQueryParser.java b/arduino-core/src/processing/app/windows/RegQueryParser.java index d5b216281..4d75b747e 100644 --- a/arduino-core/src/processing/app/windows/RegQueryParser.java +++ b/arduino-core/src/processing/app/windows/RegQueryParser.java @@ -15,16 +15,16 @@ public class RegQueryParser { } private void parse(String regQueryOutput) { - List rows = Arrays.asList(regQueryOutput.replace("\r", "\n").replace("\n\n", "\n").split("\n")); + List rows = Arrays.asList(regQueryOutput.replace(" ", "\t").replace("\r", "\n").replace("\n\n", "\n").split("\n")); String row = Iterables.find(rows, new Predicate() { @Override public boolean apply(String input) { - return input.startsWith(" "); + return input.startsWith("\t"); } }); - String[] cols = row.split(" "); + String[] cols = row.split("\t"); assert cols.length == 4; this.valueOfKey = cols[3]; }