diff options
Diffstat (limited to 'sdkmanager/libs/sdklib')
2 files changed, 10 insertions, 4 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java index 09a35c5..9d578c4 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectProperties.java @@ -394,7 +394,7 @@ public class ProjectProperties implements IPropertySource { Matcher m = PATTERN_PROP.matcher(line); if (m.matches()) { - map.put(m.group(1), m.group(2)); + map.put(m.group(1), unescape(m.group(2))); } else { log.warning("Error parsing '%1$s': \"%2$s\" is not a valid syntax", propFile.getOsLocation(), @@ -430,7 +430,6 @@ public class ProjectProperties implements IPropertySource { return null; } - /** * Private constructor. * <p/> @@ -443,4 +442,12 @@ public class ProjectProperties implements IPropertySource { mProperties = map; mType = type; } + + private static String unescape(String value) { + return value.replaceAll("\\\\\\\\", "\\\\"); + } + + protected static String escape(String value) { + return value.replaceAll("\\\\", "\\\\\\\\"); + } } diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java index 797b505..2d3f9b7 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/project/ProjectPropertiesWorkingCopy.java @@ -226,8 +226,7 @@ public class ProjectPropertiesWorkingCopy extends ProjectProperties { } } - value = value.replaceAll("\\\\", "\\\\\\\\"); - writer.write(String.format("%s=%s\n", key, value)); + writer.write(String.format("%s=%s\n", key, escape(value))); } /** |