diff --git a/Firmware/util.cpp b/Firmware/util.cpp index fff8dd31d..2b0dc5676 100644 --- a/Firmware/util.cpp +++ b/Firmware/util.cpp @@ -407,16 +407,19 @@ return pStrBegin; } void printer_smodel_check(const char *pStrPos, const char *actualPrinterSModel) { -char* pResult; -size_t nLength; + char* pResult; + size_t nLength; + size_t aLength; -pResult=code_string(pStrPos,&nLength); + pResult=code_string(pStrPos,&nLength); + if(pResult != NULL) { + aLength=strlen_P(actualPrinterSModel); + if(aLength > nLength) nLength = aLength; -if(pResult != NULL) { - // Only compare first 6 chars on MK3|MK3S - if (strncmp_P(pResult, PSTR("MK3"), 3) == 0) nLength = 6; - if (strncmp_P(pResult, actualPrinterSModel, nLength) == 0) return; -} + // Only compare first 6 chars on MK3|MK3S if string longer than 4 characters + if (nLength > 4 && strncmp_P(pResult, PSTR("MK3"), 3) == 0) nLength = 6; + if (strncmp_P(pResult, actualPrinterSModel, nLength) == 0) return; + } render_M862_warnings( _T(MSG_GCODE_DIFF_PRINTER_CONTINUE)