diff --git a/wpilibc/wpilibC++Devices/src/Preferences.cpp b/wpilibc/wpilibC++Devices/src/Preferences.cpp index 5ac0c5ee7f..70985bb2a7 100644 --- a/wpilibc/wpilibC++Devices/src/Preferences.cpp +++ b/wpilibc/wpilibC++Devices/src/Preferences.cpp @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------------*/ -/* Copyright (c) FIRST 2011. All Rights Reserved. */ +/* Copyright (c) FIRST 2011. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */ /*----------------------------------------------------------------------------*/ @@ -564,18 +564,20 @@ void Preferences::WriteTaskRun() } static bool isKeyAcceptable(const std::string& value) { - for (unsigned int i = 0; i < value.length(); i++) { - char letter = value.at(i); - switch (letter) { - case '=': - case '\n': - case '\r': - case ' ': - case '\t': - return false; - } - } - return true; + for (unsigned int i = 0; i < value.length(); i++) { + char letter = value.at(i); + switch (letter) { + case '=': + case '\n': + case '\r': + case ' ': + case '\t': + case '[': + case ']': + return false; + } + } + return true; } void Preferences::ValueChanged(ITable* table, const std::string& key, EntryValue value, bool isNew) { diff --git a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/Preferences.java b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/Preferences.java index 4c615eb7e7..544da698a1 100644 --- a/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/Preferences.java +++ b/wpilibj/wpilibJavaDevices/src/main/java/edu/wpi/first/wpilibj/Preferences.java @@ -503,7 +503,7 @@ public class Preferences { file.createNewFile(); output = new FileOutputStream(file); - + output.write("[Preferences]\n".getBytes()); for (int i = 0; i < keys.size(); i++) { @@ -803,6 +803,8 @@ public class Preferences { case '\r': case ' ': case '\t': + case '[': + case ']': throw new ImproperPreferenceKeyException(value, letter); } } @@ -813,7 +815,7 @@ public class Preferences { * preference table. * * @param value - * @return + * @return true if the given string is ok to use in the preference table */ public static boolean isAcceptable(String value) { for (int i = 0; i < value.length(); i++) { @@ -824,6 +826,8 @@ public class Preferences { case '\r': case ' ': case '\t': + case '[': + case ']': return false; } }