Settings FIELD_TEST fix

This commit is contained in:
Scott Lahteine 2018-01-05 19:00:26 -06:00
parent 013c911a82
commit 702c8acdd5

View file

@ -330,10 +330,10 @@ void MarlinSettings::postprocess() {
#define EEPROM_ASSERT(TST,ERR) if (!(TST)) do{ SERIAL_ERROR_START(); SERIAL_ERRORLNPGM(ERR); eeprom_error = true; }while(0) #define EEPROM_ASSERT(TST,ERR) if (!(TST)) do{ SERIAL_ERROR_START(); SERIAL_ERRORLNPGM(ERR); eeprom_error = true; }while(0)
#if ENABLED(DEBUG_EEPROM_READWRITE) #if ENABLED(DEBUG_EEPROM_READWRITE)
#define _FIELD_TEST(FIELD) \ #define _FIELD_TEST(FIELD) \
EEPROM_ASSERT( \ EEPROM_ASSERT( \
eeprom_error || eeprom_index == offsetof(SettingsData, FIELD), \ eeprom_error || eeprom_index == offsetof(SettingsData, FIELD) + EEPROM_OFFSET, \
"Field " STRINGIFY(FIELD) " mismatch." \ "Field " STRINGIFY(FIELD) " mismatch." \
) )
#else #else
#define _FIELD_TEST(FIELD) NOOP #define _FIELD_TEST(FIELD) NOOP
@ -357,7 +357,7 @@ void MarlinSettings::postprocess() {
*/ */
bool MarlinSettings::save() { bool MarlinSettings::save() {
float dummy = 0.0f; float dummy = 0.0f;
char ver[4] = "000"; char ver[4] = "ERR";
uint16_t working_crc = 0; uint16_t working_crc = 0;
@ -840,7 +840,7 @@ void MarlinSettings::postprocess() {
// Version has to match or defaults are used // Version has to match or defaults are used
if (strncmp(version, stored_ver, 3) != 0) { if (strncmp(version, stored_ver, 3) != 0) {
if (stored_ver[0] != 'V') { if (stored_ver[3] != '\0') {
stored_ver[0] = '?'; stored_ver[0] = '?';
stored_ver[1] = '\0'; stored_ver[1] = '\0';
} }