From 5dd49352df51c06963546d825f5ffdecb2e373e9 Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Wed, 1 Apr 2015 09:03:17 +0200 Subject: [PATCH] Don't add keys (and display a warning) if the missing key doesn't make sense in target platform.txt. For a key to make sense, two tree level must be present already, eg: tools.avrdude --- .../src/processing/app/debug/LegacyTargetPlatform.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java b/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java index a9476c124..b9cd2a89e 100644 --- a/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java +++ b/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java @@ -162,9 +162,13 @@ public class LegacyTargetPlatform implements TargetPlatform { PreferencesMap addedProps = platformRewriteProps.subTree("added"); for (Map.Entry entry : addedProps.entrySet()) { - if (!preferences.containsKey(entry.getKey())) { - System.err.println(I18n.format(_("Warning: platform.txt from core '{0}' misses property {1}, automatically set to {2}. Consider upgrading this core."), platformName, entry.getKey(), entry.getValue())); - preferences.put(entry.getKey(), entry.getValue()); + String keyToAdd = entry.getKey(); + String[] keyToAddParts = keyToAdd.split("\\."); + String keyToAddFirstLevel = keyToAddParts[0]; + String keyToAddSecondLevel = keyToAddParts[0] + "." + keyToAddParts[1]; + if (!preferences.subTree(keyToAddFirstLevel).isEmpty() && !preferences.subTree(keyToAddSecondLevel).isEmpty() && !preferences.containsKey(keyToAdd)) { + System.err.println(I18n.format(_("Warning: platform.txt from core '{0}' misses property {1}, automatically set to {2}. Consider upgrading this core."), platformName, keyToAdd, entry.getValue())); + preferences.put(keyToAdd, entry.getValue()); } } }