diff --git a/src/String.cpp b/src/String.cpp index 723017fc9..0b1b3bef9 100644 --- a/src/String.cpp +++ b/src/String.cpp @@ -1962,10 +1962,7 @@ String String::substr(int inFirst, Dynamic inLen) const if (inFirst<0) inFirst = 0; if (len<0) { - len += length; - // This logic matches flash .... - if (inFirst + len >=length) - len = 0; + len = length + len - inFirst; } if (len<=0 || inFirst>=length)